MS Access - 创建一个通用的 Sub 来设置子窗体上控件的属性
MS Access - Creating a generic Sub to set Properties of controls on a Subform
我有一个可以从任何表单调用的通用 Sub,它将启用标签 属性 设置为 'EnableForReadOnly' 的所有文本框和组合框。我想为子表单创建类似的东西。
Public Sub EnableReadOnlyControls(theForm)
Dim i As Integer
' Cycle through the form's controls,
For i = 0 To theForm.Count - 1
If theForm(i).Tag = "EnableForReadOnly" Then
If TypeOf theForm(i) Is TextBox Then
theForm(i).Locked = False
theForm(i).Enabled = True
ElseIf TypeOf theForm(i) Is ComboBox Then
theForm(i).Locked = False
theForm(i).Enabled = True
End If
End If
Next i
结束子
要从表单调用此 Sub,在表单的 OnOpen 事件中,我键入以下内容并且效果很好:
EnableReadOnlyControls Me
我想为子表单创建一个类似的通用子表单,但我不确定是否可以以这种通用方式引用子表单。任何想法将不胜感激。
我在这里重新发布安德烈的评论作为答案。谢谢安德烈!
“您可以简单地使用相同的函数。EnableReadOnlyControls Me.SubformControl.Form。或者您在子窗体的 Open 事件中进行的调用。”
示例:我的主窗体上的子窗体控件的名称是 frmCounterTopSub,所以我将这一行添加到我的代码中,它非常有效:
EnableReadOnlyControls Me.frmCounterTopSub.Form
我有一个可以从任何表单调用的通用 Sub,它将启用标签 属性 设置为 'EnableForReadOnly' 的所有文本框和组合框。我想为子表单创建类似的东西。
Public Sub EnableReadOnlyControls(theForm)
Dim i As Integer
' Cycle through the form's controls,
For i = 0 To theForm.Count - 1
If theForm(i).Tag = "EnableForReadOnly" Then
If TypeOf theForm(i) Is TextBox Then
theForm(i).Locked = False
theForm(i).Enabled = True
ElseIf TypeOf theForm(i) Is ComboBox Then
theForm(i).Locked = False
theForm(i).Enabled = True
End If
End If
Next i
结束子
要从表单调用此 Sub,在表单的 OnOpen 事件中,我键入以下内容并且效果很好:
EnableReadOnlyControls Me
我想为子表单创建一个类似的通用子表单,但我不确定是否可以以这种通用方式引用子表单。任何想法将不胜感激。
我在这里重新发布安德烈的评论作为答案。谢谢安德烈!
“您可以简单地使用相同的函数。EnableReadOnlyControls Me.SubformControl.Form。或者您在子窗体的 Open 事件中进行的调用。”
示例:我的主窗体上的子窗体控件的名称是 frmCounterTopSub,所以我将这一行添加到我的代码中,它非常有效:
EnableReadOnlyControls Me.frmCounterTopSub.Form