<第11回>

親テーブルと子テーブル

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

ymatsumoto@hyogo-c.ed.jp

 
<<前のページへ
 
サンプルデータの追加入力
   
  デザインしたフォームを使ってデータ入力を行うため、フォームを「フォームの入力モード」で開く。InfoPathを起動すると、右側の「作業ウィンドウ」で「フォームの入力」に既に作って保存された「テストデータ入力フォーム」の項目があるので、これをクリックする。
   
   
  「クエリフォーム」が表示されるので「表示」メニューから「成績一覧表」をクリックする。
   
   
  SQL Serverにはすでに以下のような3件のデータが入力されているはずである。これを確かめるには「クエリの実行」ボタンをクリックする。そのときは「新しいレコード」ボタンを押して、このフォームに戻ろう。
   
 

学籍番号

seito_cd

講座番号

kamoku_cd

欠席時数

kesseki

10段階評価

hyoka

5段階評定

hyotei

3001 11001
3001 11002
3001 23001
   
  次にこのフォームを使って以下の6件のデータを入力する。データは1レコードごとにフォームへ入力し、「送信」ボタンを押す。
   
 

学籍番号

seito_cd

講座番号

kamoku_cd

欠席時数

kesseki

10段階評価

hyoka

5段階評定

hyotei

3002 11001
3002

11002

3002 23001 10
3003 11001
3003 11002 10
3003 23001 12
   
   
  データが入力できたら「クエリの実行」ボタンを押して確認する。
   
   
SQL Serverで入力されたデータを確認する
   
 

SQL Severのエンタプライズマネージャーを起動してkofu_dbデータベースを選択し、tbl_seisekiテーブルを開いて、InfoPathから入力されたデータを確認してみよう。

   
 
   
  全部で9件のデータが登録されていることと、自動的に連番のdata_idが生成していること、データを登録した日付がcreate_datetimeフィールドに登録されていることが確認できる。
   
 
   

子テーブルとなる新規テーブルを作成する

   
  「操作」メニューの「新規テーブル」をクリックし、子テーブルとなるテーブルを作成する。
   
 
   
  作成する子テーブルは、学籍番号と生徒氏名を関連付けるデータを保存することとする。フィールドはデータ型がintで長さが4の「seito_cd」、データ型がcharで長さが20の「seito_nm」を定義する。
   
 
   
  フィールドの定義ができたらテーブルを保存する。テーブル名は「tbl_seito」とした。
 

 

 
   
  クエリアナライザに戻り、テーブルができていることを確認する。tbl_seisekiは前に作った親テーブル、tbl_seitoはここで作った子テーブルだ。
   
 
   
サンプルデータの入力
   
 

クエリアナライザで作った子テーブルを右クリックし、「テーブルを開く」−「全行を返す」を選択してテーブルを開く。

   
 

   
 

サンプルとして次のデータを入力しておこう。

   
 

生徒番号

seito_cd

氏名

seito_nm

3001 鈴木 太郎
3002 佐藤 花子
3003 松本 吉生
   
 

   
 

子テーブルができてサンプルデータの入力が終われば、クエリアナライザによるSQL Server側の作業は終わりだ。

   
データソースの新規作成
   
 

InfoPathで親テーブルと子テーブルの間にリレーションシップを設けるには、データソースの構成をしなければならない。既存のデータソースに子テーブルを関連付けることもできるが、ここでは新しくデータソースを作ってみることにしよう。

InfoPathを起動したら、作業ウィンドウから「フォームのデザイン」−「フォームのデザイン」をクリックする。

   
   
  「新しいフォームのデザイン」−「データソースから新規作成」をクリックする。
   
   
  「データソースセットアップウィザード」が起動するので、必要な項目を指定しながらデータソースを構成していく。最初の画面ではデータベースの種類を選ぶ。この作業は一度やったことがあるので、覚えている人はどんどん進んでいけるだろう。最初の画面では「データベース(MicrosoftSQLServerまたはMicrosoftOfficeAccessのみ」を選択して「次へ」すすむ。
   
 
   
  「データベースの選択」ボタンをクリックする。
   
 
   
  「新しいSQL Server接続」をクリックし「開く」ボタンをクリックする。
   
 
   
 

サーバ名とログイン時のアカウント、パスワードを入力する。ここではサーバ名はSQLSV、ユーザ名はデフォルトのsaを使っている。

   
 
   
  データベースへの接続が成功すると、テーブルの一覧を表示できる。「使用するデータが含まれているデータベースを選択」のドロップダウンリストを開き、「kofu_db」データベースを選択する。
   
 

 
 
  「kofu_db」データベースには「tbl_seiseki」という名称の親テーブルと「tbl_seito」という名称の子テーブルがある。まず親テーブルである「tbl_seiseki」を選択して「次へ」ボタンをクリックする。
   
 
   
  ここまでの設定で終了のメニューになるので、とりあえず保存する。ファイル名は既に「tbl_seiseki.odc」という名称のデータ接続ができているので、上書きすることになる。「説明」のところに「成績テーブルと生徒名テーブルのリレーションシップ」と書いてわかりやすくしておき「完了」ボタンをクリックする。
   
 
   
  引き続き「データソースセットアップウィザード」が起動し、今一度SQL Serverへのログインを行うダイアログが表示されるので、サーバ名、ログインID、パスワードを入力し「OK」ボタンを押す。
   
 
   
 

「データソースセットアップウィザード」では、親テーブル「tbl_seiseki」の全てのフィールドが選択されている。子テーブルを追加しリレーションシップを確立するには「テーブルの追加」ボタンをクリックする。

   
 

   
  「テーブルまたはクエリの追加」ウィンドウが表示され、追加できるテーブルの一覧が得られる。「tbl_seiseki」はすでにデータソースとして定義された親テーブルである。ここで追加したいテーブルは「tbl_seito」の子テーブルであるので、選択して「次へ」ボタンをクリックする。
   
 
   
  次のウィンドウは「リレーションシップの編集」だ。このサンプルでは、親テーブルと子テーブルに「seito_cd」という同じ名称のフィールドを作ったので、自動的にリレーションシップを確立してくれるのだ。編集したいなら「リレーションシップの削除」や「リレーションシップの追加」を手作業で行うことになるが、ここではこのままでいいので「完了」ボタンをクリックする。
   
 
   
  親テーブルとして「tbl_seiseki」が、子テーブルとして「tbl_seito」が設定された。「次へ」をクリックする。
   
 
   
  データソースセットアップウィザードが終了した。「完了」ボタンをクリックする。
   
 
   
  デザインビューの「データソース」作業ウィンドウで、使用するデータソースとして2つのテーブルを含むデータソースができていることがわかる。
   
   
このページのまとめ
   
 

このページではSQL Serverに子テーブルを作り、「データソースの新規作成」で親テーブルと子テーブルのリレーションシップを確立したデータソースを作ることをした。次はこのデータソースから、リレーションシップを使ったビューをデザインしてみる。

なお、このページでは、特に断りのない限り、サーバは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/05/08