Accessの初心者です。よろしくお願いします。
Accessで住所録を作っています。
メインフォームは主に本人のデータを表示し、サブフォームで家族の
データを表示するようにしました。
その時、家族がいない人についてはサブフォーム自体を表示しないようにしたいと思います。
そこで下記のようにしましたがうまくいきませんでした。
(1)サブフォーム内で家族の人数をカウントする。
(2)このカウント結果をメインフォームに表示する。(メインフォーム にテキストボックスを配置し、コントロールソースをサブフォームの 人数カウントにする。)
ここまではうまくいきました。
(3)ここでメインフォームのイベントの「開くとき」に以下のように記 述しました。(メインフォームのテキストボックスにカウントという
名前をつけました。)
Private Sub Form_Open(Cancel As Integer)
If Me!カウント = 0 Then
サブフォーム.Visible = False
Else
サブフォーム.Visible = True
End If
End Sub
この記述の仕方がまずいと思うのですが、どのようにすればよいか
分りません。よろしくお願いします。
No.3ベストアンサー
- 回答日時:
ANo.1 では、鈴木さんには家族がいて中村さんにはいませんよね。
このことは、それぞれのレコードが表示された時にしか判りません。
フォームをオープンした時に判るのは最初のレコードだけ。
ですから、<それぞれのレコードが表示された時=Form_Current()>でサブフォームを操作。
2、Form_Current() に記述すればOK。
と補足した理由です。
ところで、サブフォームで計算してメインに表示する必要はないですよね。
こういうやり方は、原則としてしない方がいいです。
カーソルが行き来する羽目になります。
(結果的に、今回は、問題点が表面化していないだけ!)
Private Sub Form_Current()
Me.家族数 = DBCount("*", "住所録従表", "世帯主_ID=" & Me.ID)
End Sub
これで、事足りる訳ですから・・・。
>最初に私が質問した記述でよいと言うことでしょうか?
If Me!カウント = 0 Then
サブフォーム.Visible = False
Else
サブフォーム.Visible = True
End If
と書くも、
サブフォーム.Visible = Me.カウント
と書くも同じ。
ならば、通常は、4行もわざわざ書かないでしょう。
もちろん、スタイルは一貫した方が宜しいのでどちらが正解はないです。
ありがとうございました。
すみません、しばらく他の仕事で手一杯だったのでこちらを見るのが
遅くなってしまいました。
そうですね。いろいろ改良の余地がありました。
教えて頂いたとおりでうまくいきました。
ありがとうございました。
No.2
- 回答日時:
[イミディエイト]
? CBool(0)
False
? CBool(1)
True
? CBool(2)
True
ですから、
IF Me.家族数>0 Then
Me.住所録従表_サブフォーム.Visible = True
Else
Me.住所録従表_サブフォーム.Visible = False
End If
と
Me.住所録従表_サブフォーム.Visible = Me.家族数
とは同じこと。
1、メインフォームで集計し、
2、Form_Current() に記述すればOK。
という回答ですよ。
No.1
- 回答日時:
<住所録主表>
ID__世帯主
1___鈴木 一郎
2___中村 主水
<住所録従表>
ID__世帯主_ID___続柄___氏名
1_______________1_______1___鈴木 恵美子
2_______________1_______2___鈴木 健太
世帯主=中村 主水氏の場合は、サブフォームを非表示にしたいとの質問。
Private Sub Form_Current()
Me.家族数 = DBCount("*", "住所録従表", "世帯主_ID=" & Me.ID)
Me.住所録従表_サブフォーム.Visible = Me.家族数
End Sub
ここでは、自作の DBCount関数を利用しています。
もちろん、DCount関数を利用されても構いません。
(ただし、ちょっと、実行速度に問題があります)
いずれにしろ、この2行でOKの筈です。
※ただし、新規追加の時の対策は必要かと・・・。
ありがとうございました。
サブフォーム.Visible = False
ではだめなんですね。
早速、教えて頂いた様にやってみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- Access(アクセス) Dlookupにエラーがでてしまう 1 2022/10/31 14:35
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
サブフォームを非表示させる方法を教えて下さい
その他(Microsoft Office)
-
(ACCESS)条件に応じて、テキストボックスを表示・非表示設定
その他(データベース)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
-
4
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
5
Accessのトグルボタンでサブフォームの表示・非表示を制御したい
Microsoft ASP
-
6
アクセスのレポート合成(複数のレポートを一つにまとめる方法)
その他(データベース)
-
7
親フォームからサブフォームのレコードソースを設定
Access(アクセス)
-
8
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
9
ACCSESS2013VBA フォームのレコードソースを変更する
その他(データベース)
-
10
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
11
Accessのフォーマット時イベント
その他(データベース)
-
12
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
13
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
14
access マクロでのフィルタの解除の方法
Access(アクセス)
-
15
Accessクエリ 複数フィールドを対象に空白の場合は全件表示したい
Access(アクセス)
-
16
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
17
AccessVBA複数レポート条件毎にまとめて出力
Visual Basic(VBA)
-
18
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
19
ACCESS──メインフォームでサブフォームのレコード件数をカウントしたい
Access(アクセス)
-
20
レポートで空データ時に印刷しない
Access(アクセス)
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サブフォームに対してGoToRecor...
-
ACCESSにて
-
親フォームからサブフォームの...
-
【Access】サブフォームのソー...
-
親・子リンクフィールドの設定...
-
クエリで出来た表にチェックボ...
-
ACCESS VBA メインフォーム及び...
-
ACCESSサブフォームにデータ反...
-
皆さん使っているブラウザを教...
-
ACCESS──メインフォームでサブ...
-
アクセス2003のサブフォームの...
-
サブフォームを非表示させる方...
-
アクセスでエラー・・・
-
Access2007でサブフォームを再...
-
Accessのサブフォーム
-
accessでコンボボックスとサブ...
-
access vba サブフォームに条件...
-
Access VBAでメインフォームと...
-
access フォーム上で複数行の...
-
Accessでサブフォームのボタン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サブフォームに対してGoToRecor...
-
クエリで出来た表にチェックボ...
-
ACCESS──メインフォームでサブ...
-
サブフォームを非表示させる方...
-
親フォームからサブフォームの...
-
ACCESS VBA メインフォーム及び...
-
親・子リンクフィールドの設定...
-
【Access】サブフォームのソー...
-
ACCESSにて
-
ACCESSサブフォームにデータ反...
-
サブフォームのあるフォームか...
-
access フォーム上で複数行の...
-
Access VBA には Gridはないで...
-
Access フォームで条件抽出し...
-
Access2007 ラベルの削除がで...
-
ACCESSのサブフォームコピーに...
-
Access メインフォーム サブフ...
-
Accessで埋め込んだサブフォー...
-
ACCESSのフォームで列固定?
-
ACCESSで条件によってサブフォ...
おすすめ情報