我有一个包含许多标签和子表单的MS Access表单。我已经为一个按钮编写了一些VBA代码,该按钮禁用/启用所有子表单上的所有控件。由于某些原因,按钮不会像他们手动将Enabled属性设置为False时那样变灰。有谁知道如何使用VBA代码实现这一目标?
谢谢!
以下是我使用的代码:
Private Sub Command137_Click()
Dim ctrlControl As Control
For Each ctrlControl In Me.Controls
On Error GoTo err:
If ctrlControl.ControlType = acTabCtl Or ctrlControl.Name = "Command9" Then
Else
ctrlControl.Enabled = False
End If
Continue:
Next
Exit Sub
err:
Debug.Print err.Description
Resume Continue
End Sub
答案 0 :(得分:1)
我也遇到了同样的问题。但是,我想出了一种解决方法。
首先在模块中定义一些公共变量:
var user = userPlanPair.user;
user.Plan = userPlanPair.plan;
然后在您的Form_Load()子项中
Option Explicit
Public greyout, white As Long
然后在文本/组合框中使用.enable时,执行此操作
Public Sub Form_Load()
'color RGB definition
greyout = RGB(210, 210, 210)
white = RGB(255, 255, 255)
End Sub
希望有帮助
答案 1 :(得分:0)
您正在搜索错误的controlType。使用' acCommandButton'不是' acTabCtrl'。 (我添加了一个ELSE以启用其他所有内容)
IF ctrlControl.ControlType = acCommandButton THEN
ctrControl.enabled = false
ELSE
ctrControl.enabled = true
END IF