[Windowsシステム運用]
InfoPath−SQL Server連携で構築するC/Sシステム

第2回 InfoPathのデータ接続を編集する

3.メイン・データソースのデータをリストボックス項目として利用する

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

 セカンダリ・データソースの利用方法として最も一般的なものは、登録するデータのリストボックス項目として利用する方法だろう。データを登録するフォームで、登録データをテキストボックスに入力して書き込むのではなく、ドロップダウン・リストボックスにしておくと、データを書き間違うことなく登録できる。このときドロップダウン・リストボックスのリストボックス項目を[データ接続の値をデータベース、Webサービス、ファイル、SharePointライブラリ、またはリストで参照する]にしておくと、データベースから取得できることは前回説明した。このとき、項目データをストアしたテーブルは別に作っておくのが基本である。だがこの方法では、項目が増えたり減ったりしたとき、項目テーブルのデータを編集しなければならない。つまり管理しなければならないテーブルが増えることになる。

セカンダリ・データソースをリストボックス項目として利用する場合
リストボックス項目をフォームから切り離してテーブルに保存すると、リストボックス項目を統一的に管理できるが、テーブルを管理する必要が出てくる。

 入力データのフィールドをドロップダウン・リストボックスにして、リストボックス項目をフォームに埋め込まず、テーブルに記録してセカンダリ・データソースで取得するメリットは、リストボックス項目が変わったときもフォームの再編集を行う必要がないというところにある。だがそのためにはリストボックス項目を保存するテーブルを管理しなければならなくなる。もちろんリスト項目のテーブルを作り、データをきちんと管理することが定石ではあるが、データベースの利用の方法や規模によっては、もっと簡単に運用したいケースもあるだろう。このとき、すでにデータが記録されたメイン・データソースのデータをセカンダリ・データソースとして利用することが可能である。

メイン・データソースのフィールドをリストボックス項目として利用する
メイン・データソースのテーブルから値を取得すれば、リスト項目用のテーブルを別に用意する必要がない。

 メイン・データソースのテーブルから特定のフィールドをリストボックス項目として利用する場合、[メイン接続]からそのまま参照するのではうまくいかない。そこで、同じテーブルに対して新しくセカンダリ・データソースを作成して利用するのである。例えばメイン・データソースと同じテーブルに対してセカンダリ・データソースを作成し、[在庫管理のリストボックス項目取得]という名称にする。

同じテーブルを参照するデータソースを作成する
メイン・データソースと同じテーブルに対してセカンダリ・データソースを作成した。セカンダリ・データソースも接続先は「メイン接続」と同じである。
  データ接続の名前は分かりやすいものを付ける。
  この接続はデータベースからデータを取得するものである。
  データの取得は、フォームを開いたときに実行されるようにする。

 ここで作ったセカンダリ・データソースを次のようにドロップダウン・リストボックスの項目にすると、テーブルに保存されたデータがすべてそのまま出現する。だが、当然であるが、このままではリストボックス項目として使うことはできない。次の画面のように、順序がソートされていないし、重複したデータも表示されるからだ。

メイン・データソースをリストボックス項目にした場合の例
メイン・データソースを単にリストボックス項目に指定するだけでは、テーブル中のデータがすべてそのまま列挙されるだけである。名前順などにソートされていないし、項目も重複したままである。
  ドロップダウン・リストボックスのプロパティで、リストボックス項目をデータ接続から参照する設定にする。
  データ接続をセカンダリ・データソース[在庫管理のリストボックス項目取得]に変更する
  取得するフィールド[仕入れ先]を選択する。
  テーブルに保存されている仕入れ先が全部出てくる。

 そこでデータ接続を編集して、同じデータが繰り返し表示されないようにしてみよう。


 INDEX
  [Windowsシステム運用]InfoPath−SQL Server連携で構築するC/Sシステム
  第2回 InfoPathのデータ接続を編集する
    1.InfoPathのデータ接続の編集
    2.データソースのデータの並べ替え順序を変更する
  3.メイン・データソースのデータをリストボックス項目として利用する
    4.セカンダリ・データ接続を編集し、distinct句を利用する
    5.ユーザー名や日付、時刻を取得する
    6.SQL Serverから取得したデータの利用
 
 運用


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間