プロが教えるわが家の防犯対策術!

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 からコールするときの書式とは違うのでしょうか。

 よろしくお願いします。

A 回答 (2件)

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

    • good
    • 0
この回答へのお礼

 ありがとうございまいた。解決しました。

 Access だからと思って * しか試していませんでした。盲点でした。

お礼日時:2005/05/01 19:21

書かれた内容だけではなんとも言えませんが、Jet で、Access のデータとConnection はできているのですか?


プロシージャーの出だしが書かれていないので、ほとんど見当がつきません。

この回答への補足

 初期化部分は、下記の通りです。

Dim myConn As ADODB.Connection
Set myConn = CreateObject("ADODB.Connection")
myConn.Open "Database"

 Connection は確立しています。実際、他の条件、たとえばSQL 文を修正して Like を使わない完全マッチの指定にした場合や、条件指定するフィールドを数値や日付のものに買えて指定した場合は、きちんとデータを返してきます。
 文字列のあいまい検索だけが、想定どおりの挙動をしてくれないという状態です。

よろしくお願いします。

補足日時:2005/05/01 15:51
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!