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 |
実行結果
関連記事
-
-
データベース(MySQL)に接続する(ADO)
MySQL ODBCドライバ Windowsには標準で、いくつかの ODBC ド …
-
-
レコードの追加(ADO)AddNew メソッド,Update メソッド
データベースにレコードを追加する AddNew メソッド 新規レコードを追加し、 …
-
-
データベース(Oracle)に接続する(oo4o)
oo4o 接続 OO4O(Oracle Objects for OLE)はWin …
-
-
クエリにパラメータを渡して結果を取得する(ADO)Command オブジェクト・Execute メソッド
クエリにパラメータを渡して結果を取得する手順 Command オブジェクトの作成 …
-
-
レコードの削除(ADO)Delete メソッド
データベースのレコードを削除する Delete メソッド カレントレコードを削除 …
-
-
テーブル名、クエリ名の取得(ADOX)
テーブル名の取得 Table.Type プロパティ 【書式】 <取得> obje …
-
-
テーブルの作成・削除/フィールドの作成・削除(ADOX)
ADOX を使用してテーブル・フィールド(列)を作成・削除 Table オブジェ …
-
-
レコードを並べ替える(ADO)Sort プロパティ
データベースのレコードを並べ替える Sort プロパティ 【書式】 object …
-
-
フィールド名(ADO)Field オブジェクト
Field オブジェクト Recordset オブジェクト内の列(フィールド)を …
-
-
レコードを指定した条件で抽出する(ADO)Filter プロパティ
データベースのレコードを指定した条件で抽出する Filter プロパティ 【書式 …
