• ベストアンサー

access Dlookup関数について

いつもこちらではお世話になっています。 型が一致しません。エラー13 といったエラーが出ています。スペースを消したり、入力しなおしたりいろいろやってみたのですが、 このようなエラーがずっと出ています。「"」「#」「&」の位置などが問題なのでしょうか? Me.前回検針値 = DLookup("検針値", "T_水道検針", "部屋CD =" & Me!部屋CD & "" _ And "検針日 =#" & Me!前回検針日 & "#") ヘルプを見てもいろいろ調べても、わからないのでよろしくお願いします

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

  • ベストアンサー
  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.3

素人だから、よくわかんないけど、 "部屋CD =" & Me!部屋CD & ”” And "検針日 =#" & Me!前回検針日 & "#" が文字列として、成り立っていないということだよね。 VBでは、andは条件式としても解釈できるので、 部屋CD =5 And 検針日 =#2012/8/31# というような式となり、 false and false で false という判断をされてしまっているんじゃないかな。 間違えないようにするためには、 Dim strCriteria as string strCriteria = "部屋CD =" & Me!部屋CD & " And 検針日 =#" & Me!前回検針日 & "#" debug.print strCriteria Me.前回検針値 = DLookup("検針値", "T_水道検針", strCriteria) のように、強制的に文字列に入れて、イミディエィトウインドウなどで確認するなり、 ブレークポイントで値を確認するなり、メッセージボックスに出力して確認するなり、、、 ということだと思うよ。

komerice
質問者

お礼

なるほど・・・ 詳しく説明ありがとうございます。 じっくり考えながらものにしていこうと思います。 とっても助かりました!

その他の回答 (2)

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.2

すみません、andの前にスペースが必要かもしれません。 " and 検針日=・・・”

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

"部屋CD =" & Me!部屋CD & "" _ And "検針日 =#" & Me!前回検針日 & "#") ⇒ "部屋CD =" & Me!部屋CD & _ "And 検針日 =#" & Me!前回検針日 & "#") でどうでしょう。

komerice
質問者

お礼

お早い返事ありがとうございました。 ばっちり欲しい値を得ることが出来ました! 最初は、 "部屋CD =" & Me!部屋CD And 検針日 =#" & Me!前回検針日 & "#") このように書いていたのですが、同じエラーが出たので「"」を増やしたりしました。 考え方としてはどのようにすればいいのでしょう? 1つ1つ条件だと、"部屋CD =" & Me!部屋CD と "検針日 =#" & Me!前回検針日 & "#" このようになりますよね?2つをつなげる場合は、 ANDの前後にスペースを入れて、と思ってたのですがいかがでしょう?

関連するQ&A