如何创建MS Access 2013 VBA的可扩展/可伸缩格式?

时间:2016-06-22 19:46:56

标签: vba ms-access

我正在为我的一个数据库表创建数据输入表单。对于其中一个部分,我的文本字段仅包含标题:"描述1"展示。如果用户填写了“描述1”文本框,我希望它显示“描述2”文本框。如果用户填写说明2文本框,则说明3文本框将显示,最多可显示10个说明文本框。有没有办法隐藏额外的文本框,就像在创建宏时填写信息一样?例如,当您单击创建 - >宏,只有一个下拉框供您选择操作。如果选择“打开表单”并按Enter键,则会显示另外6个带有标题的文本框。

有没有办法在表单中获得这种功能?此外,在“宏”构建器中,它会为您动态重新排列页面,是否也可以使用表单完成?

1 个答案:

答案 0 :(得分:1)

请按照以下步骤操作:

  1. 将visible属性标记为false

    enter image description here

  2. 为每个文本框添加OnChange个事件。

    enter image description here

  3. 编写VBA代码以确定是否显示或隐藏下一个控件。请注意,Me!FormControlItem.Text仅在控件具有焦点时才可访问。

  4. 每个控件都有3个功能。

    Private Sub text1_Change()
        If Not Trim(Me!text1.Text) = "" Then
            Me!Text2.Visible = True
            Me!Label2.Visible = True
        ElseIf Not Trim(Me!Text2) = "" Then
            Me!Text2.Visible = True
            Me!Label2.Visible = True
        Else
            Me!Text2.Visible = False
            Me!Label2.Visible = False
        End If
    End Sub
    
    Private Sub Text2_Change()
        If Not Trim(Me!Text2.Text) = "" Then
            Me!Text3.Visible = True
            Me!Label3.Visible = True
        ElseIf Not Trim(Me!Text3) = "" Then
            Me!Text3.Visible = True
            Me!Label3.Visible = True
        Else
            Me!Text3.Visible = False
            Me!Label3.Visible = False
        End If
    End Sub
    
    Private Sub Text3_Change()
        If Not Trim(Me!Text3.Text) = "" Then
            Me!Text4.Visible = True
            Me!Label4.Visible = True
        ElseIf Not Trim(Me!Text4) = "" Then
            Me!Text4.Visible = True
            Me!Label4.Visible = True
        Else
            Me!Text4.Visible = False
            Me!Label4.Visible = False
        End If
    End Sub
    
    1. 享受!