Access VBA質問箱 IV

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

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


394 / 9994 ←次へ | 前へ→

【12913】Re:Access関数の記述=IIfについて教えてください。
質問  素人初心者  - 15/12/24(木) 9:49 -

引用なし
パスワード
   ▼かるびの さん:ご回答ありがとうございます。

どう説明してらいいのかさえ、わからない素人なのですが、

流れとしては、たとえば、

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」という名前のコントロールが
>存在している必要がありますが、そういうコントロールは存在しているのでしょうか。
>
>
>>正解な記述を教えていただければ助かります。
>
> フォーム構成を正確に提示してもらえなければ、正確な記述など示しようがありません。
>
> なお、通常、フォーム構成と言えば、
>フォームの名前、
>フォームのレコードソース
>フォーム上の主要なコントロールの名前
>当該コントロールのコントロールソース
>あたりを提示してもらうことになります。
198 hits

【12909】Access関数の記述=IIfについて教えてください。 素人初心者 15/12/22(火) 17:56 質問[未読]
【12910】Re:Access関数の記述=IIfについて教えてく... かるびの 15/12/23(水) 1:09 回答[未読]
【12913】Re:Access関数の記述=IIfについて教えてく... 素人初心者 15/12/24(木) 9:49 質問[未読]
【12914】Re:Access関数の記述=IIfについて教えてく... かるびの 15/12/24(木) 11:59 回答[未読]
【12915】Re:Access関数の記述=IIfについて教えてく... かるびの 15/12/24(木) 19:41 発言[未読]
【12916】Re:Access関数の記述=IIfについて教えてく... 素人初心者 15/12/25(金) 9:06 お礼[未読]

394 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078190
(SS)C-BOARD v3.8 is Free