Microsoft Access 掲示板

タブコントロールの表示、非表示について

7 コメント
views
4 フォロー

選択というフォームとF車庫証明というフォームを作成し
F車庫証明にはタブコントロール普通車・軽自動車を作成し

選択フォームには普軽といったテキストボックスをつくって
そのテキストボックスに普と入力した場合
If Me.普軽txt = "普" Then
DoCmd.OpenForm "F車庫証明"
Me![普通車].Pages(0).Visible = True
Me![軽自動車].Pages(1).Visible = False
と普通車コントロールを表示し軽自動車コントロールを非表示にしたいのですが
よろしくご教示ください

tokinaito
作成: 2024/04/25 (木) 11:43:03
最終更新: 2024/04/25 (木) 11:53:38
通報 ...
1

説明があいまいな部分があるので、
状況を整理すると下記であってますか。

フォーム名「選択」
 テキストボックス名「普軽txt」

フォーム名「F車庫証明」
 タブコントロール名「普通車・軽自動車」
  1ページ目のページ名「普通車」
  1ページ目のページ名「軽自動車」

違っているなら、それぞれの正確な名前を提示してください。

2

あと、「普軽txt」に入力した後、質問の処理をどのように実行しますか。
コマンドボタンクリックですか、それとも入力したら自動的に実行されるようにしますか。

また「普」「軽」以外が入力されたらどうしますか。

テキストボックスではなく、コンボボックスでリストから「普」「軽」が選択できるような設計の方がUIとしては優れていると思いますが、そのような設計に変更してはどうでしょう。

3
tokinaito 2024/04/25 (木) 12:41:19 95680@7f149

hatena様久しぶりにお世話になります。
下記であってますか。
>>あっています。
コマンドボタンクリックですか、それとも入力したら自動的に実行されるようにしますか。
>>コマンドボタンクリックです。
テキストボックスではなく、コンボボックスでリストから「普」「軽」が選択できるような設計の方がUIとしては優れていると思いますが、そのような設計に変更してはどうでしょう。
>>変更します。

4

了解しました。
まず、

フォーム名「選択」
 テキストボックス名「普軽txt」

上記のテキストボックスを右クリックして「コントロールの種類の変更」で「コンボボックス」を選択します。これでコンボボックスに変更できます。
このコンボックスのプロパティを下記のように設定してください。

名前  cmb普軽
値集合ソース 普通車;軽自動車
値集合タイプ 値リスト
入力チェック はい
リストの編集の許可 いいえ

コマンドボタンの「クリック時」の[イベントプロシージャ]を下記のように記述します。
コマンドボタンの名前は cmd車庫証明Open

Private Sub cmd車庫証明Open_Click()
    If Nz(Me.cmb普軽) = "" Then
        MsgBox "「普通車」または「軽自動車」を選択してください。"
        Exit Sub
    End If
    
    DoCmd.OpenForm "F車庫証明"
    
    With Forms!F車庫証明
        Select Case Me.cmb普軽.Vlue
        Case "普通車"
            .普通車.Visible = True
            .軽自動車.Visible = False
        Case "軽自動車"
            .普通車.Visible = False
            .軽自動車.Visible = True
        End Select
    End With
End Sub
5
tokinaito 2024/04/26 (金) 13:33:53 609fe@236a9

hatena様ご教示の通りやってみましたが次のようなエラーが出ました。
selecl case me.cmb普軽.vlue
のvlueの部分でメソッドまたはデータメンバーが見つかりませんと出ます。
一応その部分を消してクリックした場合普通車の部分は開くのですが
軽自動車を開くときはコントロールがフォーカスを取得しているときはコントロール
を非表示にすることはできませんと出ます。
よろしくご教示のほどお願いします。

6

selecl case me.cmb普軽.vlue

すみません。タイプミスです。下記に修正してください。

Selecl Case Me.Cmb普軽.Value

軽自動車を開くときはコントロールがフォーカスを取得しているときはコントロール
を非表示にすることはできませんと出ます。

メッセージ通り、開いた直後は普通車ページにフォーカスがあるのが原因ですので、軽自動車ページにフォーカス移動させればいいでしょう。

Private Sub cmd車庫証明Open_Click()
    If Nz(Me.cmb普軽) = "" Then
        MsgBox "「普通車」または「軽自動車」を選択してください。"
        Exit Sub
    End If
    
    DoCmd.OpenForm "F車庫証明"
    
    With Forms!F車庫証明
        Select Case Me.cmb普軽.Value
        Case "普通車"
            .普通車.Visible = True
            .普通車.SetFocus
            .軽自動車.Visible = False
        Case "軽自動車"
            .軽自動車.Visible = True
            .軽自動車.SetFocus
            .普通車.Visible = False
        End Select
    End With
End Sub
7
tokinaito 2024/04/26 (金) 16:00:25 609fe@236a9

素晴らしいです。作業が進みそうです。
ありがとうございました