Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1430 / 2272 ツリー ←次へ | 前へ→

【7207】選択クエリをエクスポートした際の書式 Nina 06/2/2(木) 18:23 質問[未読]
【7212】Re:選択クエリをエクスポートした際の書式 Gin_II 06/2/3(金) 0:46 回答[未読]
【7214】Re:選択クエリをエクスポートした際の書式 Nina 06/2/3(金) 9:41 質問[未読]
【7216】Re:選択クエリをエクスポートした際の書式 小僧 06/2/3(金) 11:20 回答[未読]
【7217】Re:選択クエリをエクスポートした際の書式 Nina 06/2/3(金) 12:05 お礼[未読]

【7207】選択クエリをエクスポートした際の書式
質問  Nina  - 06/2/2(木) 18:23 -

引用なし
パスワード
   初歩的なことかもしれませんが、理由と解決策がわからないので
質問させていただきます。よろしくお願いします。

選択クエリで、ソート・集計したものをテキストファイルに
エクスポートしています。


<テーブル> コードはテキスト型、数量は長数型で小数点以下表示0
コード 数量 
AAA   5
BBB   1
AAA   4
CCC   2
BBB   3
  


これを選択クエリで集計する(コード=グループ化・昇順、数量=合計)



<結果>
コード 数量の合計
AAA    9
BBB    4
CCC    2



このクエリをテキストファイルにエクスポートする。



<テキストファイルの内容>
AAA    9.00
BBB    4.00
CCC    2.00

このように勝手に小数点第2位までついてしまいます。
整数のままテキストファイルにエクスポートしたいのですが。。。
クエリの実行結果を表示した際には小数点はついていません。


クエリと同じレイアウトのテーブルを作ってそこに一旦出力してから
そのテーブルをエクスポートした際にはうまくいきました。
ですが、できればテーブルの追加はしたくないのです。
クエリのまま小数にならずに出力する方法はありませんか?
また、なぜこのようになってしまうかわかる方いらっしゃいますか?

よろしくお願いいたします。

【7212】Re:選択クエリをエクスポートした際の書式
回答  Gin_II  - 06/2/3(金) 0:46 -

引用なし
パスワード
   ><テキストファイルの内容>
>AAA    9.00
>BBB    4.00
>CCC    2.00
>
>このように勝手に小数点第2位までついてしまいます。
>整数のままテキストファイルにエクスポートしたいのですが。。。

クエリで、Format 関数を使ってやれば大丈夫だと思います。

Format([フィールド名],"0")

ただし、テキスト型として認識されるので、フィールド区切り記号を指定すると
引用符がついてしまいますが ^^;

【7214】Re:選択クエリをエクスポートした際の書式
質問  Nina  - 06/2/3(金) 9:41 -

引用なし
パスワード
   Gin_II さん、ご回答ありがとうございます!


>クエリで、Format 関数を使ってやれば大丈夫だと思います。
>
>Format([フィールド名],"0")
>
>ただし、テキスト型として認識されるので、フィールド区切り記号を指定すると
>引用符がついてしまいますが ^^;


やってみたのですが、やはり同じ結果になってしまいました。。。
(クエリ実行した際は整数で表示されますが
 エクスポートしたテキストファイルには小数第2位まで出てしまいます。)


何か他の方法がありましたら、ご教授よろしくお願いいたします。

【7216】Re:選択クエリをエクスポートした際の書式
回答  小僧  - 06/2/3(金) 11:20 -

引用なし
パスワード
   ▼Nina さん:
こんにちは。

>このクエリをテキストファイルにエクスポートする。

どのような方法でエクスポートするのかが明記されておりませんが、
マクロの テキスト変換 か VBA の TransferText メソッドを使われているのでしょうか。


>なぜこのようになってしまうかわかる方いらっしゃいますか?

質問される際に、Access と OS の バージョンを明記しましょうね。
当方の WindowsXP の環境では、

[コントロールパネル] → [地域と言語のオプション] →
[地域オプション]タブにある [カスタマイズ] → [小数点以下の桁数]

という項目によって変化します。

この項目に依存させない様にするには マクロのテキスト変換や
TransferText メソッド以外でテキストファイルに出力する方法が必要です。


Sub Openステートメントでエクスポート()
'※要参照設定 DAO x.x Object Library
Dim RS As DAO.Recordset
Dim i As Long
Dim WLine As String
Dim FNumber As Long
Dim FName As String

  Number = FreeFile
  FName = "C:\クエリ名.txt"

  Set RS = CurrentDb.OpenRecordset("クエリ名", dbOpenSnapshot)

  Open FName For Output As #FNumber
  
  Do Until RS.EOF
    For i = 0 To RS.Fields.Count - 1
      WLine = WLine & "," & RS(i)
    Next

    Print #FNumber, MID(WLine, 2)
    WLine = ""
    RS.MoveNext
  Loop
  
  Close #FNumber
  RS.Close
  Set RS = Nothing
End Sub

【7217】Re:選択クエリをエクスポートした際の書式
お礼  Nina  - 06/2/3(金) 12:05 -

引用なし
パスワード
   小僧 さん、丁寧な解説をつけていただき、
ありがとうございました。

>どのような方法でエクスポートするのかが明記されておりませんが、
>マクロの テキスト変換 か VBA の TransferText メソッドを使われているのでしょうか。

VBAのTransferTextでエクスポートしようとしていました。

>質問される際に、Access と OS の バージョンを明記しましょうね。

大変申し訳ありませんでした。
いまさらですが。。。OSはWinXPでAccessは2003です。


>当方の WindowsXP の環境では、
>
>[コントロールパネル] → [地域と言語のオプション] →
>[地域オプション]タブにある [カスタマイズ] → [小数点以下の桁数]
>
>という項目によって変化します。

ここの設定に依存するんですね!!
初めて知りました。
確かに小数点以下は2桁になっていました。


>この項目に依存させない様にするには マクロのテキスト変換や
>TransferText メソッド以外でテキストファイルに出力する方法が必要です。

クエリを1項目つなげて1レコード分ずつ書き込みするのですね。
なるほど!
自分では全然思いつきませんでした。

この方法で実現します。
本当にどうもありがとうございました!!
大変助かりました。

1430 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free