首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >访问vba更改子窗体中变量控件的可见性

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

Stack Overflow用户
提问于 2018-06-07 00:42:54
回答 1查看 605关注 0票数 0

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

这是我到目前为止所知道的:

代码语言:javascript
复制
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 -“对象不支持这个属性或方法”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 04:02:53

如果在VBA中键入sFrm作为String,则它永远不能为null。因此,您的If语句将无法正常工作。要修复,请执行以下操作:

将您的过程声明更改为:

代码语言:javascript
复制
Sub toggleDisappear(ByRef fields() As Variant, _
    ByVal report As String, ByVal vis As Boolean, Optional ByVal sfrm As Variant)

然后,将If语句更改为:

代码语言:javascript
复制
If IsMissing(sfrm) Then

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50725525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档