Microsoft Access データベースへのデータ接続の追加

適用先
InfoPath 2010 InfoPath 2013

ユーザーが Microsoft Office InfoPath フォーム テンプレートに基づいてフォームに入力するために、Microsoft Office Access 2007 (.accdb 形式) データベースまたは以前のバージョン (.mdb 形式) で保存された Access データベースからのデータが必要な場合は、Access データベースにクエリを実行するセカンダリ データ接続をフォーム テンプレートに追加できます。

セカンダリ データ接続を追加できますが、そのデータ接続では Access データベースに対してのみクエリを実行できます。 フォーム データを Access データベースに送信するセカンダリ データ接続を追加することはできません。

ユーザーが自分のフォーム データを Access データベースに送信する場合は、Access データベースに基づくフォーム テンプレートを設計し、メイン データ接続でデータの送信接続を有効にすることができます。 または、Access データベースで動作する Web サービスにセカンダリ データ接続を追加することもできます。

Access データベースに基づくフォーム テンプレートの設計と Web サービスへのセカンダリ データ接続の追加に関する詳細については、「 参照」セクションを参照してください

この記事の内容

概要

セカンダリ データ接続は、フォーム テンプレートに追加するデータ接続です。 セカンダリ データ接続は、データベースまたは Web サービスに基づく新しいフォーム テンプレートを設計するときに作成するメイン データ接続とは異なります。 フォーム テンプレートのメイン データ接続は、外部データ ソースからデータを受信でき、フォーム データを外部データ ソースに送信することもできます。 ただし、フォーム テンプレートのメイン データ接続は 1 つだけです。

フォーム テンプレートには、必要な数のセカンダリ データ接続を追加できます。 たとえば、従業員データを格納するテーブルと、顧客データを格納する別のテーブルを含む Access データベースがあるとします。 従業員テーブルからデータを取得するセカンダリ データ接続を追加したり、同じ Access データベース内の顧客テーブルからデータを取得する別のセカンダリ データ接続を追加することもできます。

Web サービスやWindows SharePoint Services ライブラリなどの外部データ ソースにフォーム データを送信できるセカンダリ データ接続をフォーム テンプレートに追加できますが、セカンダリ データ接続を使用して Access データベースからデータを取得することしかできません。 フォーム データを Access データベースに送信するセカンダリ データ接続を追加することはできません。

データベースにクエリ データ接続を追加すると、InfoPath は、データがデータベースに格納される方法に対応するデータ フィールドとグループを含むセカンダリ データ ソースを作成します。 セカンダリ データ ソースのデータ構造は、データがデータベース テーブルに格納される方法と一致している必要があるため、セカンダリ データ ソース内のフィールドまたはグループを変更することはできません。

フォームがネットワークに接続されていないときにユーザーがデータにアクセスできるように、各クエリ データ接続を構成して結果を保存できます。 データの性質によっては、ユーザーがネットワークに接続されている場合にのみクエリ結果を表示できます。

セカンダリ データ接続を使用して外部データ ソースから機密データを取得する場合は、この機能を無効にして、コンピューターが紛失したり盗まれたりした場合に、不正使用からデータを保護することができます。 この機能を無効にした場合、ユーザーがネットワークに接続されている場合にのみデータを使用できます。

フォーム テンプレートにクエリ データ接続を追加する場合、既定では、このフォーム テンプレートに基づくフォームは、ユーザーが開いたときにデータ接続を使用します。 次のいずれかの方法でクエリ データ接続を使用するようにフォーム テンプレートを構成することもできます。

  • ルールを追加する ルール内の条件が発生するたびにクエリ データ接続を使用するようにルールを構成できます。
  • ボタンを追加する ユーザーがクエリ データ接続を使用してデータを取得するためにクリックできるボタンをフォーム テンプレートに追加できます。
  • カスタム コードを使用する ルールまたはボタンを追加できない場合は、カスタム コードを使用して、クエリ データ接続を使用してデータを取得できます。 カスタム コードを使用するには、開発者がカスタム コードを作成する必要があります。

ページの先頭へ

互換性に関する考慮事項

Access データベースへのデータ接続をブラウザー互換のフォーム テンプレートに追加することはできません。

ページの先頭へ

始める前に

