- ベストアンサー
Excel VBA からの Access 呼び出しでの挙動不審
ADO を使って、Excel VBA から Access のテーブルを検索しようとしています。 Excel, Access 共に 2000 です。 変数の説明: myConn は、ADODB.Connection。 mySQL は、 String。 コード: mySQL = "INSERT INTO T1 (ID) SELECT ID FROM T2 WHERE Name like '*日本*'" myConn.Execute mySQL というコードで、テーブルT1 へテーブルT2 の ID フィールドのデータを転送しようとしています。検索条件として、テーブルT2 の Name フィールドを指定しています。 T2 のデータはきちんと入っており、実際この mySQL の文字列をそのまま Access のクエリに Copy & Paste して実行すると、うまく動きます。 具体的には、SELECT 以後をクエリに Copy & Paste してデータ表示すると、Name に「日本」を含むデータが表示されました。 しかし、Excel VBA のプログラムからでは、何もヒットしない結果となります。 Access クエリでの書式と、Excel VBA からコールするときの書式とは違うのでしょうか。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ワイルドカードの"*"を"%"に変えてみてもだめでしょうか。
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
書かれた内容だけではなんとも言えませんが、Jet で、Access のデータとConnection はできているのですか? プロシージャーの出だしが書かれていないので、ほとんど見当がつきません。
補足
初期化部分は、下記の通りです。 Dim myConn As ADODB.Connection Set myConn = CreateObject("ADODB.Connection") myConn.Open "Database" Connection は確立しています。実際、他の条件、たとえばSQL 文を修正して Like を使わない完全マッチの指定にした場合や、条件指定するフィールドを数値や日付のものに買えて指定した場合は、きちんとデータを返してきます。 文字列のあいまい検索だけが、想定どおりの挙動をしてくれないという状態です。 よろしくお願いします。
お礼
ありがとうございまいた。解決しました。 Access だからと思って * しか試していませんでした。盲点でした。