<第13回>

子テーブルを利用したクエリ

兵庫県立西宮香風高等学校 松本吉生

ymatsumoto@hyogo-c.ed.jp

 
<<前のページへ
 
ドロップダウンリストボックスの作成
   
 

できるだけキーボード入力をしないでデータの問い合わせができるようなフォーム作りは、業務上の作業量を軽減すると同時に操作の誤りを減らす効果がある。ここではクエリの問い合わせに、ドロップダウンリストから項目を選択できるフォームを作ってみよう。

ドロップダウンリストのリストはフォームの中で独自のリストを作ることもできるが、既に登録されたデータをリストとして使うことができれば合理的だ。項目の追加や削除は登録データを変更することで柔軟に対応できる。具体的には「子テーブル」として使うために登録されたSQL Serverのテーブルデータをリストとして使う方法である。

前回までに作った「クエリビュー」、これはデフォルトでInfoPathが作る「クエリフォーム」というタイトルの「クエリビュー」から「繰り返しセクション」を取り除いて「クエリの実行ボタン」だけにしたものだが、これに「ドロップダウンリストボックス」のコントロールを加える。

コントロールを加えるには、右側の作業ウィンドウを「コントロール」に変更し、「コントロールの挿入」リストからコントロールを選んでクリックする。「ドロップダウンリストボックス」をクリックしよう。

   
   
  「ドロップダウンリストボックスのバインド」ウィンドウが表示される。ここで指定するフィールドは、ドロップダウンリストで抽出するための親テーブルのフィールドである。学籍番号で抽出することとしたいので、「queryFields」で親テーブルの「seito_cd」を指定し、「OK」ボタンをクリックする。
   
 
   
 

「クエリビュー」に「ドロップダウンリストボックス」ができた。しかしこの状態で「フォームのプレビュー」を行いドロップダウンリストボックスをクリックしても、まったくリストが表示されない。まだリストのデータがないからである。

   
   
リストボックス項目の指定
   
  「ドロップダウンリストボックス」に表示されるデータを指定しよう。ドロップダウンリストボックスを右クリックし、「ドロップダウンリストボックスのプロパティ」をクリックする。
   
   
 

ドロップダウンリストはデフォルトで「リストボックス項目」が「リストボックス項目を手動で入力する」となっている。たとえば「性別」や「はい/いいえ/どちらでもない」など項目が明らかな場合はフォームの中で指定してもよいが、項目が多い場合や項目が変化する場合は「データベース、Webサービス、またはファイルから指定する」を使うのがよい。

   
 
   
  「データ」タグの「リストボックス項目」を「データベース、Webサービス、またはファイルから指定する」に変更し、「OK」ボタンをクリックする。
   
 
   
セカンダリデータソースの設定
   
  「セカンダリデータソース」のウィンドウが表示される。このフォームで設定されたセカンダリデータソースはまだないので、「追加」ボタンをクリックして新規に作成する。
   
 
   
 

「データソースセットアップウィザード」が起動する。これはフォームを「データソースから新規作成」するときと同じウィザードである。

データソースはSQLServerなので、「データベース(Microsoft SQL ServerまたはMicrosoft Office Accessのみ)」を選択して「次へ」ボタンをクリックする。

   
 
   
 

次の画面では「データベースの選択」をクリックする。

   
 
   
  すでに作られた親テーブル用のデータソースがあるが、これを使ってはいけない。「新しいSQLServer接続」を選択して「開く」をクリックする。
   
 
   
 

「データ接続ウィザード」でデータベースサーバに接続する設定を行う。サーバ名は稼働中のSQLServer名を入力し、ログイン時の証明には認証を受けるためのアカウントを入力する。

これらの諸設定値は環境によって異なるが、これまで説明してきた環境では、サーバ名は「SQLSV」、認証モードはSQL Server認証でユーザ名は「sa」である。

   
 
   
 

データベースサーバへの接続が成功すると、利用できるデータベース名を選択できるようになる。「使用するデータが含まれているデータベースを選択」は、SQL Serverが使うシステム用のデータベースである「master」ではなく、自分が作ったデータベース、ここでは「kofu_db」を指定する。

   
 
 
   
  データベースへ接続できると、テーブルが表示される。「リストボックス項目」として使いたいデータは、生徒の学籍番号と氏名である。「tbl_seito」を選択して「次へ」をクリックする。
   
 
   
 

データ接続の設定を保存する。「説明」の項目にわかりやすいメモを記入しておくとよい。ファイル名はデフォルトの名前で特に変更する必要はないだろう。

「完了」ボタンを押すと保存される。

   
 
   
セカンダリデータソースの項目設定
   
  テーブルのデータを取得するために、データベースサーバへのログインを要求される。正しいパスワードを入力して「OK」ボタンをクリックする。
   
 
   
 

データベースに接続すると、テーブルのフィールドが表示される。「seito_cd」、「seito_nm」の両方がチェックされていることを確認し「次へ」ボタンをクリックする。

   
 
   
  データソースのセットアップが完了した。「完了」ボタンをクリックし、ウィザードを終了する。
   
 
   
 

「セカンダリデータソース」として「tbl_seito」ができた。「閉じる」ボタンをクリックする。

   
 
   
 

「ドロップダウンリストボックスのプロパティ」に戻ると、「データソース」の項目に「tbl_seito」のデータソースが設定されたことがわかる。

次に「項目」を設定しよう。「項目」テキストボックスの右側にあるボタンをクリックして設定するのだ。

   
 
   
 

