質問: 複数の条件検索の件で質問させてください。
回答: likeのあとの半角スペースがありません。 If strwhr = Null Then は If IsNull(strwhr) Then としましょう。 本当は、String型の変数にNullが入ることは仕様上あり得ないので、値が入ってるかどうかを調べるなら If Len(strwhr) = 0 Then です。 If strwhr = <> Then も上のスタイルにしたほうが間違いが防げます。 ついでと言ってはアレですが、 TextBoxの空欄チェックは、 If Len(Nz(Me.txt□□.Value, ““)) = 0 Then でイケます。 VBAでSQL文を組んで実行するのは、クエリを作ってOpenQueryではできないこともできるようになるので大変重宝する方法ですが、SQL文が正しくできているかどうかの確認は欠かせません。 普通は、 Debug.Print stqsql の1行でイミディエイトウインドウに出力して、それを新規作成したクエリのSQLビューにペーストしてAccessにチェックさせるという方法をとると思います。 慣れるまでは骨の折れる作業ですが、やってれば慣れるモンです。 よくやるのが、必要な半角スペースが抜けてるというパターン。要注意ですが、それも慣れます。 あと、VBAでSQLを記述する時のやり方は、列名ごとに改行する方法もあります。何をやっているかが一目でわかるのと修正がしやすいです。 strsql = “INSERT INTO“ strsql = strsql & “ W_インデックス検索結果 (“ strsql = strsql & “発行日“ strsql = strsql & “, 社名“ strsql = strsql & “, 見積番号“ strsql = strsql & “, 担当者“ strsql = strsql & “) SELECT“ strsql = strsql & “ [T_見積書作成インデックス].[発行日]“ strsql = strsql & “, [T_見積書作成インデックス].[社名]“ strsql = strsql & “, [T_見積書作成インデックス].[見積番号]“ strsql = strsql & “, [T_見積書作成インデックス].[担当者発]“ strsql = strsql & “ FROM T_見積書作成インデックス]“ strsql = strsql & strwhr のように。 この時、カンマや半角スペースは行の頭に。そのほうが項目の追加削除が簡単だからです。