AccessのVBAでフォームAからサブフォームBに遷移し、サブフォームBのデータをCSVファイルとして出力するコード
AccessのVBAでフォームAからサブフォームBに遷移し、サブフォームBのデータをCSVファイルとして出力するコードを考えてみます。加えて、必要なものとチェックリストも提示します。
### 1. VBAコード例
```vba
' フォームAのボタンAを押したときに、サブフォームBに移動する処理
Private Sub ボタンA_Click()
' フォームAからサブフォームBを表示する
DoCmd.OpenForm "サブフォームB"
End Sub
' サブフォームBで出力結果をCSVで保存する処理
Private Sub 出力ボタン_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strFilePath As String
Dim intFileNumber As Integer
Dim strSQL As String
Dim i As Integer
' 保存するファイルパス(適宜変更してください)
strFilePath = "C:\Output\SubFormData.csv"
' SQLクエリでサブフォームBのデータを取得(クエリ内容は要調整)
strSQL = "SELECT * FROM サブフォームBの元テーブル"
' データベースとレコードセットの設定
Set db = CurrentDb()
Set rs = db.OpenRecordset(strSQL)
' ファイル番号を取得して、ファイルを開く
intFileNumber = FreeFile
Open strFilePath For Output As #intFileNumber
' フィールド名をCSVに書き込む
For i = 0 To rs.Fields.Count - 1
Print #intFileNumber , rs.Fields(i).Name & IIf(i < rs.Fields.Count - 1, ",", "")
Next i
' レコードをCSVに書き込む
Do While Not rs.EOF
For i = 0 To rs.Fields.Count - 1
Print #intFileNumber , rs.Fields(i).Value & IIf(i < rs.Fields.Count - 1, ",", "")
Next i
rs.MoveNext
Loop
' ファイルとレコードセットを閉じる
Close #intFileNumber
rs.Close
Set rs = Nothing
Set db = Nothing
MsgBox "CSVファイルを出力しました。"
End Sub
```
ここから先は
¥ 500
この記事が気に入ったらサポートをしてみませんか?