プロが教えるわが家の防犯対策術!

Accessでアドレス帳を作成しています。
データシートには名前、ヨミ、TEL番号、FAX番号、メールアドレス、郵便番号、住所、メモ等のフィールドが存在します。
フォーム上タブコントロールでヨミより「あ・か・さ・た・な」検索できるようにクエリ抽出条件を作成しました。
フォーム上に設置したサブフォームにクエリの抽出結果が表示されます。
ここで、フォーム上に連絡先、住所、メモのオプションボタンを作成し、連絡先にチェックした時にはTEL及びFAX、住所にチェックした場合は郵便番号及び住所・・・のところだけを表示することは可能でしょうか?
つまりはクエリの表示項目をフォーム上のオプションボタンでコントロールできるのでしょうか?
よろしくお願いします。

A 回答 (1件)

こんばんは 



まず サブフォームの規定のビュー[データシート]or[帳票フォーム]は
どちらをお使いですか?

それによって指定方法が違います。
[データシート]
サブフォーム名.Report.フィールド名.ColumnWidth = 1000

[帳票フォーム]
サブフォーム名.Form.フィールド名.Visible = True
サブフォーム名.Form.フィールド名.left = 500

【例】
サブフォーム名:subfrm
郵便番号:zip
住所:place
メインのチェックボックス: chk1 と chk2
とすると

[データシート]の場合
Private Sub chk1_Click()
If chk1.Value Then
subfrm.Report.zip.ColumnWidth = 1000
Else
subfrm.Report.zip.ColumnWidth = 1 ' 0 にしない事
End If
End Sub

[帳票フォーム]の場合
非表示だけなら簡単だが 位置をずらさないといけないので
共通ルーチンを作って 連絡先にチェックされたときと 
住所にチェックされたときに飛ばした方がいいかな?

Private Sub chk2_Click()
Call chkrtn
End Sub

Sub chkrtn()
If chk2.Value Then
subfrm.Form.zip.Visible = True
subfrm.Form.zip.Left = 5301
subfrm.Form.place.Left = 6213
Else
subfrm.Form.zip.Visible = False
subfrm.Form.place.Left = 5301
End If

End Sub

こんな感じでしょうか?

初めてサブフォームやってみたので、もっと良い方法があるかもしれませんが
ご容赦を
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!