访问VBA时抛出“运行时错误7-内存不足”

时间:2019-05-03 12:16:06

标签: ms-access access-vba

我有一个报告repVersions和一个表单frmVersiondetails(该表单有许多文本字段)。我在报表上使用"on click"事件创建了一个字段,因此它将打开表单的详细信息并将一些值加载到该表单中。到现在为止,这一直是一种魅力。我做了一些更改,现在我说“运行时错误7”。

尝试还原所做的最后更改无济于事(或者我可能错过了更改的关键细节)。

由于我打开的表单很大,并且在其他元素上充满了文本框(大约600-700),所以我认为此问题可能是由于打开表单上的元素数引起的,所以我关闭了数据库,然后将其复制并删除表单上一半的元素,并更正代码。我仍然遇到此错误,因此我认为这可能不是来自表单上元素的数量。

接下来,当代码中发生错误时,我检查了这些值。 以下是该报告中on click事件的代码段:

Private Sub Versionnumber_Click()
    DoCmd.OpenForm "frmVersiondetails"
    Form_frmVersiondetails.txtStatus.Value = Me.Statusname.Value
    Form_frmVersiondetails.txtPlatform.Value = Me.Platformname.Value
    Form_frmVersiondetails.txtVersion.Value = Me.Versionnumber.Value
    Form_frmVersiondetails.txtProjectno.Value = Me.Projektnumber.Value
    Form_frmVersiondetails.txtProjectname.Value = Me.Projectname.Value
End Sub

当我在运行时查看值时,可以看到报告(me.name.value)中的所有值都正确显示,但是在代码段的第三行中,我在其中分配了“状态”值,将鼠标悬停在代码的左侧将显示以下内容:

<Object variable or With block variable not set>

这使我感到困惑,因为我仅向表单添加了一些元素,从而导致了这种情况。如上所述,我试图回滚所做的更改,但错误仍然存​​在。

我希望将这些值从报告写入表格。它没有问题,我找不到问题。

编辑:我尝试执行项目中拥有的所有其他代码,并且一切正常。

2 个答案:

答案 0 :(得分:1)

我通过创建新表单并将元素从旧的frmVersiondetails复制到新的frmVersiondetailsfix来解决了问题,并将报表中的参数更改为调用了新表单而不是旧表单。有时候,Access对我来说是个谜。.

答案 1 :(得分:0)

尝试使用通用语法:

Private Sub Versionnumber_Click()

    Const FormName = "frmVersiondetails"

    DoCmd.OpenForm FormName
    Forms(FormName).txtStatus.Value = Me.Statusname.Value
    Forms(FormName).txtPlatform.Value = Me.Platformname.Value
    Forms(FormName).txtVersion.Value = Me.Versionnumber.Value
    Forms(FormName).txtProjectno.Value = Me.Projektnumber.Value
    Forms(FormName).txtProjectname.Value = Me.Projectname.Value

End Sub