<第4回>

InfoPathをAccessに接続する

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

ymatsumoto@hyogo-c.ed.jp

 
<<前のページへ
 

InfoPathの「フォーム」とは

   
 

InfoPathを起動すると、次のようなメニュー画面が表示される。この起動時のメニューは「フォームの入力」であり、既存のフォームを選択し、そのフォームにデータを入力するメニューである。中央のペインにはデフォルトで用意された「サンプルフォーム」が表示されている。

   
 
   
 

InfoPathで使われる「フォーム」という言葉は、どんなデータをどのように格納するかを決めたフォームの「ひな形」を指す場合と、その「ひな形」に実際にデータを登録したファイルを指す場合がある。広義の「フォーム」という言葉は、この両方を指している。

フォームの「ひな形」は正確には「フォームテンプレート」と呼ばれる。それに対して、フォームテンプレートに実際のデータを入力して保存したファイルを、単に「フォーム」と呼ぶ。こちらが狭義の「フォーム」だ。

「フォームテンプレート」と「フォーム」はアイコンが似ているので見分けにくいが、「フォームテンプレート」は上部にオレンジ色のラインが入っており、書類を束ねたイメージになっている。アイコンを大きくすると見分けやすい。下の図では左が狭義の「フォーム」で、右がひな形である「フォームテンプレート」だ。

   
 
   
 

InfoPathの「フォーム開発」あるいは「フォームのデザイン」は、データ入力のひな型である「フォームテンプレート」を作ることで、厳密には「フォームテンプレート開発」あるいは「フォームテンプレートのデザイン」ということになる。InfoPathのフォーム開発者は、「フォームテンプレート」をデザインし、ユーザーは作成されたフォームテンプレートを使ってデータを入力し、データの入った「フォーム」として保存する、といった関係になる。これが「フォームのデザイン」と「フォームの入力」の関係にあたる。

InfoPathを初めて使うとき、この「フォームテンプレートの開発」と「フォームの入力」の関係を理解する必要がある。

   

新しいフォームを作る

   
 

新しいフォームを作る、厳密にいえば「新しいフォームテンプレートを作る」ということになるが、それには起動時の画面の左下にある「フォームのデザイン」をクリックするか、「フォームの入力」ウィンドウを閉じて「ファイル」メニューの「フォームのデザイン」をクリックする。

すると右側に「作業ウィンドウ」が表示され、「フォームのデザイン」のメニューが表示される。この「作業ウィンドウ」は、InfoPathの作業に必要なパーツなどが表示される部分で、ここを切り替えてうまく利用しながら作業すると、フォーム開発がスムーズに行えるだろう。

このとき、新しいフォームのデザインには「XMLドキュメントまたはスキーマから新規作成」と「データ接続から新規作成」、そして「新しい空白のフォーム」などの項目がある。

   
 
   

「新しい空白のフォーム」と「データ接続から新規作成」の違い

   
 

「XMLドキュメントまたはスキーマから新規作成」は、データ構造がすでにXMLドキュメントとして存在する場合に、それをInfoPathのフォームに適応させる作成方法である。社内でデータをXMLで扱っており、データ構造が決まっている場合はこれを使うといいだろう。

「新しい空白のフォーム」は、XMLのデータ構造をInfoPathで最初から作っていく方法である。「新しい空白のフォーム」でフォームテンプレートを作成した場合は、フォーム上で入力されたデータはフォーム上にXMLドキュメントとして生成し、データベースに送信することはできない。詳細は後述するが、このフォームではデータベースを接続先にした「メイン接続」を作ることができないからだ。「セカンダリデータソース」としてデータベースに接続することはできるが、「セカンダリデータソース」ではデータベースからのデータの取得はできても、データベースへの送信はできない。

そこでデータベースを接続先としてデータの送受信を行うフォームを作るには、「データ接続から新規作成」を選択する。 

   

データ接続ウィザードの開始

   
 

「データ接続から新規作成」をクリックすると、次のように「データ接続ウィザード」が開始する。 まず接続先のデータベースがAccessなので、「データベース」を選択して「次へ」ボタンをクリックする。

   
 
   
 

ウィザードの次の画面では、「データベースの選択」ボタンをクリックする。 

   
 
   
 

ファイル選択の画面になるので、「マイネットワーク」を選択し、ネットワーク上のコンピュータ「SHARE」に作成した「DB」共有フォルダを開き、「成績管理.mdb」 のAccessデータベースファイルを選択し、「開く」ボタンをクリックする。

   
 
 
 
   
 

データベースに接続すると「表の選択」ウィンドウになり、アクセスデータベースファイルに存在するテーブルが表示される。ここでは「授業日」データを対象にしたフォームを作成したいので、「授業日」テーブルを選択して「OK」ボタンをクリックする。

   
 
   
 

次の画面では「データソース構造」として、テーブルに存在するフィールドが表示される。このとき、必要のないフィールドは読み込まないようにするといったこともできる。接続不要のフィールドはチェックを外せばよいのだ。

ただしデータベースの「主キー」になっているフィールドはチェックボックスが淡くグレーアウトしており、チェックを外せないようになっている。

   
 
   
データ接続の「テーブルの変更」
   
 

データソース構造の表示画面では、ボタンがいくつかあり、データソースの詳細を決めることができる。ここで「テーブルの変更」というボタンがあるが、これはテーブルを別のテーブルにする、という意味ではなく、データの「並べ替え順序」を設定するボタンである。

「テーブルの変更」ボタンをクリックすると、次のような「並べ替え順序」のウィンドウが表示される。「最優先されるフィールド」を「年月日」とし、「完了」ボタンをクリックしよう。

   
 
   
 

データ選択ウィザードに戻ったら「次へ」ボタンをクリックし、データ接続ウィザードの最終画面へとすすむ。 

   
 
   
 

データ接続ウィザードの最終画面では、「概要」のところで「種類」として「データベースからデータを取得および送信する」となっていること、送信状況が「有効」であることを確認する。「完了」ボタンをクリックすればデータ接続の設定が完了する。 

   
 
   
このページのまとめ
   
 

このページでは、InfoPathの「フォーム」と「フォームテンプレート」について整理し、新しいフォーム作成を「データ接続から新規作成」し、ネットワーク上のAccessファイルに接続することをした。次回はこのAccessデータベースファイルに接続したInfoPathフォームを、テーブルに対するクエリやデータの更新ができるように編集する。

なお、このページでは、特に断りのない限り、Access2003とInfoPath2003を使って説明している。クライアントコンピュータのOSはWindowsXPで、サーバは特に使っていない。

       
  mailto:ymatsumoto@hyogo-c.ed.jp :←ここをクリックして筆者にメールを送る
       
 
matsumotoyoshio.com 2008/1/25