実現したいこと
タイトルのエラーを回避したい。
発生している問題・分からないこと
ファイル生成は成功するのですが,なんかうまく終了しないので戦いましたが(もう何十時間もかかって
疲弊)ほんとに分からないです。(泣きたいです)
groupField がなくなったら,という処理がないような気がします。
なのでgroupFieldの空の行を掴んでエラーしている印象なのです。
現在は On Error GoTo myError で無理やり終了させてます..............
エラーメッセージ
error
1実行時エラー3021 カレントレコードがありません
該当のソースコード
Sub ExportGroupToCSV() Dim rs As DAO.Recordset Dim groupField As String Dim outputPath As String Dim sql As String Dim qdf As QueryDef ' グループ化するフィールド名 groupField = "GroupName" ' 出力先のフォルダパス outputPath = "C:\Output\" ' 出力先のフォルダを適切なパスに変更してください ' クエリのSQL文を構築 sql = "SELECT * FROM YourTable ORDER BY " & groupField ' クエリを作成 Set qdf = CurrentDb.CreateQueryDef("", sql) ' レコードセットを取得 Set rs = qdf.OpenRecordset ' レコードセットをグループ単位で処理 Do While Not rs.EOF ' グループごとにファイルを作成してデータを書き込む Dim groupValue As String groupValue = rs.Fields(groupField).Value ' CSVファイルに書き込む Open outputPath & groupValue & ".csv" For Output As #1 Print #1, "Header1, Header2, Header3" ' ヘッダー行を書き込む(適切なヘッダー名に変更してください)->不要 ' グループごとのデータを書き込む Do While Not rs.EOF And rs.Fields(groupField).Value = groupValue Print #1, rs.Fields("Field1").Value & ", " & rs.Fields("Field2").Value & ", " & rs.Fields("Field3").Value ' データ行を書き込む(フィールド名を適切なものに変更してください) rs.MoveNext Loop ' ファイルを閉じる Close #1 Loop ' レコードセットとクエリを解放 rs.Close Set rs = Nothing Set qdf = Nothing End Sub
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
グループごとにいったんテーブルに入れてcsv出力したりしましたが,
あとちょっとなのでこのソースがスルッと終われるならこれを使いたいです。
補足
特になし

回答3件
あなたの回答
tips
プレビュー