Access VBA - If/Else 语句不断给我一个错误,但我不知道为啥[重复]

Posted

技术标签:

【中文标题】Access VBA - If/Else 语句不断给我一个错误,但我不知道为啥[重复]【英文标题】:Access VBA - If/Else statement keeps giving me an error but I can’t figure out why [duplicate]Access VBA - If/Else 语句不断给我一个错误,但我不知道为什么[重复] 【发布时间】:2021-03-01 21:18:47 【问题描述】:

我有两个子窗体(subfrmA 和 subfrmB)和一个主窗体 frmAB。在用户从主窗体上的 comboboxAB 中选择他们想要的窗体之前,这两个子窗体都是不可见的。因此,如果用户在主窗体 comboboxAB 中选择窗体 A,subfrmA 将变为可见,而 subfrmB 保持不可见。然后用户输入更改保存并退出。

但是当表单打开备份时,我希望保存记录的表单自动加载,所以我写了下面的代码。

    Private Sub Form_Load ()
    If Me.comboboxAB.Text = “Form A” Then 
       Me.subfrmA.Visible = True
       Me.subfrmB.Visible = False
       Me.subfrmA.SourceObject = “Form.Form A” 
    ElseIf Me.comboboxAB.Text = “Form B” Then 
       Me.subfrmB.Visible = True
       Me.subfrmA.Visible = False
       Me.subfrmB.SourceObject = “Form.Form B” 
    End If
    End Sub

但是,我得到一个错误。 “运行时错误‘2185’:除非控件具有焦点,否则不能引用控件的属性或方法。”

还有代码:

    If Me.comboboxAB.Text = “Form A” Then 

突出显示有谁知道这是为什么?我还在平板电脑上输入了代码,所以代码中的引号看起来像智能引号,但实际上不是。

【问题讨论】:

***.com/questions/17306200/… 【参考方案1】:

尝试使用 .Value 而不是 .Text ,如果我没记错的话 .Text 属性仅在聚焦时可用(这是错误消息所暗示的)。

也就是说,您可以在与被更改的组合框本身相关的 Subs 中使用 .Text,但不能在您的 Form_Load Sub 中使用,因为它与 Form 而不是 Combobox 本身相关。

【讨论】:

以上是关于Access VBA - If/Else 语句不断给我一个错误,但我不知道为啥[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft Access VBA 插入错误

“if else”中的break语句 - java

在access中用vba如何把SQL语句查询到的一个值赋给变量?

access2013 VBA中怎样运行sql语句

SQL语句VBA代码Access 2007结束后发现的字符

VBA - Access 03 - 遍历列表框,使用 if 语句进行评估