<第5回> |
InfoPathでデータを取得する 兵庫県立西宮香風高等学校 松本吉生 ymatsumoto@hyogo-c.ed.jp |
<<前のページへ | |||
「クエリフィールド」と「データフィールド」 | |||
InfoPathで新しいフォームを「データ接続から新規作成」し、データ接続ウィザードが終了すると、次のようなフォームができているはずだ。 | |||
|
|||
右側の「作業ウィンドウ」にある「データソース」には、接続先のデータベースにあるフィールドが表示されている。ここには「queryFields」と「dataFields」と書かれた2つのフォルダがあることがわかる。「クエリフィールド」と「データフィールド」だ。「+」のアイコンをクリックして展開してみよう。 クエリフィールドとデータフィールドには、どちらにも接続先のAccessデータベースのフィールドが表示されているが、クエリフィールドとデータフィールドの役割は違いがある。クエリフィールドはフォームにデータを読み込むときに絞り込みを行うためのフィールドで、データフィールドは実際のデータが入っているフィールドなのだ。 |
|||
|
|||
クエリフィールドをフォームに配置する |
|||
フォームには「ここにクエリフィールドをドラッグしてください」と書かれたところがある。ここに作業ウィンドウからクエリフィールドの「授業日」グループをドラッグする。すると「コントロール付きセクション」、「セクション」、「レイアウト用の表内のコントロール」、「コントロール」の4つのメニューが表示される。 「コントロール」はデータの入るテキストボックスやボタンなど、InfoPathで操作をするための「部品」のことで、「セクション」はデータソースのテーブルと関連付けられた箱のような概念のものである。「セクション」がテーブルと関連付けられ、その中に配置された「コントロール」がテーブル内のフィールドに対応する、という関係になる。「レイアウト用の表」は、コントロールやテキストを整列するための表だ。 ここで「レイアウト用の表内のコントロール」を選ぶと、「年月日」、「曜日」、「授業日」のフィールドが、レイアウト用の表の中にテキストボックスのコントロールとして生成する。 |
|||
|
|||
|
|||
データフィールドをフォームに配置する |
|||
次にフォームの「ここにデータフィールドをドラッグしてください」と書かれたところに、作業ウィンドウのデータフィールドから「授業日」グループをドラッグする。すると「繰り返しテーブル」、「コントロール付き繰り返しセクション」、「繰り返しセクション」、「マスタと詳細」のメニューが表示される。 「繰り返しテーブル」も「繰り返しセクション」もデータベースのテーブルに関連付けられた箱である。テーブルには複数行のデータが入っているので、それぞれのフィールドのデータが「繰り返される」という意味で「繰り返し」という名前になっている。 ここでは「繰り返しテーブル」を選択してみよう。 |
|||
|
|||
|
|||
フォームには「クリックしてタイトルを追加してください」というところがある。ここに「年月日テーブル編集フォーム」とタイトルを書こう。「クリックしてフォームの内容を追加してください」というところには、「授業日の設定を確認、変更するフォームです」と説明を書こう。 | |||
|
|||
フォームのプレビューとクエリの実行 |
|||
「ファイル」メニューの「フォームのプレビュー」から「既定」をクリックするか、フォーム上部のメニューボタンの「フォームのプレビュー」ボタンをクリックすると、完成したフォームテンプレートの動作を確かめることができる。 |
|||
|
|||
プレビューができたら、「クエリの実行」ボタンをクリックしよう。するとデータベースにクエリが送信され、Accessデータベースに登録されている一年間の年月日データが取得される。 |
|||
|
|||
次に、クエリフィールドの「曜日」テキストボックスに「日」と入力して「クエリの実行」ボタンをクリックしよう。すると「曜日」が「日」だけのデータを問い合わせるクエリがデータベースに送信される。得られたデータは日曜日だけのデータのはずだ。 このようにクエリフィールドはデータの絞り込みを行うときに利用する。 |
|||
|
|||
クエリフィールドの「曜日」テキストボックスに入力した「日」をクリアし、「授業日」テキストボックスに「2」と入力して「クエリの実行」ボタンをクリックしよう。「授業日」データが「2」つまり授業がない日に設定されているのは、この時点では土曜と日曜だけなので、土曜と日曜だけのデータが得られるはずだ。 |
|||
|
|||
では最後に「年月日」のフィールドを見てみよう。このフィールドには右側にカレンダーを意味したアイコンが表示されている。このアイコンをクリックすると、カレンダーから日を選べるようになる。これは単なるテキストボックスではなく、「日付の選択」コントロールという。 このコントロールは、データソースからクエリフィールドの「授業日」グループをドラッグしたときに自動的に生成した。InfoPathはデータソースのフィールドの「データ型」にあわせて、最も適切なコントロールを自動的に生成するのだ。 まず「授業日」フィールドに入力した「2」をクリアし、カレンダーから「2008年4月1日」を選択して「クエリの実行」ボタンをクリックしよう。すると2008年4月1日のデータだけが得られるはずだ。 |
|||
|
|||
|
|||
このページのまとめ | |||
このページでは、InfoPathの「クエリフィールド」と「データフィールド」の違いを説明し、これらのデータフィールドを使うってデータを受信することをした。次回はこのAccessデータベースファイルに対して、データを送信できるようにフォームを変更する。 なお、このページでは、特に断りのない限り、Access2003とInfoPath2003を使って説明している。クライアントコンピュータのOSはWindowsXPで、サーバは特に使っていない。 | |||
mailto:ymatsumoto@hyogo-c.ed.jp :←ここをクリックして筆者にメールを送る | |||
matsumotoyoshio.com 2008/1/28 | |||