HYPER-TOMIX2

特別支援教育・情報教育・チャレランのMix!

Written by: on 2011/02/13 @ 22:06

MicrosoftSQLServerとMicrosoftInfoPathで,データベースシステムの「個別の指導計画」を開発するために,セカンダリデータソースとInfoPathのクエリを設定する

0.年度,学期,所属のデータをいくつか入力しておく

次の設定で検索ができるかどうかを確認するため,何人文化のデータを入力しておく

image

image

image

1.メニュー画面で検索する条件に必要なクエリフィールドを設定する

不要なフィールドを削除
image

必要な行を挿入して増やしておく
image

クエリフィールドから,検索の条件にしたいフィールドを選び,挿入した行にドラッグアンドドロップ
image

image
年度・・・q:年度T 学期・・・学期T・・・q:学期T 学部,学年・・・q:所属T 名前・・・q:基本T

2.クエリをドロップダウンリストボックスに変更する

挿入したクエリフィールドで右クリック→変更→ドロップダウンリストボックス
image

文字を入力する「テキストボックス」から選択ができる「ドロップダウンリストボックス」に変わる
しかしこの時点では選択肢となるデータがないため,選択はできない状態
image

3.セカンダリデータソースの設定

もう一度右クリック→ドロップダウンリストボックスのプロパティ
image

「ドロップダウンリストボックスのプロパティ」ウィンドウが開く
image

「リストボックス項目」から「外部データソースの値を参照する」を選択し,「追加」をクリック
image

「データ接続ウィザード」ウィンドウが開く 「データの受信」を選択して→次へ
image

「データベース(Microsoft SQL Server または Microsoft Office Access のみ)」を選択→次へ
image

「データベースの選択」をクリック
image

SQLServerとInfoPathで開発する「個別の指導計画」データベースシステム 3 InfoPathからSQLServerに接続する」で作成したデータ接続を選択→開く
image

基本Tだけのデータソース構造が表示されるが,「テーブルの削除」
image

まっさらになった状態で,「テーブルの追加」
image

「テーブルまたはクエリの追加」のウィンドウが開く 「所属T」を選択→「完了」
image

「所属T」のデータソース構造が表示される
image

不要なフィールドのチェックを外しておく
image

所属Tを基準にして「テーブルの追加」
「テーブルまたはクエリの追加」ウィンドウから,「基本T」→次へ
image

「リレーションシップの編集」ウィンドウとなる
image

「所属T」のIDと「基本T」のIDだけを残して「リレーションシップの削除」→完了
image

「所属T」に「基本T」がリレーションシップになった状態
image

「所属T」に「テーブルの追加」で「年度T」を追加
image

「所属T」の年度 と 「年度T」の年度 のリレーションシップだけを残して削除しておく
image

image

「学期T」も追加
image

「所属T」の年度 と 「学期T」の年度 のリレーションシップだけを残して削除しておく
image

「所属T」「基本T」「年度T」「学期T」のフィールドから選択しが作れるようになる 次へ
image
image

「メニュー選択」と書き換えて→完了
image

4.セカンダリデータソースから選択肢を設定する

4-1.「年度」のリストダウンボックスの設定

「データソース」が先ほど作ったセカンダリデータソースの「メニュー選択」になっていることを確認して「エントリ」欄の右側のボタンをクリック
image

「フィールドまたはグループの選択」ウィンドウが開く ツリーを展開して「年度T」の「年度」をクリック→OK
image

「エントリ」の欄に設定したフィールドのパスが表示されていることを確認して,「一意の表示名を持つ項目のみ表示する」にチェック→OK
image

プレビューで動作確認をしてみる

「年度」の欄がドロップダウンリストとなり,選択肢が表示されるようになる
選択して「個別の指導計画」ボタンをクリックしクエリを実行すると,
image

入力されているすべてのデータが表示されてしまうが,「年度T」のテーブルだけは,選択した年度のデータだけに絞り込まれて表示される
image

image
image

4-2.「学期」のドロップダウンリストボックスの設定

image

4-3.「学部」のドロップダウンリストボックスの設定

image

4-4.「学年」のドロップダウンリストボックスの設定

image

4-5.「名前」のドロップダウンリストボックスの設定

image

4-6.プレビューで動作確認をしてみる

各項目を適当に選択し,「個別の指導計画」ボタンでクエリを実行する
image

「潮田こうじ」のデータだけに絞られて表示されるようになった
image
しかし,「潮田こうじ」は「平成22年度」は「中学部」の「2年生」となっているはずで,入力してあるはずの「所属T」の学部,学年,年度のデータが表示されていない
これは,メニュー画面でのクエリの選択がでたらめだったが,でたらめに条件設定した範囲で合致するものが表示されたのである
メニュー画面のクエリの選択のところで,適切な選択ができるようにしておかなければならない

5.順番にクエリを絞り込んで表示させる設定

5-1.「学期」のフィルタの設定

「学期」を右クリック→「ドロップダウンリストボックスのプロパティ」ウィンドウから「XPathの選択」
image

「フィルタデータ」をクリック
image

「フィルタデータ」ウィンドウが開く 「追加」をクリック
image

