電子書籍の厳選無料作品が豊富!

フォームのレコードソースにパラメータ付きのストアドを指定した場合は、
データを追加する場合にはVBAで下記の命令では追加できないのでしょうか?

状況は「acNewRec」は正常に動作しているようです、「acCmdSaveRecord」で
「データの競合」のメッセージが表示されすすまないので、
終了させようとすると、「プロシージャまたは関数'○○○'には
パラメータ'○○'が必要ですが、指定されませんでした。」となります.

DoCmd.GoToRecord , , acNewRec
データの入力処理
DoCmd.RunCommand acCmdSaveRecord

駄目な場合やはり追加用のストアドを作成するのでしょうか?

A 回答 (1件)

ストアドプロシージャというものの性質を理解する必要があると思います。


確かにストアドプロシージャの中にSELECT文を書けば、結果を返してくれますし、それをデータソースに使うことはできるでしょう。
ただし、テーブルやビューが更新可能(ビューは条件付)であるのに対し、ストアドプロシージャやテーブル関数が返すレコードは
データ処理後の単なるデータ集合にすぎない(元テーブルとの関係から切り離されている)ため、それに対して更新を掛けるという
発想自体に無理があります。

試したわけではないですが、NewRecまではAccess側での処理にすぎないので、うまくいっているように見えるということではないかと思います。
更新する場合はテーブルやビューを使うか、全項目をパラメータにした更新用ストアドプロシージャを準備すべきでしょう。
    • good
    • 0
この回答へのお礼

いつもいつも、ありがとうございます。
「全項目をパラメータにした更新用ストアドプロシージャ」か
ADOで更新するか検討します。

これでまた一歩すすめます、ありがとうございました。

お礼日時:2008/11/12 14:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す