Access データベースにセカンダリ データ接続をフォーム テンプレートに追加する前に、次の情報が必要です。

  • データベースの名前と場所。

    Access データベースがネットワーク上の場所に格納されている場合は、データベースにユーザーがアクセスできることを確認します。

  • このフォーム テンプレートに基づくフォームにデータを提供するテーブルまたはクエリの名前。 クエリ データ接続を構成するときに、このテーブルまたはクエリをプライマリ テーブルまたはクエリとして使用します。

  • プライマリ テーブルまたはクエリに追加のデータを提供する他のテーブルまたはクエリの名前。 ほとんどの場合、テーブルリレーションシップはデータベースに既に確立されています。 プライマリ テーブルまたはクエリと別のテーブルまたはクエリの間のリレーションシップを手動で確立する必要がある場合は、テーブルまたはクエリの両方の関連フィールド名が必要です。

ページの先頭へ

手順 1: セカンダリ データ接続を追加する

  1. [ ツール ] メニューの [ データ接続] をクリックします。

  2. [ データ接続 ] ダイアログ ボックスで、[ 追加] をクリックします。

  3. データ接続ウィザードで、[ 新しい接続の作成] をクリックし、[ データの受信] をクリックし、[ 次へ] をクリックします。

  4. ウィザードの次のページで、[データベース ] (Microsoft SQL Server または Microsoft Office Access のみ) をクリックし、[次へ] をクリックします。

  5. ウィザードの次のページで、[データベースの 選択] をクリックします。

  6. [ データ ソースの選択 ] ダイアログ ボックスで、データベースの場所を参照します。

    データベースがネットワークの場所に格納されている場合は、場所の汎用名前付け規則 (UNC) パスを参照します。 マップされたネットワーク ドライブを介してネットワークの場所を参照しないでください。 マップされたネットワーク ドライブを使用する場合、このフォーム テンプレートに基づいてフォームを作成するユーザーは、マップされたネットワーク ドライブからデータベースを検索します。 ユーザーがマップされたネットワーク ドライブを持っていない場合、フォームはデータベースを見つけることができません。

  7. データベースの名前をクリックし、[ 開く] をクリックします。

  8. [ テーブルの選択 ] ダイアログ ボックスで、使用するプライマリ テーブルまたはクエリをクリックし、[OK] をクリック します

  9. ウィザードの次のページで、[テーブル列チェック表示] ボックスを選択します。
    既定では、テーブルまたはクエリ内のすべてのフィールドがフォーム テンプレートのメイン データ ソースに追加されます。

  10. セカンダリ データ ソースに含める必要のないフィールドのチェック ボックスをオフにします。
    データ接続にテーブルまたはクエリを追加します。
    どう。

    1. [ テーブルの追加] をクリックします。
    2. [ テーブルまたはクエリの追加 ] ダイアログ ボックスで、子テーブルの名前をクリックし、[ 次へ] をクリックします。 InfoPath は、両方のテーブルのフィールド名を照合してリレーションシップを設定しようとします。 推奨されるリレーションシップを使用しない場合は、リレーションシップを選択し、[ リレーションシップの削除] をクリックします。 リレーションシップを追加するには、[ リレーションシップの追加] をクリックします。 [ リレーションシップの追加 ] ダイアログ ボックスで、それぞれの列の各関連フィールドの名前をクリックし、[OK] をクリック します
    3. [完了] をクリックします。
    4. 子テーブルを追加するには、次の手順を繰り返します。
  11. [次へ] をクリックします。

  12. フォームがネットワークに接続されていないときにクエリ データ接続の結果を使用できるようにするには、[フォーム テンプレートにデータのコピーを保存する] チェック ボックスを選択します。

    このチェックボックスを選択すると、フォームがこのデータ接続を使用するときに、ユーザーのコンピューターにデータが格納されます。 フォームがこのデータ接続から機密データを取得している場合は、コンピューターが紛失または盗難にあった場合に備えて、この機能を無効にしてデータを保護することができます。

  13. [次へ] をクリックします。

  14. ウィザードの次のページで、このセカンダリ データ接続のわかりやすい名前を入力し、[ 概要 ] セクションの情報が正しいことを確認します。

  15. フォームを開いたときにデータを自動的に受信するようにフォームを構成するには、[フォームを開いたときにデータを自動的に取得する] ボックスチェック選択します。

