Access VBA質問箱 IV

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

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


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

【11008】空白データの処理 まつ 09/2/19(木) 12:48 質問[未読]
【11009】Re:空白データの処理 トト 09/2/19(木) 13:07 発言[未読]
【11011】Re:空白データの処理 まつ 09/2/19(木) 15:36 質問[未読]
【11012】Re:空白データの処理 トト 09/2/19(木) 15:45 発言[未読]
【11013】Re:空白データの処理 まつ 09/2/19(木) 16:21 お礼[未読]

【11008】空白データの処理
質問  まつ  - 09/2/19(木) 12:48 -

引用なし
パスワード
   いつもお世話になります。
また一つ問題があり質問させて頂きます。

問題は、現在テーブルにある4つのフィールドを使ってクロス集計してます
テーブルA:ロット日(日付型),停止時間(数値型)
      選択A(整数型),選択B(整数型)
クロス集計:ロット日(行見出し)、分類(列見出し)
      停止時間の合計(値)、合計停止時間(行見出し)

テーブルの選択Aと選択Bはオプションボタンでテーブルの値としては 0 or -1
が入力されています。

そこで、クロス集計の分類ではIIf関数を使い、(選択A、選択B)が
(0,0)(-1,0)(0,-1)(0,0)の4つに分けそれぞれ
A,B,C,Dという見出しにして停止時間の合計を表示させています。
通常であれば、A,B,C,Dの項目が無ければ、データシートビューでは表示されない
ので、クロス集計のオプションでクエリ見出しを指定して、値が無くてもA,B,C,Dを
表示させているのですが、その場合データの無い場所では空白表示になってます。

このクロス集計の結果を元に、別のクエリでこの値を演算してるので
この空白表示を空白でなくて数字の0で表示したいと考えています。
NZ関数を使うと計算はできるのですが、フォームで表示した時に値が無い所を
0で表示したいので、0で表示するにはどうやったらいいかご教授願います。

【11009】Re:空白データの処理
発言  トト  - 09/2/19(木) 13:07 -

引用なし
パスワード
   ▼まつ さん:
クロス集計クエリではなく、普通の集計クエリを使うと良いかと思います。

A : Sum(IIF(選択A=0 and 選択B=0,[停止時間],0))
B : Sum(IIF(選択A=0 and 選択B=-1,[停止時間],0))

クエリの様子が今一分からないので、フィールドの式のみですが、
こんな感じです。

【11011】Re:空白データの処理
質問  まつ  - 09/2/19(木) 15:36 -

引用なし
パスワード
   ▼トト さん:
>▼まつ さん:
>クロス集計クエリではなく、普通の集計クエリを使うと良いかと思います。
>
>A : Sum(IIF(選択A=0 and 選択B=0,[停止時間],0))
>B : Sum(IIF(選択A=0 and 選択B=-1,[停止時間],0))
>
>クエリの様子が今一分からないので、フィールドの式のみですが、
>こんな感じです。

ありがとうございます。確かに普通のクエリで時間合計を出すことができました。
しかし、新たに問題が発生しました・・・
今度は時間合計では無く、時間の個数を求めようとカウントにすると
A:IIf(選択A=0 and 選択B=0),[停止時間],0))
B:IIf(選択A=-1 and 選択B=0),[停止時間],0))
C:IIf(選択A=0 and 選択B=-1),[停止時間],0))
D:IIf(選択A=-1 and 選択B=-1),[停止時間],0))
A,B,C,Dすべて同じ数になってしまいます・・・
何が原因かわからず、どうすればいいでしょうか?

【11012】Re:空白データの処理
発言  トト  - 09/2/19(木) 15:45 -

引用なし
パスワード
   ▼まつ さん:
> 今度は時間合計では無く、時間の個数を求めようとカウントにすると
> A:IIf(選択A=0 and 選択B=0),[停止時間],0))
> B:IIf(選択A=-1 and 選択B=0),[停止時間],0))

[停止時間]と 0 の両方をカウントするからです。

カウントにせず、SUMで処理して下さい。
A : Sum(IIF(選択A=0 and 選択B=0,1,0))
B : Sum(IIF(選択A=0 and 選択B=-1,1,0))

【11013】Re:空白データの処理
お礼  まつ  - 09/2/19(木) 16:21 -

引用なし
パスワード
   >カウントにせず、SUMで処理して下さい。
>A : Sum(IIF(選択A=0 and 選択B=0,1,0))
>B : Sum(IIF(選択A=0 and 選択B=-1,1,0))

ありがとうございます!
うまくいきました。

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