「フィルタの条件指定」のウィンドウが開く 左のドロップダウンリストから「年度」を選択
image

真ん中は「が次の値に等しい」のままで,右のドロップダウンリストから「フィールドまたはグループの選択」を選択
image

「フィールドまたはグループの選択」ウィンドウが開く 「データソース」を「メイン」に変更する
image

「メイン」のクエリフィールドから,「q:年度」の「年度」を選択して→OK
image

「フィルタの条件」の右側も左側も「年度」となっているが,選んでいるデータソースとフィールドが違っていることに注意
image

image

5-2.「学部」のフィルタの設定

「年度」で「平成22年度」を選んだら,平成22年度に所属している学部,学年の児童生徒の名前が表示されるようになっていると,選択がでたらめにならなくて済む

「学部」を右クリック→「ドロップダウンリストボックスのプロパティ」ウィンドウから「XPathの選択」
image

「フィルタデータ」をクリック
image

「フィルタデータ」ウィンドウが開く 「追加」をクリック
image

「フィルタの条件指定」のウィンドウが開く 左のドロップダウンリストから「年度」を選択
image

真ん中は「が次の値に等しい」のままで,右のドロップダウンリストから「フィールドまたはグループの選択」を選択
image

「フィールドまたはグループの選択」ウィンドウが開く 「データソース」を「メイン」に変更する
image

「メイン」のクエリフィールドから,「q:年度」の「年度」を選択して→OK
image

「フィルタの条件」の右側も左側も「年度」となっているが,選んでいるデータソースとフィールドが違っていることに注意
image

image

5-3.「学年」のフィルタの設定

「フィルタデータ」をクリック
image

「年度」を選択
image

真ん中は「が次の値に等しい」のままで,右のドロップダウンリストから「フィールドまたはグループの選択」を選択
image

「フィールドまたはグループの選択」ウィンドウが開く 「データソース」を「メイン」に変更する
image

「メイン」のクエリフィールドから,「q:年度」の「年度」を選択して→OK
image

image

さらに「追加」
image

左側から「学部」を選択
image

右のドロップダウンリストから「フィールドまたはグループの選択」を選択

image

「メイン」の「q:所属」から「学部」を選択して→OK
image

image

絞り込みの条件が年度と学部の二つになった
年度が合っていてかつ学部もあっているものが絞られて表示されるようになる
image

5-4.「名前」のフィルタ設定

「データフィルタ」をクリック
image

「フィールドまたはグループの選択」を選択
image

「メニュー選択」の「d:所属T」から「年度」を選択して→OK
image

「フィールドまたはグループの選択」を選択
image

「メイン」のクエリフィールドから,「q:年度」の「年度」を選択して→OK
image

フィルタデータ で「追加」
image

「フィールドまたはグループの選択」を選択
image

「メニュー選択」の「d:所属T」から「学部」を選択して→OK
image

右のドロップダウンリストから「フィールドまたはグループの選択」を選択 image

「メイン」の「q:所属」から「学部」を選択して→OK
image

「AND/OR」をクリックして,条件を追加する
image

条件が追加できる行が増える 「フィールドまたはグループの選択」を選択
image

「メニュー選択」の「所属T」から「学年」を選択→OK
image

image

image

image

フィルタの条件が3つになった状態
image

5-5.動作確認をしてみる

年度・・平成22年度を選択すると学部は小学部か中学部しか選択できなくなる
※サンプルのデータを入力した段階では,平成22年度は,小学部1年生か中学部2年生しかいないことになっているので,高等部は表示されなくてよい
image

image

「学部」で小学部を選択すると,「学年」は「1年」しか選択できない
image

学年まで選択すると,その年度の所属の児童生徒の名前が出るようになる
image

image

これで,平成22年度の「佐々木りんこ」のデータだけが表示されるようになる
しかし,学期だけは平成23年度も表示されてしまう
image

image

5-6.隠れクエリを設定して不要なデータが表示されないようにする

年度のドロップダウンリストを右クリック→プロパティ 「データ」タブの「動作規則」をクリック
image

「動作規則」ウィンドウが開く 「追加」をクリック
image

「動作規則」の設定ができるウィンドウが開く 「動作の追加」をクリック
image

「フィールドの値を設定する」を選択
image

「フィールド」の欄のボタンをクリック
image

「フィールドまたはグループの選択」ウィンドウが開く 「q:学期T」の「年度」を選択して→OK
image

次いで,「値」の欄の「fx」ボタンをクリック
image

「数式の挿入」ウィンドウが開く 「フィールドまたはグループの挿入」をクリック
image

「q:年度T」の「年度」を選択して→OK
image

そのままで→OK
image
image

名前を「クエリ年度」と書き換えて→OK
image
image
image

「q:年度」の「年度」フィールドが動作するときに,「q:年度」の「年度」フィールドと同じ値を「q:学期」の「年度」フィールドに自動的に入力するようにして,隠れたクエリを設定した。
これによって,「学期T」テーブル内の「年度」フィールドでクエリがかかり,メニュー画面で指定した年度のデータだけが表示されるようになる。

再度,動作確認

imageimage

Catogories: SQLServerとInfoPath

Comments are closed.