ページの先頭へ

手順 2: データ接続を使用するようにフォーム テンプレートを構成する

ユーザーがフォームを開いた後、このフォーム テンプレートに基づくフォームでこのデータ接続を使用する場合は、特定の条件でこのデータ接続を使用するルールをフォーム テンプレートに追加するか、ユーザーがこのデータ接続を使用するためにクリックできるボタンをフォーム テンプレートに追加できます。

ルールを追加する

ルールの条件が満たされるたびに、クエリ データ接続からデータを取得するためのルールをフォーム テンプレートに追加できます。 たとえば、ユーザーが外部データ ソースから特定のデータを取得するために入力できるテキスト ボックスをフォーム テンプレートに追加できます。 その後、ユーザーがテキスト ボックスにデータを入力するたびに、データ接続を使用するルールを追加できます。

次の手順では、フォーム テンプレートのクエリ データ接続を作成していること、およびフォーム テンプレートのコントロール (ボタン以外) を構成して、そのデータ接続のデータを表示していることを前提としています。

  1. フォーム テンプレートに複数のビューがある場合は、[表示] メニューの [表示名] をクリックして、セカンダリ データ ソースのデータを表示するコントロールを含むビューに移動します。
  2. ルールを追加するコントロールをダブルクリックします。
  3. [データ] タブをクリックします。
  4. [ 検証とルール] で、[ ルール] をクリックします。
  5. [ ルール ] ダイアログ ボックスで、[ 追加] をクリックします。
  6. [ 名前 ] ボックスに、規則の名前を入力します。
  7. ルールを実行する条件を指定するには、[条件の 設定] をクリックし、条件を入力します。 条件が発生すると、ルールが実行されます。 条件を設定しない場合、ユーザーがコントロールの値を変更するたびにルールが実行され、そのコントロールからカーソルが移動します。
  8. [ アクションの追加] をクリックします。
  9. [ アクション ] ボックスの一覧で、[ データ接続を使用したクエリ] をクリックします。
  10. [ データ接続 ] の一覧で、使用するクエリ データ接続をクリックし、[OK] クリックして開いている各ダイアログ ボックスを閉じます。
  11. 変更内容をテストするには、[標準] ツール バーの [プレビュー] をクリックするか、Ctrl キーと Shift キーを押しながら B キーを押します。

ボタンを追加する

ユーザーがクリックしてクエリ データ接続からデータを取得できるボタン コントロールをフォーム テンプレートに追加できます。

  1. フォーム テンプレートに複数のビューがある場合は、[表示] メニューの [表示名] をクリックして、セカンダリ データ ソースのデータを表示するコントロールを含むビューに移動します。

  2. [コントロール] 作業ウィンドウが表示されていない場合は、[挿入] メニューの [コントロールの選択] をクリックするか、Alt キーを押しながら I キー、C キーの順に押します。

  3. ボタン コントロールをフォーム テンプレートにドラッグします。

  4. フォーム テンプレートに追加したボタン コントロールをダブルクリックします。

  5. [全般] タブをクリックします。

  6. [ アクション ] ボックスの一覧で、[ 更新] をクリックします。

  7. [ ラベル ] ボックスに、フォーム テンプレートのボタンに表示する名前を入力します。

  8. [設定] をクリックします。

  9. [ 更新 ] ダイアログ ボックスで、次のいずれかの操作を行います。

    • このフォーム テンプレートへのセカンダリ データ接続を使用して、すべての外部データ ソースから最新のデータを受信するには、[ すべてのセカンダリ データ ソース] をクリックします。
    • フォーム テンプレートへのセカンダリ データ接続がある 1 つの外部データ ソースから最新のデータを受信するようにボタンを構成するには、[ 1 つのセカンダリ データ接続] をクリックし、[ セカンダリ データ ソースの選択 ] ボックスの一覧でセカンダリ データ ソースをクリックします。
  10. [OK] をクリックして、開いている各ダイアログ ボックスを閉じます。

  11. 変更内容をテストするには、[標準] ツール バーの [プレビュー] をクリックするか、Ctrl キーと Shift キーを押しながら B キーを押します。

ページの先頭へ