- ベストアンサー
データ型が一致しない?
- エクセルのVBAを使用して、アクセスのデータを取得して表示させたいが、データ型が一致しないエラーが発生している。
- アクセス側の顧客IDはテキスト型であり、TextBoxもテキスト型であるため、データ型が一致しているはずだが、エラーが発生している。
- 参考書やネットで見つけたコードを試しているが、うまくいかないため、解決策を求めている。
- みんなの回答 (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件も該当データが無い場合の例外処理が必要だと思います。
その他の回答 (1)
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんにちは。KenKen_SP です。 よく見てないけど、WHERE 句にテキストを渡すときは、シングルクウォートが必要だと思います。 これでどうでしょう? > SelCmd = "SELECT * FROM T_メイン " _ > & "WHERE 顧客ID = " & TextBox1.text ↓ SelCmd = "SELECT * FROM T_メイン " _ & "WHERE 顧客ID = '" & TextBox1.Text & "';"
補足
早速の回答ありがとうございます。 ご指摘の通りで出来ました。ありがとうございます。 追加で以下の事もご教授いただけますでしょうか? 抽出条件を2つにしたしたいのです。 SelCmd = "SELECT * FROM T_メイン " _ & "WHERE 顧客ID = " & TextBox1.text の部分を「顧客ID」のフィールドがTextBox1と一致して、なおかつ 「契約」のフィールドが"契約中"になっているもののデータを 取得できるようにしたいのです。 どのように書けばいいのでしょうか? ANDで繋げてみたけど駄目でしたし・・・。 どうかご教授願います。
お礼
ありがとうございます。出来ました。 " とか ' とかいろいろ厄介ですね。 ちょっと違っただけで正常に機能しないし…。 本当に勉強になりました。 1件も該当が無い場合の例外処理は何とかなりそうです。 ありがとうございました。