みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

 よろしくお願いします。

投稿日時 - 2005-05-01 15:21:32

QNo.1362233

すぐに回答ほしいです

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

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

投稿日時 - 2005-05-01 17:48:14

お礼

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

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

投稿日時 - 2005-05-01 19:21:03

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

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

投稿日時 - 2005-05-01 15:48:41

補足

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

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

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

よろしくお願いします。

投稿日時 - 2005-05-01 15:51:40

あなたにオススメの質問