Sql 如果文本框包含文本,则在其下显示第二个文本框,否则隐藏第二个文本框
我有多个文本框在彼此下面。我想把它们都藏起来,除了第一个。如果第一个框中有文本,则应显示第二个框。如果第二个框中有文本,则将显示第三个框。您可以使用文本框的AfterUpdate事件,这里是第一个:Sql 如果文本框包含文本,则在其下显示第二个文本框,否则隐藏第二个文本框,sql,ms-access,Sql,Ms Access,我有多个文本框在彼此下面。我想把它们都藏起来,除了第一个。如果第一个框中有文本,则应显示第二个框。如果第二个框中有文本,则将显示第三个框。您可以使用文本框的AfterUpdate事件,这里是第一个: Me!TextBox2.Visible = Not IsNull(Me!TextBox1.Value) 依此类推。鉴于您的文本框被命名为txtBox1到txtBox6,您可以将此过程放入每个文本框的AfterUpdate事件中 该过程还将不可见文本框的值设置为Null。如果您不想这样做,只需对代码
Me!TextBox2.Visible = Not IsNull(Me!TextBox1.Value)
依此类推。鉴于您的文本框被命名为
txtBox1
到txtBox6
,您可以将此过程放入每个文本框的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
此外,您还可以将settextbox
添加到表单的Load
事件中,以便为第一个文本框初始化一次控件:
Private Sub Form_Load()
SetTextBoxes 1
End Sub
根据上一个框的值设置它们的
.visible
属性。可能重复