- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AccessでSQL結果を直接csvに書き出すには?)
AccessでSQL結果をCSVに書き出す方法
このQ&Aのポイント
- Access2003とWindows XPを使用して、SQL結果をCSVファイルに書き出す方法を教えてください。
- 自作のSQL文を使用して、TransferTextを使ってデータをCSV形式で出力しようとしましたが、うまくいきませんでした。
- 300個のSQL結果を出力する必要があり、ループ内でコードを実行して動作させたいですが、他に簡単な方法はありますか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Dim dbs As Database Dim qdf As QueryDef Dim strSql AS String Dim strPath AS String Dim i As Integer Set dbs = CurrentDB '準備。「適当なクエリ名」と言うクエリを作る qdf = dbs.CreateQueryDef("適当なクエリ名","SELECT * FROM 何か適当なテーブル"); Set qdf = Nothing 'qdfを開放 'ループ For i = 1 to 300 strPath = "c:\test" & Format(i,"00#") & ".csv" strSql = 自作SQL文 dbs.QueryDefs![適当なクエリ名].SQL = strSql Docmd.TransferText acExportDelim, , strSql, strPath, True Next dbs.Close 'dbsをクローズ Set dbs = Nothing 'dbsを開放
お礼
できました、できました! サンプルまで作っていただいてすいません。 まさにこの通りの内容を探していました。クエリはSQLの中身を書き換えられるんですね、、、勉強になります。 一点、TransferTextの引渡しが上手く動きませんでしたので変更しています。 Dim db As Database Dim qd As QueryDef Set db = CurrentDb Set qd = db.CreateQueryDef("test", "SELECT * FROM test_table") Set qd = Nothing ~~~~~~~~~ Do Until rst.EOF db.QueryDefs![test].SQL = '自作SQL strPath = '出力先 DoCmd.TransferText acExportDelim, , "test", strPath, True rst.movenext Loop ありがとうございました。 300個書かなくてよさそうです^^;