VBA初心者です。
VBAでAccessからテーブルのデータを持ってきたいのですが、
日付の変換をするためにデータを一度、配列(ソースの太字)に入れたいのですが、
Splitだと型が違いエラーになってします。
解決できる方、よろしくお願いいたします。
※諸事情がありエラーが出ない状態でのすべてのコードを書くことができません。
質問の内容としては、
Accessからデータを取得しExcelに貼り付け、フォーマットの設定をする際に
日付の変換は特殊なので、その方法を知りたいです。
日付の変換をVBAで設定したい理由としては大量のデータ、大量のDBを扱うのでワンクリックですべてを簡潔させたいからです。
連想配列記載理由は、フィールドを取得する際に使用しています。
'連想配列用オブジェクト
Dim colDic As Object
Set colDic = CreateObject("Scripting.Dictionary")
'コネクション用変数宣言 Dim con As ADODB.Connection Dim rs As ADODB.Recordset '顧客管理のACCDBファイルに接続 Set con = New ADODB.Connection con.Provider = "Microsoft.Ace.OLEDB.12.0" con.Open "C:\work\Access.accdb" 'レコードセットを開く Set rs = New ADODB.Recordset 'Accessのクエリを開く rs.Open "AccessTable", con, adOpenStatic 'rs.fieldsの各要素を取得 Dim i As Integer i = 1 Dim k As Integer k = 0 'Feild名取得用変数 Dim fid As Object 'データの数分ループ For Each fid In rs.Fields 'フィールド名を各セルに代入 Range(Cells(firstCell.Row, i), Cells(firstCell.Row, i)) = fid.Name '表示形式用(連想配列へ格納) colDic.Add fid.Name, i 'iをインクリメント i = i + 1 Next fid With ws 'テーブルデータのレコード数の取得 Dim tableRow As Long tableRow = rs.RecordCount + firstCell.Row '最終列取得 Dim dataCol As Long dataCol = firstCell.Column + rs.Fields.Count - 1
** '配列に変換**
** Dim tmp() As String**
** tmp = Split(rs, ",")**
Dim d As Variant Dim n As Long For Each d In dateList n = colDic(d) tmp(n) = Format(tmp(n), "####/##/##") Next d
あなたの回答
tips
プレビュー