【问题标题】:438 runtime error when using the checkbox function in Access VBA在 Access VBA 中使用复选框功能时出现 438 运行时错误
【发布时间】:2017-02-10 13:44:03
【问题描述】:

在 Access 2007 表单上使用复选框时出现 438 运行时错误:“对象不支持此属性或方法”。出了什么问题,我该如何解决?

私有子命令133_Click() 'On Error GoTo ErrHandle

' Save the Current Record
If Me.Dirty Then Me.Dirty = False

' Exit the procedure if appointment has been added to Outlook.
If Me.chkAddedToOutlook = True Then
    MsgBox "This appointment has already added to Microsoft Outlook.", vbCritical
    Exit Sub
Else
End If
End Sub

【问题讨论】:

  • 您的复选框控件是选项组框架外的单个控件吗?或者您在选项组框架内添加了控件?如果它的控件在一个选项组中,你会得到错误,2427 你输入了一个没有值的表达式。

标签: ms-access vba


【解决方案1】:

您可能需要更具体:

If Me!chkAddedToOutlook.Value = True Then

编辑:

'    ' Exit the procedure if appointment has been added to Outlook.
'    If Me.chkAddedToOutlook = True Then
'        MsgBox "This appointment has already added to Microsoft Outlook.", vbCritical
'        Exit Sub
'    End If

' Exit the procedure if appointment has been added to Outlook.
If Me!chkAddedToOutlook.Value = True Then
    MsgBox "This appointment has already added to Microsoft Outlook.", vbCritical
    Exit Sub
End If

【讨论】:

  • 如果复选框为真,则显示一个消息框,其中包含:“此约会已添加到 Microsoft Outlook”。如果不是真的,那就做点别的吧。
  • 是的,这不会发生吗?还是?
  • 确实不会发生。我没有收到消息框。
  • 当我转到调试器时,我看到图片中的文本突出显示了文本。
  • 你用的是刘海还是圆点?
【解决方案2】:

当您在表单上的模块中使用代码时,您的原始语法是否正确;

If Me.chkAddedToOutlook = -1 Then

我更喜欢使用 .因为它允许智能感知工作,并允许您引用您无法使用的属性或方法!运算符。

【讨论】:

  • VBA 中的 True 和 False 等于 -1 和 0。
  • 感谢您的回复,但我仍然遇到同样的错误。
  • 按照 Gustav 的说法 - 这听起来像是表单或控件损坏。删除控件。保存并关闭表单。压缩和修复数据库。返回表单并创建一个新控件 - 最好称为不同的控件。再次尝试相同的代码。
【解决方案3】:

我知道这是旧的,但我来到这里是因为我有同样的错误。我将复选框标签命名为 ckDisableScroll 而不是实际控件。显然标签不可能是真的假的。纠正错误后,一切都按预期进行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多