无法在加载时禁用 ms-access 用户窗体的所有字段
Unable to disable all fields of a ms-access userform on load
我的用户窗体上有很多控件,我想在加载时禁用所有控件,除了 "login button" 和 "Shift Date" 文本框,所以我使用下面的代码:
Private Sub Form_Load()
Call GetValues
Me.WlcmLabel.Caption = "Hi " + GetUserName + " ! "
Dim ctrl As Control
For Each ctrl In Me.Controls
ctrl.Enabled = False
Next
Me.ShiftDate.Enabled = True
Me.LoginBtn.Enabled = True
Set ctrl = Nothing
End Sub
但这给了我一个加载错误说 "object does not support this property or method."
一旦用户点击登录按钮,所有控件将立即启用。
我的代码会出现什么错误?
请询问是否需要任何其他信息。
谢谢!
尝试锁定控件。我在下面使用了锁定的属性,但是我使用每个控件的标签属性来标识它是可锁定的。所以你不想锁定的控件不会在标签 属性 中得到任何东西,因此不会锁定。对于您的应用程序,您可以翻转逻辑,因为您只想让两个控件保持解锁状态。
For Each ctlCurr In Me.Controls
If ctlCurr.Tag = "Lockable" Then
ctlCurr.Locked = True
End If
Next
您不能禁用标签控制,这就是出现该错误的原因。您必须检查控件类型。
For Each ctrl In Me.Controls
With ctrl
a = TypeName(ctrl)
Select Case .ControlType
Case acLabel
Case acEmptyCell
Case Else
ctrl.Enabled = False
End Select
End With
Next ctrl
仅在非标签时应用禁用。
我的用户窗体上有很多控件,我想在加载时禁用所有控件,除了 "login button" 和 "Shift Date" 文本框,所以我使用下面的代码:
Private Sub Form_Load()
Call GetValues
Me.WlcmLabel.Caption = "Hi " + GetUserName + " ! "
Dim ctrl As Control
For Each ctrl In Me.Controls
ctrl.Enabled = False
Next
Me.ShiftDate.Enabled = True
Me.LoginBtn.Enabled = True
Set ctrl = Nothing
End Sub
但这给了我一个加载错误说 "object does not support this property or method."
一旦用户点击登录按钮,所有控件将立即启用。
我的代码会出现什么错误?
请询问是否需要任何其他信息。 谢谢!
尝试锁定控件。我在下面使用了锁定的属性,但是我使用每个控件的标签属性来标识它是可锁定的。所以你不想锁定的控件不会在标签 属性 中得到任何东西,因此不会锁定。对于您的应用程序,您可以翻转逻辑,因为您只想让两个控件保持解锁状态。
For Each ctlCurr In Me.Controls
If ctlCurr.Tag = "Lockable" Then
ctlCurr.Locked = True
End If
Next
您不能禁用标签控制,这就是出现该错误的原因。您必须检查控件类型。
For Each ctrl In Me.Controls
With ctrl
a = TypeName(ctrl)
Select Case .ControlType
Case acLabel
Case acEmptyCell
Case Else
ctrl.Enabled = False
End Select
End With
Next ctrl
仅在非标签时应用禁用。