即効テクニック

フォーム・レポート

情報の自動参照

( - )
ある得意先から、商品の注文があったので注文データを登録する場合、得意先の名前住所などは、得意先を一覧から選択することで自動で表示できます。

●準備●
自動参照は、2つのテーブル間に一対多リレーションシップがあり、一個側の結合フィールドに固有のインデックスが設定されているクエリで使うことができます。
固有のインデックスとは、フィールドが、主キーフィールドであるか、[インデックス]プロパティに[はい(重複なし)]が設定されていることを意味します。

得意先テーブル
 (得意先コード、得意先名、住所、・・・・・・)主キー 得意先コード
受注テーブル
 (受注番号、得意先コード、受注日・・・・・・・)主キー 受注番号
があるとします。

●手順●
  1. [ツール]メニューから[リレーションシップ]を選択し、リレーションシップを表示します。
  2. 得意先テーブルと受注テーブルを表示させます。 メニューの[リレーションシップ]-[テーブルの表示]を選択します。 得意先テーブルと受注テーブルを追加します。
  3. 得意先テーブルの得意先コードと受注テーブルの得意先コードをドラッグして結びます。 一対多のリレーションシップが出来たのを確認します。
  4. クエリを新規作成します。名前は、受注入力としておきましょう。 新規クエリのデザインビューで、得意先テーブルと受注テーブルを追加します。 得意先テーブルの得意先コードと受注テーブルの得意先コードは、自動的に実線でつながります。 得意先コードは、得意先テーブルにも受注テーブルにもあります。 クエリで、自動参照を使うときには、多側のフィールドをデザイングリッドに追加します。この場合には、多側の受注テーブルの得意先コードをデザイングリッドに追加します。
  5. 残りのフィールドをそれぞれデザイングリッドに追加します。
  6. 受注入力用のフォームを作成します。 データソースは、先ほど作りましたクエリを指定します。
  7. 得意先の入力では、得意先一覧からコンボボックスで選択します。 したがって、得意先コードを入力するテキストボックスは必要ありません。 代わりにツールボックスからコンボボックスを作ります。
    • ラベルは、"得意先名"とします。
    • コントロールソースは、"得意先コード"指定します。 実際には、"得意先コード"が格納されますが、表に表示されるのは"得意先名"になります。
    • 値集合タイプは、"テーブル/クエリ"を指定します。
    • 値集合ソースは、クエリビルダを起動して、得意先テーブルを追加します。
    • デザイングリッドの一番左側に"得意先コード"次に"得意先名"2つを追加します。
  8. クエリビルダを閉じます。
    • 連結列は数字の"1"を指定します。
    • 書式の列数は、数字の"2"を指定します。
    • 列幅は"0cm;5cm"とします。
  9. 残りの項目は、テキストボックスを配置して、コントロールソースを指定します。
●動作確認● 実際にフォームを起動してデータを入力してみましょう。 コンポボックスから、得意先名を選択します。 得意先のデータ(住所など得意先テーブルのデータ)が自動で表示されればOKです。 ●応用● 得意先名を選択するコンポボックスの値集合ソースにクエリビルダを使用したのには理由があります。 得意先の並びをここで指定できます。(得意先コード順、または得意先名順) また、選択できる得意先をこのクエリビルダで制御できます。 得意先テーブルに部門の情報があれば部門に関係のある得意先だけのリストを作成することも出来ます。