#597 Docmdでパラメータ付きのストアドプロシージャを実行する方法 VBA

AccessでSQL Server上のパラメータを持ったストアドプロシージャを実行する場合、ADOのCommandオブジェクトを使ったりParametersコレクションを設定したりといった方法で実行することが多いと思います。
一方、Accessプロジェクト(.adp)においては、そのAccessデータベースファイル内のひとつのクエリオブジェクトとしてSQL Server上のストアドプロシージャが存在しているかのようなイメージになりますので、DoCmdオブジェクトの「RunSQL」メソッドを利用することによって、基本的に1行のコードでストアドプロシージャ名とパラメータ値を指定して実行させることができます。

次のプログラムは、フォームモジュールのボタンのクリック時イベントなどでストアドプロシージャを呼び出す例です。「uspCustDelete」というストアドプロシージャに、フォーム上の「CustID」という名前のコントロールの値をパラメータと付加して呼び出しています。
「RunSQL」メソッドの引数として、一般にSQL Serverでストアドプロシージャを実行させるような命令、つまり「EXEC <ストアドプロシージャ名> <パラメータ1>, <パラメータ2>, <パラメータ3>,・・・・・・」といった内容を文字列として組み立てて与えていることが分かると思います。

With DoCmd
  .SetWarnings False
  .RunSQL "EXEC uspCustDelete " & Me!CustID
  .SetWarnings True
End With

| Index | Prev | Next |

この情報は参考になりましたか?、問題は解決しましたか?、もしまだなら......
T'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします
 

Copyright © T'sWare All rights reserved