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

解決済みの質問

Excelからmdbに接続してデータを取りたい

Excel、ACCESSの2003を使用しています

Excel側でマクロを動かしたら、mdbよりデータを取得したいのですが、うまく行きません。

Const cnsADO_CONNECT1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
Const cnsADO_CONNECT2 = "パス名\ファイル名.mdb"


Public Sub main接続処理()
dbCon.Open cnsADO_CONNECT1 & cnsADO_CONNECT2

strTableName = "テーブル" & "."
strDate = "20140905"  'テスト用

strSQL = "SELECT "
strSQL = strSQL & strTableName & "日時"
strSQL = strSQL & vbNewLine & "FROM " & strTableName

'''ここまでなら問題なく動く'''
strSQL = strSQL & vbNewLine & "WHERE (((" & strTableName & ".日時)"
strSQL = strSQL & " Like "
strSQL = strSQL & """"
strSQL = strSQL & strDate & "*"
strSQL = strSQL & """" & "));"
'''ここの処理がおかしい'''

End Sub

ACCESSのSQLビューではstrSQLの内容で該当するデータを表示できるのですが、Excel経由だと、データが1件も表示されません。

mdb側では「日時」フィールドはテキスト型で西暦+月日+時間の12文字で入っています。
201409051300
201409051310
201409051320....
日付単位で抜き出したいので「20140905*」の型にしているのですが、うまく抽出できません。

ちなみにstrDateを「201408241300」にしてLike *を抜くと該当データが1件抽出されます。
Likeの処理が悪いのでしょうか?それともデータ型のせいでしょうか?

分かる方が居ましたら教えてください、宜しくお願いします。

投稿日時 - 2014-09-05 21:12:03

QNo.8743633

困ってます

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

ときどき忘れていてはまりますが、
ADOのワイルドカードは*ではなくて%です。
リンク先に背景が書かれています。ご参考まで。
http://www.nurs.or.jp/~ppoy/access/access/acM012.html

投稿日時 - 2014-09-05 21:59:12

お礼

盲点でした・・・、教えてもらえなかったらいつまでも気付けませんでした
ありがとうございました、おかげさまで処理が動きました

投稿日時 - 2014-09-06 21:29:21

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

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

回答(1)

あなたにオススメの質問