我一直在修改我的 Access DB 以清理它并使其更加用户友好。因此,我一直在更改表单标签和控件上的名称以包含 _lbl 和 _Ctrl,而不是 Access 分配给它们的通用名称。以前,我有三个单独的表单(ListingsForm、ListOffersForm、ListDetailsForm),我可以通过使用按钮调用表单来访问它们。由于表单与主表单 (ListingsForm) 直接相关,因此我将其中两个表单更改为子表单。现在,当我尝试添加记录时,我不断收到错误消息。
在 ListingsForm 表单上,有一个属性地址 (Address_Ctrl) 的控制字段。此控件使用一个组合框,该组合框链接到一个名为“属性”的单独表。如果下拉框中没有列出属性地址,则用于调出PropertyForm表单输入新属性。之后,它要求获取带有新记录的新列表。制作子表单并更改控件名称后,每当我尝试添加新的属性地址时都会收到错误消息。
运行时错误“2473”:
您作为事件属性设置输入的表达式 On Not in List 产生了以下错误。堆栈空间不足。
'Add Address Form Script
Private Sub Address_Ctrl_NotInList(NewData As String, Response As Integer)
DoCmd.OpenForm "PropertyForm", , , , acFormAdd
Call Address_Ctrl_AfterUpdate
End Sub
'Requery Address List Script
Private Sub Address_Ctrl_AfterUpdate()
Forms!MLSListForm.Dirty = False
Me!Address_Ctrl.Requery
End Sub
它突出显示 Forms!MLSListForm.Dirty = False 行。我试过 Me.Dirty = False 但我得到了同样的错误。如果我完全删除该行,我会收到“运行时错误 '2118':您必须在运行重新查询操作之前保存当前字段。”
将表单作为子表单有助于用户界面,所以我真的不想回到拥有三个单独的表单。任何帮助,将不胜感激。