「フィールドまたはグループの選択」ウィンドウになり、既に設定された「tbl_seito」データソースのテーブルが表示されるので、「OK」をクリックする。

   
 
   
  「項目」を指定すると、次のように自動的に「値」と「表示名」も設定される。ここでは、「値」としてはクエリで学籍番号を使うので「seito_cd」で良いが、「表示名」は生徒の氏名を表示させたい。そのためには「表示名」テキストボックスの右側のボタンをクリックして、指定するフィールドを変更する。
   
 
   
 

「表示名」のフィールドを設定するウィンドウである。「seito_cd」ではなくて「seito_nm」フィールドを選択し、「OK」ボタンをクリックする。

   
 
   
  「ドロップダウンリストボックスのプロパティ」に戻り、データソースの「値」が学籍番号の「seito_cd」を、「表示名」が生徒氏名の「seito_nm」になっていることを確認し、「OK」ボタンをクリックする。
   
 
   
フォームのプレビュー
   
 

これでセカンダリデータソースを使ったドロップダウンリストボックスの設定は終わりだ。フォームの作成画面に戻るので、「フォームのプレビュー」ボタンをクリックしよう。

   
   
  ドロップダウンリストボックスのチェックアイコンをクリックすると、セカンダリデータソースに指定したSQL Serverの「tbl_seito」テーブルの生徒氏名データが表示されるはずだ。
   
   
 

ドロップダウンリストボックスで生徒の名前を指定し、「クエリの実行」ボタンをクリックする。

   
   
  その生徒の学籍番号に対応したデータのみが抽出して表示される。
   
   
このページのまとめ
   
 

このページでは、子テーブルのデータを「セカンダリデータソース」としてクエリのドロップダウンリストボックスで使った。学籍番号と連動した生徒氏名を使って、データが抽出できることがわかったはずだ。ここでは生徒名での抽出を行ったが、科目コードと科目名の対応テーブルやクラス名のデータをSQL Serverに用意すれば、科目ごとにデータを表示するクエリ、クラスごとに表示するクエリをつくる、といった応用もできるだろう。

   
このシリーズ全体のまとめ
   
 

InfoPathとSQL Serverのページは今回で終了する。一行もコードを書くことなく、データベースサーバに対するクライアントアプリケーションを構成することができることがわかったはずだ。教師の本務は「授業」である。機器のメンテナンスやシステム開発といった業務に振り回されることのないよう、すぐれたソフトウエアを使いこなし、負担を軽減しよう。

自分で構成したものは、変更にも柔軟に対応できる。社会は大きな変革の中にあるが、学校も無縁ではいられない。学校のシステムを見直し、生徒の様々な状況を把握し分析するためにも、情報の活用が欠かせない時代である。必要なデータが自由に活用できるように、ツールを使いこなす力量が求められる。

新しいツールを使うこと自体に抵抗感を感じる人もいるだろう。多少面倒でも、いままで使い続けてきたツールで十分だ、と思うなら、無理に時間を割いて学習する必要はない。具体的な活用の場面に思い至らなければ、実際のところ身に着かないだろう。だが、そんな人も、常に自分の業務を分析しながら、この仕事だったらあのツールを使ったら簡単かもしれない、という意識を持ち続けたほうがいい。そのとき、優れたツールは、あなたの右腕となって仕事を支援してくれる。

必要に応じて適切なツールをいかに使いこなすか、ということが大切である。テクノロジーは日進月歩で進化し続ける。ソフトウエアの開発環境は革命的に良くなったので、現在きちんとしたソフトハウスからパッケージソフトウエアとして商品化されているものは、ほとんど例外なく高い完成度を持っていると思っていい。これらの場合、通常の使い方で想定される機能はすべて盛り込まれている。使い方がわからないという事態に直面したら、「できないはずはない」という姿勢で取り組もう。そのときは少し、気分転換をしたほうがいい。技術書はたくさん買って読め。人に聞くときは、具体的に教えて欲しい内容を限定して質問したほうがいい。

オフィス業務のIT化は始まったばかりだ。会社に入ってから読み書きを勉強する人はいないのと同じように、もはやパソコンでワープロ、表計算は当然のスキルである。インターネットでの検索、ファイルのダウンロード、電子メールも、できてあたりまえの時代になってきた。今後はデータベース、Web技術、グループウエアの活用によって、業務の合理化は進むだろう。余った時間をよりクリエイティブな業務に使うことができ、オフィス要員を減らして一人当たりの生産価値が上がり、業務は質の高いレベルへ上がっていく。かつてブルーカラーからホワイトカラーへ労働力が移転したのと同じインパクトで、ホワイトカラーはより質の高いオフィス業務を遂行する「ハイパーホワイトカラー」へ遷移していくと思われる。

次はXMLツールとしてのInfoPathの基本のシリーズと、エクセルやアクセスなどオフィス製品とInfoPathの接点を探るシリーズ、さらにコミュニティの場としてメーリングリストを始める予定だ。楽しみにしていて欲しい。

なお、このページでは、特に断りのない限り、サーバはWindows 2000 Server と SQL Server 2000、クライアントはWindows XP Professional と Info Path 2003、を使って説明した。筆者のメールアドレスはymatsumoto@hyogo-c.ed.jpだ。

       
  mailto:ymatsumoto@hyogo-c.ed.jp :←ここをクリックして筆者にメールを送る
       
 
matsumotoyshio.com 2004/06/11