Access VBAでCSV出力時に空白文字が表示される問題の解決方法

このQ&Aのポイント
  • Access VBAにおいて、Docmd.TransferText acExportDelimを使用してCSVを出力する際、文字列中に空白文字が表示される問題が発生しています。この問題の解決方法についてアドバイスをいただきたいです。
  • 例えば、AccessのリンクテーブルであるAテーブルの列には、テキスト型のデータや整数型のデータが含まれています。このテーブルをCSVに出力すると、文字列中の空白文字が問題となってしまいます。どのようにしてこの空白文字を排除するか、初心者の私にわかりやすく教えていただけますか?
  • replace関数を使用して空白文字を別の文字列に置き換える方法を試しましたが、必要な半角文字まで消えてしまうという厄介な問題が発生しています。Access VBAの経験が浅いため、確実に空白文字を排除する方法を学びたいです。ご教授いただけますと幸いです。
回答を見る
  • ベストアンサー

Access VBA について質問があります。

Access VBA について質問があります。 Docmd.TransferText acExportDelim にてCSVを吐き出したところ、文字列中に空白文字が表示されてしまい 大変困っております。この空白文字列を出さない方法等はあるのでしょうか? 以下に例を記載いたしますのでアドバイスお願いいたします。 例) Accessリンクテーブル Aテーブル (列名)    :(データ) A(Text 3byte): "11" B(int 5byte) : 9999 C(Text 15byte):"9,hoge_hoge" ※"_"←半角文字です。                ↓ (Docmd.TransferText acExportDelim でCSV出力)                ↓ (CSVの内容)"11_",9999_,"9,hoge_hoge____" ※"_"←半角文字です。 replaceで置き換えようとしましたが、必要な半角文字まで消えてしまいますので とても厄介な事になっております。 初心者なので、何卒ご教授していただけますようにお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

試してはいないのですが、Aテーブルを元にクエリを作り、クエリでAの代わりに RTRIM(A) を表示させるようにし、このクエリをTranseferTextしてみてはどうでしょうか。

pontarasu2
質問者

お礼

tsukasa-12r様ご回答ありがとう御座います。 早速試してみたのですが、どうも上手くいきませんでした。 (自分のやり方が悪いのかな・・・^^;) ですので、エクスポートで出力したデータを1文字づつ解体して Trimをかけて空白行を削除するようにやってみました。 一応強引ではありますが解決はしましたので、ありがとう御座いました。

その他の回答 (1)

  • hisappy
  • ベストアンサー率46% (184/392)
回答No.1

確か Access の仕様で格納されるデータの後ろは スペースで埋められるというのがあったと思います。 なので抽出したデータを出力する前に RTrim かけてみてはどうでしょう。 といっても、私の方が「 Docmd.TransferText acExportDelim 」を知らないので RTrim かませるのかどうか分かりませんが。

pontarasu2
質問者

お礼

hisappyさん回答ありがとう御座います。 私も、RTrimで空白を削除しようとして、CSVに出力した 文字列に対して行ったのですが以下のようになってしまい、目的とは違った形になってしまっておりました "11_",9999_,"9,hoge_hoge____"     ↓    RTrimをかける     ↓ "11_",9999_,"9,hoge_hoge" (最後だけ消える) といったような形になってしまい、目標としている 全ての空白を消すとは、程遠くなってしまっておりました。 目標としている値 → "11",9999,"9,hoge_hoge" で、カンマで区切りだそうとしたら、データの途中で切れてしまい 意味のないこととなってしまっておりました。 なので、他に方法がありましたら、お知恵を拝借したいと思っております。

