ACCESS 2010を使用しています。
テーブルのレコードで、同じ種類のレコードを1行に纏め、最終的にCSVに出力したいのですが、
マクロなどで自動的におこなうことはできないでしょうか?
例.
テーブル名:test
【テーブルのイメージ】
通番 種類 金額
1 A 100
2 A 150
3 A 130
1 B 200
2 B 150
3 B 350
1 C 100
2 C 500
3 C 250
【CSVの出力イメージ】
1,A,100,2,A,150,3,A,130
1,B,200,2,B,150,3,B,350
1,C,100,2,C,500,3,C,250
補足)◎通番についてですが、上記例だと1~30ですが、実際は1~30まであります。
なお、通番はどの種類も1~30まであります
◎項目の数ですが、上記例だと3項目ですが、実際は30項目ほどあります。
◎種類の数ですが、上記例だと3種類(A~C)ですが、実際は150種類あります。
◎CSV保存場所は、できれば都度、指定できるといいのですが、固定でもかまいません。
VBAの知識はほとんどありませんが、VBAによる回答でも構いません。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
サンプルです。
Sub Sample()
Dim i As Integer
Dim strSQL As String
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim OutData As String
Dim kind As String
strSQL = "SELECT * from test ORDER BY 種類, 連番"
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(strSQL, dbOpenForwardOnly)
kind = ""
OutData = ""
Open "C:\Sample\output.csv" For Output As #1 ' 出力モードで開きます。
With rst
Do While Not .EOF ' レコードが無くなるまで繰り返します。
If !種類 <> kind Then
If OutData <> "" Then
Print #1, Mid(OutData, 2)
End If
kind = !種類
OutData = ""
End If
For i = 0 To .Fields.Count - 1
OutData = OutData & "," & .Fields(i)
Next
.MoveNext
Loop
If OutData <> "" Then
Print #1, Mid(OutData, 2)
End If
End With
Close #1 ' ファイルを閉じます。
End Sub
bonaronさん、親切丁寧にありがとうございます。
おかげさまでできました。
勉強のため、教えてください。
Open "C:\Sample\output.csv" For Output As #1 ' 出力モードで開きます。
とありますが、これはどのようなことを行っているのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelについて。 Excelからcsv変換したいのですが、 やり方はファイル→名前をつけて保存→ 7 2022/07/27 01:10
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Excel(エクセル) 【VBA】フォルダAにある2つのファイルの内1つを、フォルダBへ。もう1つを、フォルダBへ移動したい 6 2022/07/26 08:51
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- Visual Basic(VBA) vbaマクロについて 次のようなマクロを組みたいです。 自分は初心者なので全くわかりません。 詳しく 8 2023/05/18 18:38
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessにインポートしたら並び...
-
Access VBA Me.Requery レコー...
-
Access 1レコードずつcsvで出力...
-
データの二重表示の原因
-
2つの項目が重複するレコード...
-
テーブルのレコード削除ができ...
-
フォームからのレコード削除に...
-
Accessでの排他制御
-
(ACCESS)並び替えをしないで...
-
Accessでの禁止文字チェック
-
ManagementStudioからのデータ削除
-
SQLServerで同一条件レコードの...
-
非連結サブフォームのレコード...
-
数百万件レコードのdelete
-
「マスタ」と「テーブル」の違...
-
SELECT時の行ロックの必要性に...
-
sqlserverで集計結果をUPDATEし...
-
ACCESS2007 フォーム 「バリア...
-
ACCESSのSQLで、NULLかNULLでな...
-
SELECT文でのデッドロックに対...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessにインポートしたら並び...
-
データの二重表示の原因
-
2つの項目が重複するレコード...
-
3つ以上のテーブルをUNIONする...
-
数百万件レコードのdelete
-
Access VBA Me.Requery レコー...
-
非連結サブフォームのレコード...
-
Access 削除クエリが重い
-
ACCESSのBookmarkプロパティの...
-
Access 1レコードずつcsvで出力...
-
ManagementStudioからのデータ削除
-
Accessの重複クエリで最小以外...
-
Accessでの排他制御
-
Accessで重複したデータを一件...
-
(ACCESS)並び替えをしないで...
-
フォームからのレコード削除に...
-
SQLServerで同一条件レコードの...
-
Accessでの禁止文字チェック
-
Accessでレコードが更新された...
-
テーブルのレコード削除ができ...
おすすめ情報