Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Access 2016)
エクスポート処理について
投稿日時: 23/10/30 16:07:41
投稿者: タルタル5050

よろしくお願いいたします。
下記の様なコードでテーブルデータをselect文で取得しCSVファイルへのエクスポート処理を行いたいのですが、項目が空白の場合は、ダブルコーテーション無しにしたいのですがどの様にすればいのでしょうか?
  
 Dim DB As DAO.Database
    Dim QD As DAO.QueryDef
    Dim SQL As String
      
    Set DB = CurrentDb
  
    SQL = "SELECT "
    SQL = SQL & "CD, "
    SQL = SQL & "DEN_NO, "
    SQL = SQL & "DEN_KBN, "
    SQL = SQL & "URI_YMD, "
    SQL = SQL & "SEK_YMD, " ・・・・・・・・・・
  
    Set QD = DB.CreateQueryDef("qry1", SQL)
     
    DoCmd.TransferText acExportDelim, , "qry1", CSVFile, True
    CurrentDb.QueryDefs.Delete "qry1"
    Set QD = Nothing: Set DB = Nothing
  
宜しくお願い致します。

回答
投稿日時: 23/10/30 17:11:56
投稿者: Suzu

引用:
DoCmd.TransferText acExportDelim, , "qry1", CSVFile, True

 
インポート定義 を作成します。
省略している 第2引数に そのインポート定義を指定しましょう。
 
 
ACCESS インポート定義ファイルの作成方法
https://tasukete-access.com/2022/12/19/vba_import_definition/
 
 
そのインポート定義にて、
・各フィールドのデータ型の指定
・文字列の引用符 を無し
にすれば、
 
空白のデータは空白のまま出力されます。
 
上記の場合、全てのテキスト型フィールドのデータも " 等も 無しになってしまいます。
 
空白のみの場合だけ なのであれば、出力後 "" を置換する形の方が早いかもしれませんね。

投稿日時: 23/11/07 09:13:16
投稿者: タルタル5050

>空白のみの場合だけ なのであれば、出力後 "" を置換する形の方が早いかもしれませんね。
このやり方で試してみます。
 
ありがとうございました。