• ベストアンサー

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 からコールするときの書式とは違うのでしょうか。  よろしくお願いします。

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

  • ベストアンサー
  • ta123
  • ベストアンサー率51% (95/186)
回答No.2

ワイルドカードの"*"を"%"に変えてみてもだめでしょうか。

Sombart
質問者

お礼

 ありがとうございまいた。解決しました。  Access だからと思って * しか試していませんでした。盲点でした。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

書かれた内容だけではなんとも言えませんが、Jet で、Access のデータとConnection はできているのですか? プロシージャーの出だしが書かれていないので、ほとんど見当がつきません。

Sombart
質問者

補足

 初期化部分は、下記の通りです。 Dim myConn As ADODB.Connection Set myConn = CreateObject("ADODB.Connection") myConn.Open "Database"  Connection は確立しています。実際、他の条件、たとえばSQL 文を修正して Like を使わない完全マッチの指定にした場合や、条件指定するフィールドを数値や日付のものに買えて指定した場合は、きちんとデータを返してきます。  文字列のあいまい検索だけが、想定どおりの挙動をしてくれないという状態です。 よろしくお願いします。