Microsoft Access 掲示板

CSVファイル(文字コード:UTF-8)からデータを取得し、Accessのテーブルにデータを書き込むVBAコードが知りたい / 4

4 コメント
views
4 フォロー
4

CSVファイルは、1行目が空白行、2行目が項目(データあり)、3行目からデータな形式になっており、
実際にデータとして取得したいのは、3行目以降となります。

別の方法でも構いません

別案( Windows標準のpowershellワンライナーをVBAから実行 )をご紹介します

・ UTF8のテキストファイルを読み書き
・ テキストファイルの先頭X行を読み飛ばす

の両立に関しては、ADODB.Streamの利用より記述が簡潔になります
 

Sub SampleTK()
    Const TARGET    As String = "D:\Work\UTF-8のテキスト.csv"
    Const SKIP_ROWS As Long = 1  '←読み飛ばす行数
    Dim tail_path   As String
    Dim command     As String
    
    With CreateObject("WScript.Shell")
        tail_path = .SpecialFolders("Desktop") & "\TK_" & Format$(Now, "yyyymmddhhnnss"".csv""")
        command = "powershell ""gc -Path '" & TARGET & "' -Encoding UTF8 " _
                & "| select -Skip " & CStr(SKIP_ROWS) & " | out-file '" & tail_path & "' -Encoding UTF8"""
        .Run command, 0, True
    End With
    
    DoCmd.TransferText acImportDelim, , "T_サンプル", tail_path, True, , 65001
    Kill tail_path
    MsgBox Prompt:=command, Buttons:=vbOKOnly, Title:=CStr(SKIP_ROWS) & "行の読み飛ばし"
End Sub
通報 ...