切换到设计模式时,BeforeUpdate事件发生MS-Access错误

时间:2013-11-01 15:31:59

标签: ms-access access-vba

当我在表单上更改某些内容然后切换到设计模式时,我收到以下错误:

您输入的表达式是指已关闭或不存在的对象

Debug指向表单的BeforeUpdate事件中的代码;见下文:

Private Sub Form_BeforeUpdate(Cancel As Integer)

    Me.JobID = "Job" & Format(Me.ID, String(12 - Len("Job"), "0"))

End Sub

此代码只是从自动编号字段创建自定义主键;这是我做的第一件事之一,我已经在Form和Design View之间进行了几周的切换而没有问题。

任何人都知道可能导致这种情况的原因吗?

1 个答案:

答案 0 :(得分:1)

我可以提供一些我认为可以解决问题的建议,但我承认我并不完全确定真正的原因。通过解决它,您可能能够自己发现原因。

当引用底层字段(而不是控件)时,我建议你使用“bang”而不是“dot”。这可能足以解决这个问题。

Private Sub Form_BeforeUpdate(Cancel As Integer)
    Me!JobID = "Job" & Format(Me!ID, String(12 - Len("Job"), "0"))
End Sub

您可能尝试的另一件事是在不需要的情况下取消运行该代码:

Private Sub Form_BeforeUpdate(Cancel As Integer)
    If IsNull(Me!JobID) = True Then
        Me!JobID = "Job" & Format(Me!ID, String(12 - Len("Job"), "0"))
    End If
End Sub