Option Compare Database
Private Sub コマンド0_Click()
Dim dbs As DAO.Database
Dim qdf As DAO.QueryDef
Dim strPath As String
Dim flg As Boolean
flg = False
'Set dbs = CurrentDb
'クエリ有無
'For Each qdf In dbs.QueryDefs
' If qdf.Name = "適当なクエリ名" Then
' flg = True
' Exit For
' End If
'Next
'存在する場合クエリ削除
'If flg = True Then
' dbs.QueryDefs.Delete "適当なクエリ名"
' flg = False
'End If
'If flg = False Then
' Set qdf = dbs.CreateQueryDef("適当なクエリ名", "SELECT * FROM 吐き出したいテーブル名;")
strPath = "C:\Users\zip\Desktop\test.csv" 'ファイルが存在すること。
DoCmd.TransferText acExportDelim, , "適当なクエリ名", strPath, True
' dbs.Close 'dbsをクローズ
' Set dbs = Nothing 'dbsを開放
' Set qdf = Nothing 'qdfを開放
'End If
End Sub
Access、VBAのSQL文で抽出しクエリ出力しCSVファイルで吐き出すコード。
まず、フォームにボタン配置とテーブル(吐き出したいデーブル名)を用意してください。なお、SQL文を変更してselect文以外にもJOINしたり、検索を結果をクエリに出力することも可能です。
出力した結果は既存のCSVに吐き出すという処理まで記載しています。
今回、このようなコードを記載したのには訳があります。
こういうコードをやってみたいなと思っても検索したコードはエラーコードばかりでうまく処理されなかったのでそれでは意味が無いと思い。
今回の記載に至りました。
この頃思うのですが、昔の技術者の考え方は古すぎる悩んで考え覚える。なんて効率が悪いでしょうか。おそらく大手の会社ではこのようなスタンスを取っている会社は少ないと思います。いまは、教えて覚えての反復で即戦力をという考えでないと時代に置いてけぼりになりますが地方ではまだ、昔ながらの古い体質があります。業種によれば、そういう教え方がベストかも知れませんがIT業界は、もうその時代は終わっているように思えます。
2021/11/18 追記:嫌気が差して出来ないようにしたのを放置していた事を忘れてました?。