访问子窗体中变量控件的 VBA 更改可见性



我正在尝试创建一个子,该子将在给定表单位置中切换给定控件数组的可见性。我已经设法让它在主窗体上工作,但无法弄清楚子窗体控件的语法。我正在使用 Access 2016。

这是我到目前为止所拥有的:

Sub toggleDisappear(ByRef fields() As Variant, _
ByVal report As String, ByVal vis As Boolean, Optional ByVal sfrm As String)
If IsNull(sfrm) Then
For i = 1 To UBound(fields)
Forms(report).Controls(fields(i)).Visible = vis
Next
Else
For i = 1 To UBound(fields)
Forms.Form(report).Controls(sfrm).Form.Controls(fields(i)).Visible = vis
Next
End If
End Sub

知道我错过了什么吗?我收到运行时错误 438 - "对象不支持此属性或方法"。

如果在 VBA 中键入sFrm作为String,则它永远不会为空。因此,您的 If 语句将无法正常工作。要修复:

将过程声明更改为:

Sub toggleDisappear(ByRef fields() As Variant, _
ByVal report As String, ByVal vis As Boolean, Optional ByVal sfrm As Variant)

然后,将 If 语句更改为:

If IsMissing(sfrm) Then

现在,您的代码可以判断何时未提供sFrm

相关内容

  • 没有找到相关文章

最新更新