街中で見かけて「グッときた人」の思い出

パソコンを買い替えたらEXCEL マクロが正常に動かなくなりました。
旧環境
windowsXP
Excel2003

新環境
windows7 Home Premium SP1 64bit
Excel2010 32bit

Excel2003からExcel2010への変換は済ませてあります。

[Microsoft][ODBC テキスト Driver] パス'(不明)'は正しくありません。
パス名に間違いがないことと、ファイルが置かれたサーバーに接続していることを確認してください。

と出て、adoCONcsv.Open File_csvでエラーになるようです。
自分でいろいろと調べて[Microsoft Text Driver]に関係しているのかと思い
コントロールパネル→管理ツール→データ ソース (ODBC)のプロパティ
リンク先を %windir%\SysWOW64\odbcad32.exe
作業フォルダを %windir%\SysWOW64
に変えてODBCデータ ソース アドミニストレーターのドライバタブに
[Microsoft Text Driver]が表示されているのを確認してから実行しましたがエラー内容は変わりませんでした。

アドレスバーにコピー&貼り付けをしてtest.csvを開き、ファイルパスが正しいことを確認しています。
どなたか原因をわかりやすく教えていただけないでしょうか?


以下、ソース


Dim adoCONcsv As New ADODB.Connection
Dim adoRECcsv As New ADODB.Recordset
Dim File_csv As String

File_csv = "Driver={Microsoft Text Driver (*.txt; *.csv)}; " & _
"DBQ=C:\Users\admin\Downloads\test.csv;" & _
"ReadOnly=0"



省略


adoCONcsv.Open File_csv  ←ここでエラー
Set adoRECcsv = adoCONcsv.Execute("select * FROM articles.csv WHERE (ID = 11111111) or (ID = 22222222)")



'シートtestに抽出したデータを書き込み
i = 0
Do Until adoRECcsv.EOF = True
i = i + 1
For j = 1 To adoRECcsv.Fields.Count
.Worksheets("test").Cells(i, j).Value = adoRECcsv.Fields(j - 1).Value
Next j
adoRECcsv.MoveNext
Loop

'レコードセットのクローズ
adoRECcsv.Close
'データベースのクローズ
adoCONcsv.Close

A 回答 (1件)

test.csv というフォルダ内に、articles.csv ファイルがあるのでしょうか。


変な所でファイル名を指定しているような?

CSVファイルに接続してみよう!
http://home.att.ne.jp/zeta/gen/excel/c04p47.htm
の後半部分にODBCでの説明があります。

なお、Office2010でOLEDBにて接続する場合は
Microsoft.Jet.OLEDB.4.0 → Microsoft.ACE.OLEDB.12.0
また、半角バックスラッシュ\ は \ に置き換えられます。
    • good
    • 0
この回答へのお礼

>test.csv というフォルダ内に、articles.csv ファイルがあるのでしょうか。
変な所でファイル名を指定しているような?

articles.csvファイルはありません。以前はarticles.csv参照していたのですが、
パソコンを替えてからはtest.csvを参照したくて、あちらこちら
ファイル名をtest.csvに変えました。
FROM articles.csvも変えなくてはならないことを、すっかり忘れていました。
気づかせていただき、ありがとうございました。

しかし、ファイル名を変えるだけでは解決せず、
いろいろ試した結果
File_csv = "Driver={Microsoft Text Driver (*.txt; *.csv)}; " & _
"DBQ=C:\Users\admin\Downloads\;" & _
"ReadOnly=0"
と、フォルダ名までの指定に変えることで解決することができました。

データ ソース (ODBC)のプロパティも以前のパスに戻し、正常に動くことを確認しました。
お忙しいところ、回答ありがとうございました。

お礼日時:2012/07/20 23:51

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