No.3ベストアンサー
- 回答日時:
式の意味についてはNo.1の方の回答の通りです。
(Count関数で確認したレコード数を元に、IIF関数で場合分け)
ただ、チェックボックスで使用しているのだとすると、ちょっと注意が
必要な式になっています(汗)
ですので、その点について、蛇足ながら参考までに説明をしておきます。
通常、チェックボックスはオンかオフかの2通りの表示をするのに
使いますが、実際には「グレー表示」も可能になっています。
で、今回の式で「レコード数が1の時」に指定されている「""」
(空文字)と、「Null」(→どちらもテキストボックスでは「空白」と
して見えることになるデータ)が、この「グレー表示」になる場合に
当たります。
ところが、この「グレー表示」ですが、Accessの設定によっては
「オフ」の表示と区別ができなくなってしまいます。
(→添付画像を参照:
Accessのメニューから「ツール(T)→オプション(O)」を選択して
開く『オプション』ダイアログの『フォーム/レポート』タブにある、
「フォーム上のコントロールにWindowsのテーマを使用する(T)」
の設定を切り替えた場合の表示の違いです)
※なお、この設定はフォームにのみ有効で、レポートの場合は
設定に依らず「オン/オフ/グレー」は常に区別して表示される
ようです(XP Home-Access2003で確認)。
つまり、複数のPCでMDBファイルを共有していた場合、PCに
よってはグレーに見えたりオフに見えたりする、ということが発生
してしまう、ということです。
ですので、もしも「オン/オフ」表示のみを意図されている場合は、
ご質問の式は
=IIF(Count(*)=1, 0, 1)
と、「""」ではなく「0」に変更されることをお勧めしておきます。
または、より「オンかオフかが(プログラムの保守をする立場として
)わかりやすい」という意味では、
=IIF(Count(*)=1, False, True)
でもいいかもしれません。
【さらに蛇足(汗)】
今回の内容であれば、IIF関数を使用せずに
=(Count(*)<>1)
としても、同じ結果が得られますので、併せて参考まで。
No.2
- 回答日時:
IIF関数は意味に疑問は無いでしょう。
Count(*)の意味をテストするために
テーブルのレコード数をフォームのテキストボックスに表示する操作をやってみました。(結構微妙な操作なので注意)
ーーー
「フォーム」のオブジェクト
新規作成
デザインビュー
「基になるテーブル・・」は指定しない(空白)。テーブルのフィールドと連結させない。
OK
フォームにテキストを1つ貼り付け
ーーー
フオームのデザインモード
タイトル部で右クリック
プロパティ。もし「詳細」などになっていたら▼をクリクして「フォーム」をえらぶ。
「データ」タブ
「レコードソース」の行で▼をクリックーー「・・・」を指定しないこと。連結フィールドになる方に行ってしまう。
テーブル名を指定(私の場合 社員4)
--
テキストボックスのデザインモードで
プロパティ
「データ」タブ
「レコードソース」の行で
「・・・」をクリック
関数
組み込み関数
Count
Count(*)に修正
OK
=COUNT(*)になる。
ーー
表示
フォームビュー
ーー
結果
私の場合のテーブルの「社員4」の5レコードの5がテキストボックスに出ました。
ーー
だから質問の場合、レコード件数が1件なら空白、それ以外(多分2以上なら)1を返すということだと思います。
No.1
- 回答日時:
「上記の式の意味について教えてください。
」フォーム関連づけられているテーブルもしくはクエリのデータの数を数えるのがCOUNT文。↓
http://office.microsoft.com/ja-jp/access-help/HA …
数えた結果、データが1件なら空白に、そうでなければ1をセットする。チェックボックスなら、1をセットすることでチェックが付くんじゃないかな。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vba シートコピーの不具合 1 2022/06/25 17:48
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- Excel(エクセル) エクセル count関数で出てきた数だけの行数をリンクで参照する 3 2022/08/10 12:02
- Visual Basic(VBA) 1つの入力フォルダの値を読み込み、3分割をして新しい変数に代入する方法を教えていただきたいです。 読 4 2022/10/17 20:52
- UNIX・Linux マスターブートレコード方式のbiosを使ったシステムでインストールされたlinuxで/dev/sda 1 2023/05/13 21:23
- Visual Basic(VBA) Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1 2 2023/01/12 12:24
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レコードを保存するコード ア...
-
Access2010、値を入力したら自...
-
レコード削除時に(サブ)フォー...
-
アクセスの自動保存解除はでき...
-
AccessVBA RecordSourceのリセ...
-
Accessで上の行を自動でコピー...
-
Accessでフォーム上に 直前の...
-
アクセスでフォームビューがみ...
-
Accessで前に入力したフィール...
-
Access データのないフォーム...
-
Accessでレコードの保存をせず...
-
ACCESSでフォームを使って、テ...
-
新規レコード行を非表示にしたい
-
access 自作の移動ボタンのエラ...
-
Access レコード移動時イベント...
-
ACCESS起動時に所定フォームを...
-
Access:フォームプロパティ「...
-
アクセス2000で在庫管理ファイ...
-
フィルタ後のフォームの件数の...
-
accessのクエリで、該当するデ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードを保存するコード ア...
-
アクセスでフォームビューがみ...
-
ACCESSでフォームを使って、テ...
-
新規レコード行を非表示にしたい
-
フィルタ後のフォームの件数の...
-
Accessでレコードの保存をせず...
-
Accessでフォーム上に 直前の...
-
Accessで上の行を自動でコピー...
-
AccessVBA RecordSourceのリセ...
-
レコード削除時に(サブ)フォー...
-
アクセスの自動保存解除はでき...
-
Accessで新しいレコードに規定...
-
ACCESS起動時に所定フォームを...
-
Access 「このレコードを保存す...
-
Access:フォームプロパティ「...
-
Access2010、値を入力したら自...
-
レコードをダブルクリックする...
-
アクセス データの競合を非表...
-
ACCESSのクエリで抽出したデー...
-
Accessでのデータ消滅に...
おすすめ情報