
こんにちは。
いろいろとネットを探したのですが、詳細を見つけられなかったので質問することにしました。
内容は、ExcelVBAで[ODBC Text Driver]を使って、CSVファイルにアクセス(SQL構文のSELECT文で取得)するというものです。
そんな中、ある条件でエラーが発生してしまい、(解説がまったくないため)手詰まりになってしまいました。
Dim MyDb As ADODB.Connection
Dim MyRs As ADODB.Recordset
Dim MySql As String
Set MyDb = CreateObject("ADODB.Connection")
MyDb.Open "Driver={Microsoft Text Driver (*.txt; *.csv)}; DBQ=c:\temp; ReadOnly=1"
MySql = "SELECT * FROM test.csv"
MySql = MySql & " WHERE a ='" & strA & "'"
MySql = MySql & " AND b ='" & strB & "'"
MySql = MySql & " AND c ='" & strC & "'"
Set MyRs = MyDb.Execute(MySql) <---- エラー発生!!!
エラーは、
実行時エラー '-2147217913 (80040e07)':
[Microsoft][ODBC Text Driver]抽出条件でデータ型が一致しません。
です。
抽出条件のa, b, cをそれぞれ個別に条件として設定したところ、
a…NG
b…OK
c…OK
であることが分かりました。
元々のCSVファイルは、文字フィールドが"(ダブルコーテーション)で囲まれておらず、『文字のフィールドなのか、数値のフィールドなのか区別できないでいるのか?』という疑問が生まれました、が調べようにも解説を見つけられず…。
このエラーの原因がお分かりの方、もしくは解説サイトをご存知の方、いらっしゃいましたら回答ください。
よろしくお願いします。

No.1ベストアンサー
- 回答日時:
試しにこちらの環境でtest.csvを
a, b, c
1, XXXX, YYYY
Z, SSSS, TTTT
として実行したら、エラーは発生しませんでしたが、
a, b, c
1, XXXX, YYYY
2, SSSS, TTTT
として実行したところ、同じエラー80040e07が発生しました。質問者さんの推測通り、文字列のカラムを数値と認識しているせいかもしれません。
c:\tempにschema.iniという名前のテキストファイルを作成し、そこでtest.csvのファイルレイアウトを定義してみて下さい。
【schme.iniの例】
[test.csv]
ColNameHeader=True
Format=CSVDelimited
Col1=A Char Width 255
Col2=B Char Width 255
Col3=C Char Width 255
連絡遅くなりました。
その後もschema.iniの設定で試行錯誤ありましたが、ようやく完成しました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでFormat がうまく使えない
-
POV-Ray についての質問です!
-
Excel ファイルに保存すると実...
-
Web.Config 構成ファイルのエラー
-
Access ADOで文字列を日付型へi...
-
VBAで印刷するとエラーになって...
-
ホームページビルダーの”全体の...
-
ショートカットファイルが開け...
-
勝手にショートカットのリンク...
-
フォルダを間違って削除しない...
-
Thunderbirdのプロファイルが読...
-
ファイル名の始めに“.”をつけて...
-
ひとつしか開けないソフトを多...
-
DVD-Rなのに再書き込みや削除が...
-
jw cadの名前をつけて保存・・...
-
SYSTEM32 が見付からない
-
vcvars32.batを実行できない
-
windows liveメールの本文が表...
-
サンダーバードのプロファイル...
-
イラストレーターのファイルを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでFormat がうまく使えない
-
Web.Config 構成ファイルのエラー
-
不明なソフトウェア例外(0xe06...
-
シェルスクリプトの実行エラー...
-
Debug Assertion Failed?
-
NET USE コマンドでエ...
-
Excel ファイルに保存すると実...
-
図形のクリアで実行時の1004エ...
-
ACCESS VBAのOpenForm書き方
-
VBAで印刷するとエラーになって...
-
POV-Ray についての質問です!
-
ホームページビルダーの”全体の...
-
FFFTPで更新中にエラー
-
bcpadがうまく実行できないので...
-
実行時エラー'1004': アプリケ...
-
なぜかブルースクリーンに…
-
FileSystemObjectのオーバーフロー
-
ダウンロードしたのはCDに焼...
-
Eclipseでのエラー検出の機能に...
-
cvRectangleの使用時に以下のエ...
おすすめ情報