ray88’s diary

お仕事で困ったとき用の自分用の覚書

サブフォームに表示されたデータシートをCSV出力するコード

サブフォームに表示されたデータシートをCSV出力ボタンを押してCSV出力する

f:id:ray88:20200105151910p:plain

Private Sub btnCsv_Click()
    funcOutputCSV 日付sub, "Q日にち検索", "サブフォーム出力"
End Sub
Function funcOutputCSV(subForm As subForm, strQueryName As String, strFileName As String)
    If subForm.Form.Recordset.RecordCount = 0 Then
        MsgBox "検索結果が0件のためCSVを出力できません", vbOKOnly + vbCritical
    Else
        Dim folderPath As String
        'フォルダ選択ダイアログを表示
        With Application.FileDialog(msoFileDialogFolderPicker)
            If .Show = 0 Then
                MsgBox "CSV出力をキャンセルしました", vbOKOnly + vbExclamation
                Exit Function
            End If
           
            '選択したフォルダパスを取得
            folderPath = .SelectedItems(1)
        End With
       
        'CSVファイル出力
        DoCmd.TransferText acExportDelim, , strQueryName, folderPath & "\" & strFileName & "_" & Format(Now(), "yyyyMMssHHmmaa") & ".csv", True
    End If
End Function

【参考】
 ・TransferText メソッド
  Docmd.TransferText 変換種類,定義名,テーブル名,ファイル名,フィールド名設定

 ・ TransferSpreadsheetメソッド
  Docmd.TransferSpreadsheet 変換種類,ファイル形式,テーブル名,ファイル名,
フィールド名設定,Range