• ベストアンサー

アクセス DLookup関数 なぜエラーになるのか

アクセス DLookup関数 なぜエラーになるのかわからないです。 testと言うテーブルがあり、a・bと言うフィールドがあります。 aフィールドにあああと入ってる場合のbフィールドの値を取得したいのですが Debug.Print DLookup("[b]", "test", "[a] = あああ") だと、 実行時エラー2471「クエリ パラメータとして指定した式でエラー'[あああ]'が発生しました。」 になります。 どこがおかしいのか教えていただけますか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

図で判るようにDLookup関数は、 SELECT b FROM test WHERE a = あああ; というSQL文を指示したことになります。 【WHERE 句の書き方】 1、文字列='AAA' 2、数字=123 3、日付=#5/10/96# 【DLookup("[b]", "test", "[a] = あああ") のエラーの実態】 これは、イミディエイトウインドウで実行すれば判明します。 テストでは、 "抽出条件で型が一致しません。" という実行時エラーを得ます。 これは、WHERE 句の書き方1に違反しているからです。

PVIBEAHUDRTF
質問者

お礼

どうもありがとうございました。

その他の回答 (1)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

aのフィールドの型が数値型ならば、たとえば Debug.Print DLookup("[b]", "test", "[a] = 111") のように、質問のままでいいのですが、 aのフィールドの型がテキスト型ならば、 Debug.Print DLookup("[b]", "test", "[a] = 'あああ'") のように、「あああ」を「'」で囲む必要があります。 「あああ」は当然ながら見ただけで「テキスト」ですよね。

PVIBEAHUDRTF
質問者

お礼

どうもありがとうございました。

関連するQ&A