こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2010-02-07 01:55:20

QNo.5655382

すぐに回答ほしいです

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

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

投稿日時 - 2010-02-08 01:00:20

お礼

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

投稿日時 - 2010-02-09 09:03:03

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

確か Access の仕様で格納されるデータの後ろは
スペースで埋められるというのがあったと思います。

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

といっても、私の方が「 Docmd.TransferText acExportDelim 」を知らないので
RTrim かませるのかどうか分かりませんが。

投稿日時 - 2010-02-07 19:37:17

お礼

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

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

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

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

投稿日時 - 2010-02-07 20:35:54

あなたにオススメの質問