我在Microsoft Access中拥有一个基本的登录表单,在该表单中,我必须清除所有文本框的VBA脚本不会将焦点从一个文本框更改为另一个文本框。您可能已假设的弹出窗口是运行时错误'2110'。即使经过多个调试步骤并确保已启用它们并使其可见,该脚本也无法按预期工作。
这是我的代码:
1 | Private Sub Form_load()
2 | If Me.FirstInput.Visible = False Then
3 | Me.FirstInput.Visible = True
4 | End If
5 | If Me.LastInput.Visible = False Then
6 | Me.LastInput.Visible = True
7 | End If
8 | If Me.ErrorTxt.Visible = True Then
9 | Me.ErrorTxt.Visible = False
10| End If
11| Me.FirstInput.SetFocus
12| Me.FirstInput.Text = ""
13| Me.LastInput.SetFocus
14| Me.LastInput.Text = ""
15| Me.FirstInput.SetFocus
16| Me.LastInput.Visible = False
17| End Sub
错误是我在第13行将焦点更改为“ LastInput”的位置。如果有人可以给我一些指导,以解决该问题,或者您需要更多信息,请告诉我。
检查控件的“已启用”属性。我敢打赌,它设置为False。
[使用可见属性的方式,我想您想强制用户首先输入FirstName,并且如果没有合理的名字,我也想有一个AfterUpdate
事件过程来隐藏LastInput
文本框。输入...
[不幸的是,更改Text
属性的值就像在文本框中键入值,这意味着将触发AfterUpdate
事件,该事件将隐藏LastInput
文本框,使其无法获得焦点。
我建议稍微更改一下代码,并使用Value
属性(这是默认属性)来清空两个文本框:
Private Sub Form_Load()
FirstInput.Visible = True
LastInput.Visible = False
ErrorTxt.Visible = False
FirstInput = Null
LastInput = Null
End Sub