#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'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved