• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データ型が一致しない?)

データ型が一致しない?

このQ&Aのポイント
  • エクセルのVBAを使用して、アクセスのデータを取得して表示させたいが、データ型が一致しないエラーが発生している。
  • アクセス側の顧客IDはテキスト型であり、TextBoxもテキスト型であるため、データ型が一致しているはずだが、エラーが発生している。
  • 参考書やネットで見つけたコードを試しているが、うまくいかないため、解決策を求めている。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

私の書き方ですが... Dim Sql As String Sql = "" Sql = Sql & "SELECT *" Sql = Sql & " FROM T_メイン" Sql = Sql & " WHERE (顧客ID = '" & TextBox1.Text & "') AND (契約 = '契約中')" Sql = Sql & ";" Debug.Print Sql この SQL を渡せば良いと思います。Access 等で確かめてないのですけど。 余談ですが、1件も該当データが無い場合の例外処理が必要だと思います。

yk3291
質問者

お礼

ありがとうございます。出来ました。 " とか ' とかいろいろ厄介ですね。 ちょっと違っただけで正常に機能しないし…。 本当に勉強になりました。 1件も該当が無い場合の例外処理は何とかなりそうです。 ありがとうございました。

その他の回答 (1)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。KenKen_SP です。 よく見てないけど、WHERE 句にテキストを渡すときは、シングルクウォートが必要だと思います。 これでどうでしょう? > SelCmd = "SELECT * FROM T_メイン " _ > & "WHERE 顧客ID = " & TextBox1.text    ↓ SelCmd = "SELECT * FROM T_メイン " _ & "WHERE 顧客ID = '" & TextBox1.Text & "';"

yk3291
質問者

補足

早速の回答ありがとうございます。 ご指摘の通りで出来ました。ありがとうございます。 追加で以下の事もご教授いただけますでしょうか? 抽出条件を2つにしたしたいのです。 SelCmd = "SELECT * FROM T_メイン " _     & "WHERE 顧客ID = " & TextBox1.text の部分を「顧客ID」のフィールドがTextBox1と一致して、なおかつ 「契約」のフィールドが"契約中"になっているもののデータを 取得できるようにしたいのです。 どのように書けばいいのでしょうか? ANDで繋げてみたけど駄目でしたし・・・。 どうかご教授願います。

関連するQ&A