Access でフォームをデザインする場合は、フォームのバインド先以外のテーブルまたはクエリの値を表示できます。 たとえば、Products テーブルにバインドされている Products フォームがあるとします。 ただし、フォームを設計した後、各製品の仕入先連絡先の名前 (Suppliers というテーブルに存在するデータ) をフォームに表示することを決定します。 次の手順では、 DLookup 関数を使用してこのタスクを実行する方法を示します。 手順 6 の式は、独自のデータに合わせて変更できます。
テキスト ボックスを追加する
-
ナビゲーション ウィンドウで、変更するフォームを右クリックし、ショートカット メニューの [ デザイン ビュー ] をクリックします。
-
[デザイン] タブの [コントロール] グループで [テキスト ボックス] をクリックします。
-
コントロールを追加するフォーム内の領域を見つけ、フォーム上のポインターをドラッグしてテキスト ボックスを作成します。
-
テキスト ボックスを右クリックし、ショートカット メニューの [プロパティ] をクリックします。
-
プロパティ シートで、[ すべて ] タブをクリックします。
-
[コントロール ソース] プロパティを次の値に設定します。
=DLookup("[ContactName]","[Suppliers]","[SupplierID]=" & Forms!製品!SupplierID)
-
フォームの変更を保存し、プロパティ シートを閉じます。
この式は Suppliers テーブル を検索し、仕入先 ID が Products フォームの SupplierID コントロールの値と一致する仕入先の連絡先名を返 します。 & 演算子を使用して DLookup 関数の 3 番目の引数を作成する方法に注意してください (3 番目の引数は "[SupplierID]=" & Forms!製品!SupplierID)。 避けるべき一般的なエラーは、 & 演算子の前にあるテキストだけを囲むのではなく、引数全体を引用符で囲むということです。
注: DLookup 関数を使用する代わりに、新しい基になるクエリを作成して、必要な情報のみを含めることができます。 クエリの使用は、多くの場合、関数を使用するよりも効率的です。