【发布时间】:2019-03-25 18:58:37
【问题描述】:
当我关闭表单时,当前记录会覆盖表中的第一条记录。如果我在关闭表单之前包含“Me.Undo”,则表单上的数据会更改,但基础表中不会更改。我怎样才能阻止这两种情况发生?
Private Sub Form_Load()
Dim strSelect As String
strSelect = "SELECT * FROM tblData ORDER BY tblData.txtName;"
Set dbs = CurrentDb()
Set rst = dbs.OpenRecordset(strSelect, dbOpenDynaset)
rst.MoveFirst
Me.txtName = rst!txtName
Private Sub btnClose_Click()
'Me.Undo
MsgBox " "
DoCmd.Close acForm, "frmdata", acSaveNo
我想关闭而不显示另一条记录并且不覆盖表中的另一条记录。
【问题讨论】:
-
好吧,您编写代码的方式似乎有问题。您是否为 `On_Current() 事件等运行了一些其他代码?也许,您应该提供有关问题的更多详细信息,以便可以复制它以找到解决方案。
-
首先你需要决定这应该是一个绑定表单(然后你不需要代码来加载或保存记录),还是一个未绑定 表单(那么除了您的代码之外,什么都不会被覆盖)。