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 |
実行結果
関連記事
-
-
レコードの更新(ADO)Update メソッド
データベースのレコードを更新する Update メソッド カレントレコードの内容 …
-
-
SQL文を実行する(ADO)Execute メソッド
Command オブジェクトの Execute メソッドで、SQL文を実行 Co …
-
-
テーブルの作成・削除/フィールドの作成・削除(ADOX)
ADOX を使用してテーブル・フィールド(列)を作成・削除 Table オブジェ …
-
-
レコードを指定した条件で抽出する(ADO)Filter プロパティ
データベースのレコードを指定した条件で抽出する Filter プロパティ 【書式 …
-
-
レコードの追加(ADO)AddNew メソッド,Update メソッド
データベースにレコードを追加する AddNew メソッド 新規レコードを追加し、 …
-
-
データベースを作成する(ADOX)
ADOX を使用してデータベース(Access)を作成 Catalog オブジェ …
-
-
フィールド名(ADO)Fields コレクション
Fields コレクション Recordset オブジェクト内の1つ以上の列(フ …
-
-
データベース(Oracle)に接続する(ODBC を使用)
ODBC接続(ADO) ADOで、ODBC(Open Database Conn …
-
-
カレントレコードの移動(ADO)MoveFirst、MoveLast、MoveNext、MovePrevious、Move
MoveFirst メソッド、MoveLast メソッド、MoveNext メソ …
-
-
Recordset オブジェクトの内容をワークシートにコピーする(CopyFromRecordset メソッド・ADO)
CopyFromRecordset メソッド ADO の Recordset オ …