こんにちは。
いろいろとネットを探したのですが、詳細を見つけられなかったので質問することにしました。
内容は、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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- MySQL MySQLでcreateが使えない MySQLを使ってデータベースを作ろうと思い、CREATE を使 3 2022/06/19 15:32
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- XML PHP.laravelについて 1 2023/07/06 15:26
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Debug Assertion Failed?
-
VBAでFormat がうまく使えない
-
Web.Config 構成ファイルのエラー
-
VB2010ビルドできるが配...
-
C# HttpWebRequestのエラーにつ...
-
図形のクリアで実行時の1004エ...
-
EXCELを開くとエラーがでます。
-
エラーコード 70 「書き込み...
-
Access ADOで文字列を日付型へi...
-
Excel ファイルに保存すると実...
-
MMORPGがインストールできない
-
不明なソフトウェア例外(0xe06...
-
.htaccessをローカルで実行したい
-
エクセルのワークシートに、文...
-
Eclipseでのエラー検出の機能に...
-
POV-Ray についての質問です!
-
ExcelVBAでODBCドライバを使っ...
-
WNetAddConnection*()の使い方
-
vbaでファイルを開くパス名に変...
-
NET USE コマンドでエ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでFormat がうまく使えない
-
Debug Assertion Failed?
-
NET USE コマンドでエ...
-
Web.Config 構成ファイルのエラー
-
vbaでファイルを開くパス名に変...
-
エラーコード 70 「書き込み...
-
Excel ファイルに保存すると実...
-
POV-Ray についての質問です!
-
シェルスクリプトの実行エラー...
-
不明なソフトウェア例外(0xe06...
-
Access ADOで文字列を日付型へi...
-
ホームページビルダーの”全体の...
-
C# HttpWebRequestのエラーにつ...
-
ASP.NETでのランタイムエラー?...
-
EXCELを開くとエラーがでます。
-
【ASP】500エラーが発生する【A...
-
LTspiceのTime Stepエラーについて
-
VBAで印刷するとエラーになって...
-
ACCESS VBAのOpenForm書き方
-
Eclipseでのエラー検出の機能に...
おすすめ情報