• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フォームのレコードソースにストアドをしてした場合)

フォームのレコードソースにストアドをしてした場合

このQ&Aのポイント
  • フォームのレコードソースにストアドを指定すると、VBAでデータを追加する際に特定の命令では追加できないことがあります。
  • 'acCmdSaveRecord'でデータの競合が発生し、メッセージが表示されずに進まなくなる場合もあります。
  • その場合、追加用のストアドを作成するか検討する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

ストアドプロシージャというものの性質を理解する必要があると思います。 確かにストアドプロシージャの中にSELECT文を書けば、結果を返してくれますし、それをデータソースに使うことはできるでしょう。 ただし、テーブルやビューが更新可能(ビューは条件付)であるのに対し、ストアドプロシージャやテーブル関数が返すレコードは データ処理後の単なるデータ集合にすぎない(元テーブルとの関係から切り離されている)ため、それに対して更新を掛けるという 発想自体に無理があります。 試したわけではないですが、NewRecまではAccess側での処理にすぎないので、うまくいっているように見えるということではないかと思います。 更新する場合はテーブルやビューを使うか、全項目をパラメータにした更新用ストアドプロシージャを準備すべきでしょう。

SEsyo
質問者

お礼

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

関連するQ&A