如果文本框包含文本,则在其下显示第二个文本框,否则隐藏第二个文本框

时间:2019-09-19 17:50:52

标签: sql ms-access

我彼此之间有多个文本框。除了第一个,我希望所有这些都被隐藏。如果第一个框内有文本,则应显示第二个框。如果第二个框中包含文本,则将显示第三个框。

2 个答案:

答案 0 :(得分:0)

您可以使用文本框的 AfterUpdate 事件,这里是第一个事件:

Me!TextBox2.Visible = Not IsNull(Me!TextBox1.Value)

以此类推。

答案 1 :(得分:0)

鉴于您的文本框被命名为txtBox1txtBox6,您可以将此过程放置在每个文本框的AfterUpdate事件中。

该过程还将不可见文本框的值设置为Null。如果您不希望这样做,只需注释相关的代码行即可。

Private Sub SetTextBoxes(ByVal startWithTextBoxNr As Long)
    Const TEXTBOX_COUNT As Long = 6
    Const COMMON_NAME As String = "txtBox"

    Dim index As Long
    For index = startWithTextBoxNr + 1 To TEXTBOX_COUNT
        With Me(COMMON_NAME & index)
            .Visible = Not IsNull(Me(COMMON_NAME & index - 1).Value)
            If Not .Visible Then .Value = Null
        End With
    Next index
End Sub

事件处理程序将如下所示:

Private Sub txtBox1_AfterUpdate()
    SetTextBoxes 1
End Sub

Private Sub txtBox2_AfterUpdate()
    SetTextBoxes 2
End Sub

Private Sub txtBox3_AfterUpdate()
    SetTextBoxes 3
End Sub

Private Sub txtBox4_AfterUpdate()
    SetTextBoxes 4
End Sub

Private Sub txtBox5_AfterUpdate()
    SetTextBoxes 5
End Sub

此外,您可以将SetTextBoxes添加到表单的Load事件中,以便为第一个文本框初始化一次控件:

Private Sub Form_Load()
    SetTextBoxes 1
End Sub