[Windowsシステム運用]

InfoPath−SQL Server連携で構築するC/Sシステム

―― ストアド・プロシージャをInfoPathから実行。IT Proでも自力構築できるC/Sシステム入門 ――

第4回 InfoPathからSQL文を実行する

1.DELETE文を記述したデータ接続を実行する

兵庫県立西宮香風高等学校システム管理課長
Microsoft MVP for InfoPath
松本 吉生
2007/06/14

 本連載では、SQL Serverのストアド・プロシージャをOffice InfoPathから利用する方法について解説する。InfoPathは電子フォーム・ソリューションの開発で利用されるアプリケーションであるが、SQL Serverを呼び出してデータを処理することもできる。Visual BasicやC#などでコードを記述する必要もない。

 前回は、データ接続の設定を編集して、任意のSQL文を記述する方法について説明した。またDELETE文のような、結果のセットを返さないSQL文(SELECT文以外のSQL文など)を実行する方法についても解説した。今回は、こうやって作成したSQL文やストアド・プロシージャをInfoPathから呼び出して実行する方法や、呼び出しのためのボタンを作成する方法などについて解説する。


Index
InfoPathをSQL Serverに接続する
InfoPathのデータ接続を編集する
データ接続におけるSQL文を編集する
InfoPathからSQL文を実行する
ストアド・プロシージャで引数を使う(最終回)

 前回は、InfoPathのデータ接続設定におけるSQL文を手動で編集して、その中にDELETE文を記述してみた。SQL文の書き方を工夫すれば、DELETE文のように、結果のセットを返さないものもInfoPathから実行させることができる。今回は、そうやって作成したDELETE文を含むデータ接続を、InfoPathから呼び出して実行させる方法について解説する。

 データ接続に記述したDELETE文を実行するためには、そのデータ接続を利用してデータベースに対してクエリを行えばよい。このとき、クエリの実行をボタン・コントロールに設定することができる。こうしておけば、ボタンをクリックするとデータの削除を行うことができるフォームになる。

 まず作業ウィンドウをコントロール・ウィンドウに切り替える。そしてボタン・コントロールをフォームの適当な位置にドラッグする。

ボタン・コントロールの作成
ボタン・コントロールをドラッグして作成する。
  ▼をクリックして「コントロール」作業ウィンドウに切り替える。
  ボタン・アイコンをフォームにドラッグする。

 作成したボタンを右クリックして「ボタンのプロパティ」を開く。[操作]の項目がデフォルトで[動作規則とユーザー設定コード]になっているので、そのまま[動作規則]ボタンをクリックして動作規則を設定する。次の[動作規則]ウィンドウでは[追加]ボタンをクリックする。次のウィンドウでは、条件と動作を設定するが、ここでは条件なしに実行することとして、「動作の追加」ボタンをクリックする。

ボタンの作成と動作規則の設定
ボタンを右クリックし、ポップアップ・メニューから「ボタンのプロパティ」を選択する。
  [動作規則]ボタンをクリックする。
  [追加]ボタンをクリックして動作規則を追加する。
  [動作の追加]ボタンをクリックする。

 [動作の追加]ボタンをクリックしたら、[動作]ウィンドウが開き、実際の動作を設定する画面になる。まず[動作]の項目は、ドロップダウン・リストボックスから[データ接続を使用してクエリを送信する]にする。そして[データ接続]の項目は、フォームで利用できるデータ接続が選択できるようになり、ここでは[メイン接続]とDELETE文を書いた[データの全削除]があるので、[データの全削除]の方を選択する。それぞれ設定できれば[OK]ボタンをクリックする。

動作の設定
DELETE文を書いたデータ接続を[動作]に設定する。
  [動作]のドロップダウン・リストボックスから[データ接続を使用してクエリを送信する]を選択する。
  「データ接続」のドロップダウン・リストボックスから[データの全削除]を選択する。
  [OK]ボタンをクリックする。

 [OK]ボタンをクリックして前のウィンドウに戻ったら、データ接続が設定できていることを確認する。そしてこの動作規則が何を設定したのかが分かりやすいように、[名前]を[データの全削除]といったものに変更する。できたら[OK]ボタンをクリックして動作規則の設定を完了する。

設定の完了
動作規則の設定を完了する。
  分かりやすいように[名前]を「データの全削除」といったものに変更する。
  設定した動作が表示されているので確認する。
  [OK]ボタンをクリックして動作規則の設定を終了する。

 [OK]ボタンをクリックすると、作成したボタンの動作規則の一覧画面に戻る。[データの全削除]という動作規則が設定されていることを確認し、[OK]ボタンをクリックする。するとボタンのプロパティ画面に戻るので、[ラベル]に[データを全部削除する]といったように分かりやすい名前を付け、[OK]ボタンをクリックしよう。これでボタンの動作規則の設定は終了する。

ラベルの設定
ボタンの動作規則を確認し、ラベルを付ける。
  [データの全削除]という動作規則が設定されていることを確認する。
  [OK]ボタンをクリックする。
  ボタンのラベルに「データを全部削除する」といったように分かりやすいラベルを付ける。
  [OK]ボタンをクリックして設定を終了する。

 フォームの編集画面に戻るので、ボタンができていることを確認してフォームをプレビューしてみよう。

フォームのプレビュー
作成したボタンを確認し、フォームをプレビューする。
  作成された[データを全部削除する]というラベルのボタン。
  [フォームのプレビュー]ボタンをクリックしてフォームをプレビューする。

 プレビューしたフォームで、まず[クエリの実行]ボタンをクリックする。するとデータベースからデータが取得され、フォームに表示される。次に[データを全部削除する]のボタンをクリックし、データベースに対してDELETE文を実行する。ボタンをクリックしてもフォームには変化が見られず、データが残っているように見えるが、再度[クエリの実行]ボタンをクリックすると、データがすべて削除されていることが分かる。

ボタンのテスト
データを削除するボタンをテストする。
  [クエリの実行]ボタンをクリックする。
  データベースからデータが取得された。
  [データを全部削除する]ボタンをクリックする。
  フォームには変化が起こらず、データは消去されていないように見える。
  ここで再度[クエリの実行]ボタンをクリックしてみる。
  データが1件も表示されず、削除されたことが分かる。


 INDEX
  [Windowsシステム運用]InfoPath−SQL Server連携で構築するC/Sシステム
  第4回 InfoPathからSQL文を実行する
  1.DELETE文を記述したデータ接続を実行する
    2.ストアド・プロシージャを実行するデータ接続を作成する
    3.ストアド・プロシージャを実行するボタンを作成する

 運用


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間