質問: テキストボックスにクエリ結果を表示させたい フォームにテキストボックスaがあり、そこに入力した文字(下記テーブルのフィールド1の文字)をクエリーの「抽出条件」にし、同じフォーム上のテキストボックスbに表示しようと思っています。 クエリを開くとパラメータの入力を求めてきて、入力するとうまく抽出されます。 テーブルは フィールド1|フィールド2 a | 10 b | 20 c | 30 d | 40 のような簡単なものです。 テキストボックスbのコントロールソースに 「=[○×クエリ]![フィールド2]とやっても「#name?」と表示されてしまいます。 どのようにやればよいのでしょうか?
回答: no1さんの回答が基本。 実行速度を重視するならばadodb を利用する次のステップへ。 =dblookup("フィールド2","テーブル名","フィールド1='" & [テキストボックスa] & "'") public function dblookup(byval strfield as string, _ byval strtable as string, _ optional byval strwhere as string = "", _ optional byval returnvalue = null) as variant on error goto err_dblookup dim datavalue dim strquerysql as string dim rst as adodb.recordset set rst = new adodb.recordset strquerysql = "select " & strfield & " from " & strtable if len(strwhere) > 0 then strquerysql = strquerysql & " where " & strwhere end if with rst .open strquerysql, _ currentproject.connection, _ adopenstatic, _ adlockreadonly if not .bof then .movefirst datavalue = .fields(0) end if end with exit_dblookup: on error resume next rst.close set rst = nothing dblookup = nz(datavalue, returnvalue) exit function err_dblookup: msgbox "select 文の実行時にエラーが発生しました。(dblookup)" & chr$(13) & chr$(13) & _ "・err.description=" & err.description & chr$(13) & _ "・sql text=" & strquerysql, _ vbexclamation, " 関数エラーメッセージ" resume exit_dblookup end function