- ベストアンサー
access Dlookup関数について
いつもこちらではお世話になっています。 型が一致しません。エラー13 といったエラーが出ています。スペースを消したり、入力しなおしたりいろいろやってみたのですが、 このようなエラーがずっと出ています。「"」「#」「&」の位置などが問題なのでしょうか? Me.前回検針値 = DLookup("検針値", "T_水道検針", "部屋CD =" & Me!部屋CD & "" _ And "検針日 =#" & Me!前回検針日 & "#") ヘルプを見てもいろいろ調べても、わからないのでよろしくお願いします
- みんなの回答 (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) のように、強制的に文字列に入れて、イミディエィトウインドウなどで確認するなり、 ブレークポイントで値を確認するなり、メッセージボックスに出力して確認するなり、、、 ということだと思うよ。
その他の回答 (2)
- ShowMeHow
- ベストアンサー率28% (1424/5027)
すみません、andの前にスペースが必要かもしれません。 " and 検針日=・・・”
- ShowMeHow
- ベストアンサー率28% (1424/5027)
"部屋CD =" & Me!部屋CD & "" _ And "検針日 =#" & Me!前回検針日 & "#") ⇒ "部屋CD =" & Me!部屋CD & _ "And 検針日 =#" & Me!前回検針日 & "#") でどうでしょう。
お礼
お早い返事ありがとうございました。 ばっちり欲しい値を得ることが出来ました! 最初は、 "部屋CD =" & Me!部屋CD And 検針日 =#" & Me!前回検針日 & "#") このように書いていたのですが、同じエラーが出たので「"」を増やしたりしました。 考え方としてはどのようにすればいいのでしょう? 1つ1つ条件だと、"部屋CD =" & Me!部屋CD と "検針日 =#" & Me!前回検針日 & "#" このようになりますよね?2つをつなげる場合は、 ANDの前後にスペースを入れて、と思ってたのですがいかがでしょう?
お礼
なるほど・・・ 詳しく説明ありがとうございます。 じっくり考えながらものにしていこうと思います。 とっても助かりました!