CSVファイルに接続(ADO)
ADOでCSVファイルに接続
ADO を使用してCSVファイルを読み込みます。CSVファイルをデータベースのテーブルとみなし、SQL文を使うことが出来ます。
<ConnectionString(ADO)に設定する文字列>
Provider = Microsoft.Jet.OLEDB.4.0;
Data Source = DBFileName;
Extended Properties = EXProperties;
引数・戻り値
- DBFileName ・・・ 対象となるCSVファイルのパスを指定します。(※ファイル名は不要です。また、パスの最後には「\」が必要です。)
- EXProperties ・・・ 3つのプロパティ値を指定します。各プロパティ値は「;(セミコロン)」で区切ります。全体を「”」で括ります。
(例)Extended Properties = “Text;HDR=Yes;FMT=Delimited”
Extended Properties に指定する各プロパティ値について
・Text は、データベースの種類を表しています(テキストファイル)。
・HDR は、CSVファイルの1行目をフィールド名として扱うかどうかを指定します。No を指定した場合、フィールド名は、F1、F2、F3 のように F[列番号] で表示されます。
・FMT は、ファイルのフォーマットを指定します。CSVファイルの場合、Delimited を指定します。
CSVファイル名は、テーブル名として扱います。
(例)Select * from [CSVファイル名];
CSVファイルへ接続する例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
Sub Sample_ADO_CSV() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim constr As String Dim DBFilePath As String Dim DBFileName As String Dim EXProperties As String Dim strSQL As String Dim i As Long Dim j As Long DBFilePath = ActiveWorkbook.Path & "\" DBFileName = "mydb1.csv" EXProperties = """Text;HDR=Yes;FMT=Delimited""" constr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & DBFilePath & ";Extended Properties=" & EXProperties cn.ConnectionString = constr cn.Open strSQL = "Select * from " & DBFileName & " order by ID;" rs.Source = strSQL rs.ActiveConnection = cn rs.Open With Worksheets("csv") .Cells.Clear i = 1 Do Until rs.EOF For j = 0 To rs.Fields.Count - 1 If i = 1 Then .Cells(i, j + 1) = rs.Fields(j).Name .Cells(i + 1, j + 1) = rs(j).Value Next j rs.MoveNext i = i + 1 Loop End With rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub |
実行結果
関連記事
-
-
データベース(Oracle)に接続する(ODBC を使用)
ODBC接続(ADO) ADOで、ODBC(Open Database Conn …
-
-
データベース(Oracle)に接続する(oo4o)
oo4o 接続 OO4O(Oracle Objects for OLE)はWin …
-
-
レコードの更新(ADO)Update メソッド
データベースのレコードを更新する Update メソッド カレントレコードの内容 …
-
-
データベース(Oracle)に接続する(OLE DB を使用)
OLE DB プロバイダ OLE DBには、Oracle 提供の Oracle …
-
-
テーブル名、クエリ名の取得(ADOX)
テーブル名の取得 Table.Type プロパティ 【書式】 <取得> obje …
-
-
データベース(MySQL)に接続する(ADO)
MySQL ODBCドライバ Windowsには標準で、いくつかの ODBC ド …
-
-
Recordset オブジェクト内のレコード数(ADO)RecordCount プロパティ
RecordCount プロパティ Recordset オブジェクトのレコード数 …
-
-
フィールド名(ADO)Field オブジェクト
Field オブジェクト Recordset オブジェクト内の列(フィールド)を …
-
-
Excelファイルに接続(ADO)
ADOでExcelファイルに接続 ADO を使用してExcelファイルを読み込み …
-
-
BOF プロパティ・EOF プロパティ(ADO)
EOF プロパティ・BOF プロパティ BOF プロパティは、カレントレコードの …