无法在加载时禁用ms-access userform的所有字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在加载时禁用ms-access userform的所有字段相关的知识,希望对你有一定的参考价值。

我的userform上有很多控件,除了“登录按钮”和“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 

但这给了我一个错误的加载说“对象不支持这个属性或方法。”

一旦用户点击登录按钮,所有控件都将启用。

我的代码中会出现什么错误?

请询问是否需要任何其他信息。谢谢 !

答案

尝试锁定控件。我使用了下面的锁定属性,但我使用每个控件的tag属性将其标识为可锁定。因此,您不想锁定的控件将不会在tag属性中获得任何内容,因此不会锁定。对于您的应用程序,您可以翻转逻辑,因为您只想让两个控件保持解锁状态。

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

仅在不标签时应用禁用。

以上是关于无法在加载时禁用ms-access userform的所有字段的主要内容,如果未能解决你的问题,请参考以下文章

运行时错误 3032,无法执行此操作 ms-access

如何在ms-access vba中单击命令按钮单击以更改代码以更改控件属性

我能否以编程方式启用和禁用存储在 SharePoint 中并链接到 ms-access 的 xlsx 文件的 ms-excel 文件共享/共同创作?

加载扩展时出错无法从“C:\..\Local\Temp\scoped_dir6312_32763\internal”加载扩展。已禁用加载未打包的扩展

ms-access 2007 运行时和 lockWindowUpdate

swift:从自定义应用程序加载时,iCloud 文档似乎被禁用