Access VBA質問箱 IV

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

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


397 / 9994 ←次へ | 前へ→

【12910】Re:Access関数の記述=IIfについて教えてください。
回答  かるびの  - 15/12/23(水) 1:09 -

引用なし
パスワード
   >集計帳票で現在の記述は
>=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」という名前のコントロールが
存在している必要がありますが、そういうコントロールは存在しているのでしょうか。


>正解な記述を教えていただければ助かります。

 フォーム構成を正確に提示してもらえなければ、正確な記述など示しようがありません。

 なお、通常、フォーム構成と言えば、
フォームの名前、
フォームのレコードソース
フォーム上の主要なコントロールの名前
当該コントロールのコントロールソース
あたりを提示してもらうことになります。

178 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 お礼[未読]

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