電子書籍の厳選無料作品が豊富!

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で置き換えようとしましたが、必要な半角文字まで消えてしまいますので
とても厄介な事になっております。

初心者なので、何卒ご教授していただけますようにお願いいたします。

A 回答 (2件)

試してはいないのですが、Aテーブルを元にクエリを作り、クエリでAの代わりに


RTRIM(A)
を表示させるようにし、このクエリをTranseferTextしてみてはどうでしょうか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/02/09 09:03

確か Access の仕様で格納されるデータの後ろは


スペースで埋められるというのがあったと思います。

なので抽出したデータを出力する前に RTrim かけてみてはどうでしょう。

といっても、私の方が「 Docmd.TransferText acExportDelim 」を知らないので
RTrim かませるのかどうか分かりませんが。
    • good
    • 0
この回答へのお礼

hisappyさん回答ありがとう御座います。
私も、RTrimで空白を削除しようとして、CSVに出力した
文字列に対して行ったのですが以下のようになってしまい、目的とは違った形になってしまっておりました
"11_",9999_,"9,hoge_hoge____"
    ↓
   RTrimをかける
    ↓
"11_",9999_,"9,hoge_hoge" (最後だけ消える)

といったような形になってしまい、目標としている
全ての空白を消すとは、程遠くなってしまっておりました。
目標としている値 → "11",9999,"9,hoge_hoge"

で、カンマで区切りだそうとしたら、データの途中で切れてしまい
意味のないこととなってしまっておりました。

なので、他に方法がありましたら、お知恵を拝借したいと思っております。

お礼日時:2010/02/07 20:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!