2

プロセスを自動化するためにExcel VBAでプログラムを構築しています.csvファイルに保存されたデータをインポートする必要があります。そのため、クエリ テーブルを使用して特定の列を csv ファイルにインポートしようとしています。

Jet Provider OLE DBを使用してcsvファイルとやり取りするためにADOを使用しています。接続文字列では、プロバイダー、データ ソース、および拡張プロパティを指定しました。Windows XP と Office 2003 を使用しているため、Excel のバージョンは 8.0 です。プロバイダーを Microsoft.Jet.OLEDB.4.0 と指定しました。私のコードを以下に貼り付けます。コードを実行すると、以下のコードに含めた最後の行に「インストール可能な ISAM が見つかりませんでした」というエラーが表示されます。構文に問題が見つからないので、正しいバージョンの Jet がインストールされていないためにこのエラーが発生するのではないかと考えていました。以下のコードを参照してください。ありがとう

Sub Excel_QueryTable()

Dim oCn As ADODB.Connection
Dim oRS As ADODB.Recordset
Dim ConnString As String
Dim SQL As String

Dim qt As QueryTable

ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=C:\testfile.csv;" & _
    "Extended Properties=Excel 8.0;HDR=Yes; FMT=Delimited; IMEX=1"","

Set oCn = New ADODB.Connection
oCn.ConnectionString = ConnString
oCn.Open
4

1 に答える 1

1

これを試して:

ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=C:\directory\where\csv\file\is\;" & _
    "Extended Properties=""text;HDR=Yes;FMT=Delimited"""

「Excel 8.0」の部分は使用したくないと思いますが、実際には Excel ワークシートに接続していません。テキストファイルに接続しています。また、余分なスペースがあり、接続文字列はそれらについて非常にうるさいので、それらを削除しました。

ここで区切り文字を設定できることに注意してください。

HKLM\SOFTWARE\Microsoft\Jet\4.0\Engines\Text\Format

私のは現在CSVDelimitedです。TabDelimited他のオプションはDelimited(;)

この情報はhttp://www.connectionstrings.com/textfileで見つけました。

- 編集 -

特定の .csv ファイルを指定する代わりに、実際にはデータ ソースをターゲット ディレクトリに指定します。上記の接続文字列の変更に注意してください。ファイル名が削除され、パスが . で終わるようになりました\

このタイプのデータ ソースを使用するには、実際にドライバーにファイルのレイアウト方法を教える必要があります。これは、schema.ini ファイルを使用して行います

.ini ファイルは、次の 2 つの方法のいずれかで作成できます。

  • 上記のリンクを使用して、メモ帳で手動でファイルを手動で編集して使用法を提供します。
  • ODBC Data Source Admin に組み込まれているツールを使用します。

このツールを使用するには、実際にデータ ソースを作成する手順を実行する必要があります。実際にはデータ ソースは必要ありませんが、私が知る限り、それが create schema.ini 作成ツールにアクセスする唯一の方法です。

そこに着くには:

  • ODBC コントロール パネルに移動します。
  • 新しい DSN を追加し、「Microsoft Text Driver (*.txt, *.csv)」と入力して、[完了] をクリックします。
  • 「ODBC Text Setup」Use Current Directoryで、ファイルが存在するディレクトリのチェックを外して選択します。
  • オプションボタンをクリックし、Define Formatボタンをクリックします。
  • 操作したいファイルをクリックし、[推測] をクリックして開始し、必要に応じてデータ型を調整します。
  • 完了したら、[OK] をクリックschema.iniします。.csv ファイルがあるディレクトリにファイルが表示されます。メモ帳で開き、正しく表示されていることを確認します。

上記の接続文字列は、.csv へのフル パスではなく、csv が存在するディレクトリのみを使用して正しく機能するようになりました。

于 2012-12-19T14:52:57.237 に答える