我一直在修改我的Access数据库来清理它并使其更加用户友好。因此,我一直在更改表单标签和控件的名称,以包含_lbl和_Ctrl,而不是通用名称Access分配它们。以前,我有三种单独的窗体(ListingsForm,ListOffersForm,ListDetailsForm),我可以通过使用按钮调用窗体来访问它们。由于表单与主窗体(ListingsForm)直接相关,我将其中两个窗体更改为子窗体。现在,当我尝试添加记录时,我不断收到错误消息。超出堆栈空间和请求错误
在ListingsForm窗体上,有一个Property Address(Address_Ctrl)的控制字段。此控件使用一个组合框,该组合框链接到名为Properties的单独表。如果该属性地址未在下拉框中列出,则用它调出PropertyForm表单以输入新属性。之后,它会重新获得新记录的新列表。在创建子窗体并更改控件名称后,每当我尝试添加新的属性地址时都会收到错误。
运行时错误“2473”:
表达对不在列表中你输入如事件属性设置产生下面的错误。超出堆栈空间。
'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':您必须在运行Requery操作之前保存当前字段。'
将表单作为子表单有助于用户界面,所以我真的不想回到拥有三种单独的表单。任何帮助,将不胜感激。
我已经添加了事件处理程序我已经有了NotInList。数据库不仅保存地址。该地址还有其他需要通过物业表格输入的数据,即城市,邮编,包裹#,完整地址。我怀疑我需要在NotInList处理程序中放置某种等待线。 – Dragonsen
您的绑定数据将自动保存,无需设置.Dirty = False手动...我们已经使用此程序添加新城市。 – jacouh
如果我删除脏行然后我得到另一个错误,'运行时错误'2118':您必须保存当前字段,然后再运行Requery操作。' .Dirty = False首先保存主要记录,而不是绑定数据。 – Dragonsen