【OCN】1GBプレゼントCP中!

アクセスのレポートの金額に、桁区切りのカンマを付けたいと思っています。
プロパティの書式を通貨にすると¥マークがついてしまいます。
合計は付いてもいいのですが、内訳には¥マークを付かないように桁区切りだけにしたいのです。

そのため、書式に『###,##0』としました。
できましたが、小数点以下が表示されません。

小数点を表示したいので『###,##0.###』としたら、『59,180.000』となってしまいます。
小数点の指定を自動から3桁表示に変えましたが、うまくいきません。

教えていただきたい内容としては、
・金額の表示に桁区切りのカンマを付けたい。
・でも¥マークは付けたくない。
・小数点以下該当があるもののみ3桁まで表示させたいが(5,500.365)、
 小数点以下がないものは小数点以下は表示させたくない(5,400)。

ぜひともアクセスを使いこなしている方、お教えください。

gooドクター

A 回答 (5件)

この内容からですと、[金額]フィールドを「レコードの内容により、書式を変えたい」と


いうことですので、テキストで処理する方法よりないかと思います。(Access2000)

VBAによる「ユーザー定義関数」を使う方法ですが、それで良かったら手順を
詳しく書きますので、テストしてみてください。

・テーブルのデザインで[金額]フィールドを「数値型」の「単精度浮動小数点型」か
 「倍精度浮動小数点型」にします。

・「モジュール」の新規作成で開いたコードウィンドウに下記コードをコピーして
 貼り付けます。

・フォームのレコードソースにするためのクエリを作成します。
 必要なフィールドをQBEグリッド(画面の下側)にドラッグした後、
 新規フィールドに 例えば、 金額Txt:Valtxt([金額]) と入力します。

・レポートの[金額]のコントロールソースに、この[金額T]を指定します。
 この書式で「配置」を右に設定します。

これで、少数部がない数値は、整数部だけを表示し、位取りの , が付きます。
小数部がある場合は、4位を四捨五入します。(通常と同じ)
その結果、右側に 0 が付いた場合は、表示しません。

ご承知の上とは思いますが、表形式の場合、少数点位置が揃わなくなりますので
見ずらくなってしまいます。

このようなもので如何でしょうか。

Function Valtxt(V As Double) As String
Dim T As String
Dim N As Integer
T = Format(V, "#,##0.000")
For N = Len(T) To InStr(T, ".") Step -1
  If Mid(T, N, 1) = "0" Then
    T = Left(T, N - 1)
  Else
    Exit For
  End If
Next N
If Right(T, 1) = "." Then T = Left(T, Len(T) - 1)
Valtxt = T
End Function
    • good
    • 0

ごーめーんーなーさーい!!!No1です。


できませんでした。。。間違っていましたぁぁぁ。

罪滅ぼしに、ちゃんと調べてみました↓
[書式]に「#,###.###」と入力。
[小数点]に「自動」を設定。

これで、桁数に応じて小数点が変わるようになります。
けど・・・小数点がないときも「.」が出る、というデメリットが。

なので、他回答者さんのようにVBAを加えた処理がいいのかも知れません。

ちなみに、これもまた罪滅ぼしに「どっかで設定がないか?」と探しましたが、
Accessのメニューやプロパティには該当するものはありませんでした。
失礼しました。。。

この回答への補足

いえいえ。
でも、やっぱりできませんでした。
そーなんですよ、『.』が表示されちゃうのは困るんですよねぇ。
いろいろありがとうございました。

補足日時:2003/11/13 22:05
    • good
    • 0

> 残念ながら私には高度すぎてちょっとできそうにありません。



クエリーなど作ったことがあれば、説明のとおりやっていただければ
できると思いますよ。

VBAの中身は、深く考えないで、そのままコピーすると
Valtxt関数が使えるようになります。

一般の関数のように Valtxt(1234.5678) とすると
1,234.568 と返ってきます。

この回答への補足

何度も回答ありがとうございます。
とりあえず回答を印刷して会社に持っていってみようと思います。
小数点位置がそろわないのがちょっと見にくそうなので、今回は勉強として試すだけやってみようと思います。

補足日時:2003/11/13 22:17
    • good
    • 0

ちょっと訂正で~す。



> 例えば、 金額Txt:Valtxt([金額]) 

としてありますが、この 金額Txt の部分は、↓ と同じ名前になりますので
金額T に合わせる必要があります。

> ・レポートの[金額]のコントロールソースに、この[金額T]を指定します。

この回答への補足

訂正までいただきありがとうございます。
自分のPCにはAccessが入っていなくて試せないのですが、
残念ながら私には高度すぎてちょっとできそうにありません。

補足日時:2003/11/12 23:02
    • good
    • 0

[書式]から「標準」を選んで、


[小数点]で「3」を設定する。

で、うまくいくと思いますよ。

この回答への補足

そんな簡単にできるんですかぁ。
書式は特に『通貨』しか試してなかったので、明日『標準』でやってみます。

補足日時:2003/11/12 23:05
    • good
    • 1

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング