MSDE FunClub
Microsoft Data Engine FunClub
MSDE初心者向けメーリングリスト過去ログ[722]番
 
[TOP]>[MSDE初心者向けメーリングリスト過去ログ(722番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
フォームでデータ更新

Date: Tue, 29 Jul 2003 17:35:11 +0900
From: "koyama" <koyama@kensui.on.arena.ne.jp>


小山といいます。
MSDE7.0+Access2000です。

抽出条件をストアドプロシージャで作り、そのレコードを
レコードセットで取ってきてフォームに表示という事を考えています。
(この際レコードはフォームの「詳細」に表示させ動的)
この表示させたデータを修正させたいのですが、
"ADO"だと無理みたいです。

でいろいろ調べました。堀川様著書の
1.「SQL Server+MSDE7.0完全トレーニングテキスト下」
でみると"再同期コマンド"の設定が必要とか。

2.またインターネットで調べてみると、フォームのレコードソース
にストアドプロシージャを設定し、"入力パラメータ"
の所へ、フォームのテキストボックスの値を設定させるように空いてあります。
http://www.shoeisha.com/book/hp/pc/office/Access/index.html

2の方法でやってみたのですが、うまく表示されませんでした。
1と2どちらの方法をとるのがよろしいのでしょうか?
それとももっとほかに方法があるのでしょうか?

ご存知の方がいらっしゃたら教えてください。
よろしくお願いします。
以下に更新できなかったVBAコードとストアドのコードを記載しておきます。

=========================VBA================================
Public Sub 入力データ呼出()
  Set cn = CurrentProject.Connection

    Set cmd = New ADODB.Command
    Set parme = New ADODB.Parameter
    Set rs = New ADODB.Recordset

    rs.CursorLocation = adUseServer
    rs.CursorType = adOpenStatic
    rs.LockType = adLockOptimistic
    'まずはデータ更新Fの入力データ呼出
    With cmd
        .ActiveConnection = cn
        .CommandType = adCmdStoredProc
        .CommandText = "入力データ呼出_store"
    Set parme = .CreateParameter(, adDate, adParamInput, ,
Forms(Yobidasi_F).Controls("入力日"))
    .Parameters.Append parme
    Set parme = .CreateParameter(, adInteger, adParamInput, ,
Forms(Yobidasi_F).Controls("品名コード"))
    .Parameters.Append parme
    Set parme = .CreateParameter(, adSingle, adParamInput, ,
Forms(Yobidasi_F).Controls("入数1"))
    .Parameters.Append parme
    End With

    Set rs = cmd.Execute

    '画面を消去する
    Call コントロール削除mdl(3)

     '区分データ以外をフォームに表示
    i = 1
    'Do Until rs.EOF
        If rs.EOF = True And rs.BOF = True Then
            MsgBox ("該当するデータがありません。")
            Exit Sub
        End If
            Set Forms(Yobidasi_F).Recordset = rs

            Forms(Yobidasi_F).Controls("品名入力ID").ControlSource = "品名入
力ID"
            Forms(Yobidasi_F).Controls("店舗入力ID1").ControlSource = "店舗
入力ID"
            Forms(Yobidasi_F).Controls("店舗コード1").ControlSource = "店舗
コード"
            Forms(Yobidasi_F).Controls("区分コード1").ControlSource = "区分
コード"
            Forms(Yobidasi_F).Controls("価格1").ControlSource = "価格"
            Forms(Yobidasi_F).Controls("個数1").ControlSource = "個数"
            Forms(Yobidasi_F).Controls("数量1").ControlSource = "数量"
            Forms(Yobidasi_F).Controls("合計1").ControlSource = "合計金額"

   Set parme = Nothing
    rs.Close: Set rs = Nothing
    cn.Close: Set cn = Nothing

End Sub
===============================================================

======================ストアド===================================
Alter PROCEDURE 入力データ呼出_store

 (
  @nyuryoku datetime,
  @hinmeino int,
  @irisu float
 )

AS
 DECLARE @hinmeiid int

 set @hinmeiid=(select 品名入力ID from 品名入力T where 入力日=@nyuryoku and
品名コード=@hinmeino and 入数=@irisu)

 select b.品名入力ID,a.店舗入力ID,a.区分コード,a.価格,a.店舗コード,a.個数,数
量,a.合計金額 from 店舗入力T as a inner join 品名入力T as b on a.品名入力
ID=b.品名入力ID
 where a.品名入力ID=@hinmeiid order by a.店舗入力ID

 RETURN
============================================================================
======
どうかよろしくお願いします。



[MSDE/SQLServerに関して、今、どんなことにお困りですか?]
よろしければお困りの内容を、電子メールで教えて下さい。
質問を電子メールで作成する


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

[MSDE / MSDE2000 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。