関連するQ&A

  • Accessで複数のクエリを1つのCSVファイルにエクスポートする方法

    Accessで複数のクエリを1つのCSVファイルにエクスポートする方法はないでしょうか? 現在は下記のような記述でそれぞれCSVファイルを作成しています。 クエリ1~3を1つのCSVファイルにエクスポートする方法があれば教えて頂きたいです。 よろしくお願いします。 DoCmd.TransferText acExportDelim, , "クエリ1", "C:test1.csv", True, "" DoCmd.TransferText acExportDelim, , "クエリ2", "C:test2.csv", True, "" DoCmd.TransferText acExportDelim, , "クエリ3", "C:test3.csv", True, ""

  • Access CSVデータのエクスポート

    Access CSVデータのエクスポート 下記のようにCSVデータをエクスポートしています。 最後をTrueに設定すると1行目がタイトルとしてエクスポート出来るはずが出来ません。 エクスポート定義が原因でしょうか? 対処方法を教えて下さい。 ※ちなみに下のようにエクスポート定義を使用しないと1行目をタイトルしてエクスポート出来ます。 DoCmd.TransferText acExportDelim, "エクスポート定義", "テーブル名", Format(Now(), "yyyymmdd") & "test.csv", True DoCmd.TransferText acExportDelim, , "テーブル名", Format(Now(), "yyyymmdd") & "test.csv", True

  • Access エクスポート

    DoCmd.TransferText acExportDelim でcsvにエクスポートしているのですが、頭の0が消えてしまったり、日付に時間まで入ってしまうのですが、書式設定を保持してエクスポートするにはどのようにすれば良いでしょうか。

  • CSVファイルのエクスポートでソートしたい

    ACCESS VBAで DoCmd.TransferText acExportDelim, , "テーブル名", CSV_File_Full_Path でCSVファイルのエクスポートを行っていますが、 エクスポートするテーブルの任意の複数項目でソートして出力する方法はあるのでしょうか? 現在はテーブルの表示順と異なった出力がされています。

  • AccessVBA(2003)でExcelデータの作成

    Access2003で社内のシステムを構築しています。 OSはWindowsXPです。 AccessVBAでテーブルもしくはクエリから、Excelで取り込める CSV形式でExportしたいのですが、なかなかうまく行きません。 (他のシステムへのインターフェース) DoCmd.TransferText acExportDelim を使用した例などを教えていただければ幸いです。 それとも他に良い方法はあるのでしょうか?。 よろしくお願いします。

  • アクセス2010 ""なしエクスポート

    アクセス2010 VB DoCmd.TransferText acExportDelim, , テーブル名,ファイル名.txt テーブルデータをエクスポートするとき、データをダブルコーテーションなしでデータを送る方法ないでしょうか?

  • AccessでSQL結果を直接csvに書き出すには?

    Access2003,WinXP お世話になります。 自作のSQLを書いて、結果をTransferTextで手軽にCSVにできないかと考えてこんなのを書いてました。 Dim strSql AS String Dim strPath AS String strSql = 自作SQL文 strPath = c:\test.csv Docmd.TransferText acExportDelim, , strSql, strPath, True しかし、TransferTextでは「テーブル」か「クエリ」名を直接書くように指示してあり、これだと動かない?んでしょうか。 SQLは300個くらい出力する必要があるため(クエリ300個作れば解決するのですが・・・)上のようなコードをループして動かしたいのですが、何か他の簡単な出力方法があるのでしょうか。 よろしくお願いいたします。

  • ACCESS VBA txtファイル出力

    お世話になっております。 不慣れながら会社でACCESSVBAを使っております。 エクセルファイルをACCESSに取り込み、VBAを使ってtxtファイルとして出力したいです。 その際、現時点で出力まではできているのですが、先頭列の頭の0が落ちてしまいます。 頭の0を残すコードの書き方はどのようにすればよいのでしょうか。 また、そのような設定はありますか。 力不足で恐縮ですが、よろしくお願いします。 保存先はデスクトップ、テーブル名はテーブル名を代入した変数です。 DoCmd.TransferText acExportDelim, , テーブル名, "…(パス)…テスト.txt"

  • 【Access2003 VBA】クエリをエクスポートしたい

    選択クエリを.csvもしくは.txt形式でエクスポートしたいです。 今は、下記のコマンドで行っていますが、ヘッダー(タイトル行)が付加されません。 DoCmd.TransferText acExportDelim, , "qry_select_クエリ1", "C:\クエリ1.csv" ヘッダーを入れてエクスポートしたのですが、 どうコーディングすればよろしいでしょうか? よろしくお願いします。

  • Access VBA DoCmd.TransferTextについて

    ACCESS VBAでテーブルの情報をDoCmd.TransferTextを用いて CSV出力しようとしています。 しかし、"YYYY/MM/DD"形式のデータがどうしても"YYYY/MM/DD HH:mm" 形式で出力されてしまいます。 このメソッドを用いると必ずこうなってしまうのでしょうか? よろしくお願いいたします。

専門家に質問してみよう