- ベストアンサー
ACCESSの計算式を入れると%表示ができなくなります。
お忙しいところ恐れ入りますが教えて下さい。 ACCESSのクエリ上で計算をしフォームに表示させているのですが、関数を使ったところ、%表示が出来なくなりました。 プロシージャーなどは使っていません。 いままでは、 クエリのデザイン画面で、 フィールド欄に 買上率:[個数]/[試食数] といれ、プロパティでパーセンテージの表示設定をし正しく表示されていましたが、 0値が入っていると、#Errorが表示されるため、これを消すために、以下の式に変更しました。 買上率: IIf([個数]=0,"",IIf([試食数]=0,"",[個数]/[試食数])) 上記のように入れたところ、%表示及び小数点以下の表示桁数を設定できなくなりました。いい方法を教えて下さい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
s_husky です。 1、SQL文とは? 買上率: IIf([個数],([個数]-[試食数])/[個数],100)*100 という列をクエリでビルドして[表示]-[SQLビュー]で表示したに過ぎません。 2、小数点以下と%の問題。 買上率: Format(IIf([個数],([個数]-[試食数])/[個数],100),"パーセント") この場合、SQLビューは、 SELECT ID, 個数, 試食数, format(IIf([個数],([個数]-[試食数])/[個数],100),"0.00%") AS 買上率, * FROM テーブル1; となっています。 ID 個数 試食数 買上率 1 100 10 90.00% 2 100 0 100.00% 3 111 11 90.09% 3、Null対策。 format(IIf([個数],([個数]-NZ([試食数]))/[個数],100),"0.00%") AS 買上率 NZ([試食数])で0に置換します。 ですから、3が最適解ということになります。
その他の回答 (3)
- O_cyan
- ベストアンサー率59% (745/1260)
>%表示及び小数点以下の表示桁数を設定できなくなりました 式の中に""を使っているので書式設定が無視されてしまいます。""を使った場合テキスト値と捉えるため数値に使用する書式設定は無視されます。 >0値が入っていると、#Errorが表示 [試食数]に0が入るとエラーになりますので単純に分母に0が入った場合にエラーを回避するだけで済みます。 [試食数]がNullの場合はNullではなく0と表示し0の場合も0と表示させるにはクエリに 買上率:IIf([試食数]=0,0,IIf(IsNull([試食数]),0,([個数])/([試食数]))) 上記で回避できます。
お礼
最終的に 買上率: Format(IIf([個数]=0,"",IIf([試食数]=0,"",[個数]/[試食数])),"パーセント") の式で0%を表示させることなく、ブランクを作り%表示も出すことが出来ました。 ご協力ありがとうございました。
うーん!どうも、今一、理解できないままの回答です... ID 個数 試食数 買上率 1 100 10 90 2 100 0 100 3 100 15 85 こういうSQL文ならば、 SELECT ID, 個数, 試食数, IIf([個数],([個数]-[試食数])/[個数],100)*100 AS 買上率, * FROM テーブル1;
補足
細かい内容がわからなくて申し訳ないのですが、SQL分というのは、イベントプロシージャの関連のを立ち上げて入れる構文ですか?詳しくなくて、その辺は良くわかりません。また、上記の方法だと、小数点第一位までの表記や%を買上率につけることは出来ますか?ちなみに、ID2の場合は”0”かブランクになります。
- keirika
- ベストアンサー率42% (279/658)
あまり自信はありませんが・・・・ 『""』を『0』に変更すれば上手くいくかもしれません。 よければ、一度お試し下さい
お礼
ブランクにはなりませんでしたが、エラーや%表示が出来ない分は解決しました。クライアントがこれでいいというので、0%で逃げようかと思っています。ご回答ありがとうございました。
お礼
最終的に 買上率: Format(IIf([個数]=0,"",IIf([試食数]=0,"",[個数]/[試食数])),"パーセント") の式で0%を表示させることなく、ブランクを作り%表示も出すことが出来ました。 ご協力ありがとうございました。