ACCESS・DLOOKUP・複数条件の設定にかなり悩む!

050-VBA

へたれシステム管理者の管理人です。

ACCESSを使っていると【DLOOKUP関数】を使う事がたまにあるのですが・・・

これが、結構ややこしくて嫌いです。

条件が一個の場合

【DLOOKUP】は条件が文字列の場合と数値の場合でクオーテーションの使い方がややこしくてかなりつらいです・・・

下の例はいずれも・・・

【test_table2】からフォームに設定した条件に合致する行の【テスト文字列】というカラムを抽出するものです・・・

フォームのテキストボックスから条件を設定する場合は次のとおりです。

条件が文字列の場合

条件の開始と終了を【”】で囲んで、文字列は【’】で挟みます。

=DLookUp("[テスト文字列]","test_table2","[氏名]= '" & [氏名] & "'")

条件が数値の場合

数値の場合は【”】の位置が異なります。

=DLookUp("[テスト文字列]","test_table2"," [年齢] = " & [年齢])

原則は次の条件となります。

  1. 条件式部分全体をダブルクォーテーションでくくる
  2. =の後は、数値ならそのまま、文字列ならシングルクォーテーションでくくる
  3. 変数で指定する場合は”[条件]=’” & 文字列変数 & “’”
  4. 変数で指定する場合は”[条件]=” & 数値変数
スポンサーリンク

条件が複数の場合

条件が複数の場合はかなりややこしくなります。

条件が文字列の場合

分かり易いように条件部分を改行しています。

条件の開始と終了を【”】で囲んで、文字列は【’】で挟むのは同じです。

スポンサーリンク

【and】部は【”や’】で囲むことはしません。

=DLookUp("[テスト文字列]","test_table2",
"[氏名]= '" & [氏名] & "'
and [住所] = '" & [住所] & "'")

条件に数値が含まれる場合

ブログランキングにご協力ください!
ブログランキング・にほんブログ村へ

おそらく赤の【”】が条件を囲む部分になります。

下の条件では、数値を最後の条件に持ってきているので、下の書き方になります。

=DLookUp("[テスト文字列]","test_table2",
"[氏名]= '" & [氏名] & "'
and [住所] = '" & [住所] & "'
and [年齢] = " & [年齢])

数値の条件を真ん中にもっていくと次のとおりとなります。

V=DLookUp("[テスト文字列]","test_table2",
"[氏名]= '" & [氏名] & "'
and [年齢] =  [年齢]
and [住所]='" & [住所] & "'")

数値条件を最初にもっていくと・・・

=DLookUp("[テスト文字列]","test_table2",
"[年齢] =  [年齢]
and [氏名]= '" & [氏名] & "'
and [住所]='" & [住所] & "'")

ぶっちゃけ・・・

よく分かりません。

ややこしくて覚えられないので、忘備録として記録しておきます。

ブログ開設に必要なドメイン取得、サーバーレンタル、ASPの登録等は、こちらのサイトから!

コメント

タイトルとURLをコピーしました