|
▼かるびの さん:ご回答ありがとうございます。
どう説明してらいいのかさえ、わからない素人なのですが、
流れとしては、たとえば、
A社から仕入れた金額
1月 10000
2月 20000
|
12月 30000
B社から仕入れた金額
1月 50000
2月 70000
|
12月 10000
となった場合
コード?800はA社仕入れ(別に800はA社の仕入れと設定し、集計しています)
コード?801はB社仕入れ(別に801はB社の仕入れと設定し、集計しています)
年間集計として、
A社の合計を表示するために
=IIf([800]=0,"",[800])
の式が入っていましたが、
今回表示したい値は
A社の年間合計が0の場合B社の年間合計を表示
年間を通して、A社かB社かのどちらか一方しかしいれないので、
(部署によってA社のみで仕入れる部署と B社のみで仕入れる部署があります)
A社の年間合計が0の場合B社の合計を年間合計表示が無理な様であれば
A社の年間合計+B社の年間合計の値を表示したいと考え
=IIf([800]+[801]=0,"",[800]+[801])
上記のような記述で試したが、表示しなくなってしまったのです。
イ部署仕入れ(A社のみ仕入れ)
1月 10000
2月 20000
3月 10000
4月 10000
5月 10000
6月 10000
7月 10000
8月 10000
9月 10000
10月 10000
11月 10000
12月 30000
−−−−−−−−
計 150000
ロ部署仕入れ(B社のみから仕入れ)
1月 50000
2月 70000
3月 10000
4月 10000
5月 10000
6月 10000
7月 10000
8月 10000
9月 10000
10月 10000
11月 10000
12月 10000
−−−−−−−−−
計 220000
このような状況であった場合
イ部署 2015年状況表
消費部材 5000000
社内在庫 50000
仕入れ 150000 (ここの数式)
ロ部署 2015年状況表
消費部材 5000000
社内在庫 50000
仕入れ 220000 (ここの数式)
このように、部署ごとに集計表を出したいです。
いい方法があったら教えてください。
>>集計帳票で現在の記述は
>>=IIf([100]=0,"",[100])
>>となって記述されています。
>>
>>コードNo100の値を表示 値がゼロの場合は空白でという記述だと思っているのですが、
>
> いきなり脱線しますが、
>「空白」という表現は使うべきではありません。
> テキストボックスが空白になる場合には、
>テキストボックスの値が長さ0の文字列(空文字などとも呼ばれます)である場合と
>テキストボックスの値がNullである場合との
>2通りあります。
> そのため、「空白」という表現ではどちらのことなのか区別できないからです。
> ちなみに、長さ0の文字列とNullとでは、コンピュータでの処理上では、雲泥の差があります。
>
>
> で、本題ですが、
> 上記の式は、おそらくテキストボックスのコントロールソースに記述されているのだと思います。
> 「100」という名前のコントロールがテキストボックスなのか、コンボボックスなのか、はたまた
>他の種類のコントロールなのか不明ですが、
>説明の便宜上、「100」という名前のコントロールはテキストボックスだとします。
>
> そこで、上記の式の意味ですが、
>「100」という名前のテキストボックスの値が0であれば、長さ0の文字列を表示し、
>そうでなければ、「100」という名前のテキストボックスの値を表示する
>というものです。
>
>
> また脱線しますが、
>上記の式にはものすごく違和感を覚えます。
> 上記の式が設定されたコントロールが表示する値が、テキスト型だったり(長さ0の文字列の場合)、数値型だったりするからです。
> エクセルではデータ型を意識することはないのに対して、アクセスはデータ型にうるさいわけですが(というより、エクセルがずさん過ぎる)、
>データ型を混在させると、このコントロールの値を使って何かをしようという場合に、
>困ったことになる場合が出てきます。
>
>
> さらに脱線ですが、
>上記の式が設定されたコントロールですが、値が0である場合に0を表示させないようにしたい
>ということですよね。
> そのためにわざわざ1つのコントロールを設けるのは、無駄ではないかと思います。
>
> また、もし、値が0である場合に、0を表示させたくないというならば、
>上記の式で言えば、名前が「100」であるテキストボックスの「書式」プロパティを、
>しかるべく設定すれば、実現することができます。
>
>
> 脱線はまだ続きますが、
>コントロールの名前を、例えば「100」のように数字で始まるものにするのはNGです。
> コントロールの名前の1文字目は文字にしなければなりません。
>
> 一般機能だけでアクセスを使うのであれば、つまり、VBAを決して使わないというのであれば、
>数字で始まる名前でも何とかなると思いますが、
>後々VBAを使うかもしれないというのであれば、数字始まりは避けるべきです。
>
>
> 本題その2です。
>
>>=IIf([800]+[801]=0,"",[800]+[801])
>
> この式がうまくうまく動いてもらうためには、
>フォームに、「800」という名前のコントロールと「801」という名前のコントロールが
>存在している必要がありますが、そういうコントロールは存在しているのでしょうか。
>
>
>>正解な記述を教えていただければ助かります。
>
> フォーム構成を正確に提示してもらえなければ、正確な記述など示しようがありません。
>
> なお、通常、フォーム構成と言えば、
>フォームの名前、
>フォームのレコードソース
>フォーム上の主要なコントロールの名前
>当該コントロールのコントロールソース
>あたりを提示してもらうことになります。
|
|