へたれシステム管理者の管理人です。
ACCESSを使っていると【DLOOKUP関数】を使う事がたまにあるのですが・・・
これが、結構ややこしくて嫌いです。
条件が一個の場合
【DLOOKUP】は条件が文字列の場合と数値の場合でクオーテーションの使い方がややこしくてかなりつらいです・・・
下の例はいずれも・・・
【test_table2】からフォームに設定した条件に合致する行の【テスト文字列】というカラムを抽出するものです・・・
フォームのテキストボックスから条件を設定する場合は次のとおりです。
条件が文字列の場合
条件の開始と終了を【”】で囲んで、文字列は【’】で挟みます。
=DLookUp("[テスト文字列]","test_table2","[氏名]= '" & [氏名] & "'")
条件が数値の場合
数値の場合は【”】の位置が異なります。
=DLookUp("[テスト文字列]","test_table2"," [年齢] = " & [年齢])
原則は次の条件となります。
- 条件式部分全体をダブルクォーテーションでくくる
- =の後は、数値ならそのまま、文字列ならシングルクォーテーションでくくる
- 変数で指定する場合は”[条件]=’” & 文字列変数 & “’”
- 変数で指定する場合は”[条件]=” & 数値変数
条件が複数の場合
条件が複数の場合はかなりややこしくなります。
条件が文字列の場合
分かり易いように条件部分を改行しています。
条件の開始と終了を【”】で囲んで、文字列は【’】で挟むのは同じです。
【and】部は【”や’】で囲むことはしません。
=DLookUp("[テスト文字列]","test_table2",
"[氏名]= '" & [氏名] & "'
and [住所] = '" & [住所] & "'")
条件に数値が含まれる場合
おそらく赤の【”】が条件を囲む部分になります。
下の条件では、数値を最後の条件に持ってきているので、下の書き方になります。
=DLookUp("[テスト文字列]","test_table2",
"[氏名]= '" & [氏名] & "'
and [住所] = '" & [住所] & "'
and [年齢] = " & [年齢])
数値の条件を真ん中にもっていくと次のとおりとなります。
V=DLookUp("[テスト文字列]","test_table2",
"[氏名]= '" & [氏名] & "'
and [年齢] = [年齢]
and [住所]='" & [住所] & "'")
数値条件を最初にもっていくと・・・
=DLookUp("[テスト文字列]","test_table2",
"[年齢] = [年齢]
and [氏名]= '" & [氏名] & "'
and [住所]='" & [住所] & "'")
ぶっちゃけ・・・
よく分かりません。
ややこしくて覚えられないので、忘備録として記録しておきます。
コメント