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)Fields コレクション
Fields コレクション Recordset オブジェクト内の1つ以上の列(フ …
-
-
クエリにパラメータを渡して結果を取得する(ADO)Command オブジェクト・Execute メソッド
クエリにパラメータを渡して結果を取得する手順 Command オブジェクトの作成 …
-
-
インデックス、プロパティの設定(ADOX)
インデックスを作成する index オブジェクト 【書式】 <CreateObj …
-
-
クエリの作成・削除(ADOX)
ADOX を使用してクエリを作成・削除 クエリを作成する手順 【書式】 <参照設 …
-
-
テーブルの作成・削除/フィールドの作成・削除(ADOX)
ADOX を使用してテーブル・フィールド(列)を作成・削除 Table オブジェ …
-
-
データベース(Oracle)に接続する(OLE DB を使用)
OLE DB プロバイダ OLE DBには、Oracle 提供の Oracle …
-
-
レコードを並べ替える(ADO)Sort プロパティ
データベースのレコードを並べ替える Sort プロパティ 【書式】 object …
-
-
トランザクション(ADO)BeginTrans、CommitTrans、RollbackTrans
ADO でのトランザクション処理 【書式】 Sub Sample_Transac …
-
-
Excel VBA のクラスを使ってデータベースへ接続する(ADO)
データベースの処理をクラスモジュールに書く ExcelVBAで、クラス使用する方 …
-
-
テーブル名、クエリ名の取得(ADOX)
テーブル名の取得 Table.Type プロパティ 【書式】 <取得> obje …
