こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Access DlookUpのネスト

Access 2010 です。
コントロールソースでの利用を想定しています。
DlookUpでDlookUpの結果を条件にネストする場合
=DLookUp("外フィールド1","外テーブル","[外フィールド2]=DLookUp(内フィールド,'内テーブル','rs('内フラグ')=Yes')")
の様な利用の仕方をしたいのですが#エラーになってしまいます。

検索条件の
=DLookUp(内フィールド,'内テーブル','rs('内フラグ')=Yes')")
単体では正しく取得出来ているので、
ネストする際のクォーテーション絡みなどで正しく値が取得できていないのでは
と考えておりますが、正しくはどう記述するべきでしょうか?

投稿日時 - 2017-08-18 10:50:34

QNo.9364346

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

Q、正しくはどう記述するべきでしょうか?
A、考えすぎ+誤解=今回のミス

ポイント1、いつものように当たり前に書く!
ポイント2、ただし、ブール値は文字列ではないことに注意する!

でOKですよ。(添付図を参照されたし)

投稿日時 - 2017-08-18 14:13:09

お礼

御回答頂き有難う御座います。
回答者さんの例をみると第三引数の"ID="は文字列ではないでしょうか?
質問の方は
"[外フィールド2]=DLookUp(内フィールド,'内テーブル','rs('内フラグ')=Yes')"
とあるように式評価です。True(戻り値)を期待しています。

結果的には
"[外フィールド2]=DLookUp('内フィールド','内テーブル','内フラグ=Yes')"
で解決しました。ダブル内のダブルやクォーテーション無しだとエラーになるはずです

あと内フラグはフィールド名なのでそもそもrs('内フラグ')が誤りでした

投稿日時 - 2017-08-23 11:04:06