如何阻止记录在关闭时被覆盖

Posted

技术标签:

【中文标题】如何阻止记录在关闭时被覆盖【英文标题】:How to stop records from being overwritten on close 【发布时间】: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() 事件等运行了一些其他代码?也许,您应该提供有关问题的更多详细信息,以便可以复制它以找到解决方案。 首先你需要决定这应该是一个绑定表单(然后你不需要代码来加载或保存记录),还是一个未绑定 表单(那么除了您的代码之外,什么都不会被覆盖)。 【参考方案1】:

很可能您的表单的 DataSource 属性设置为“tblData”。 因此,在您加载 Form 之后,Form_Load() 事件会触发,并且您会修改在 Form 的 DataSource 属性中设置的 Table 的第一个 Record。

这是修改表单数据的行:Me.txtName = rst!txtName

【讨论】:

以上是关于如何阻止记录在关闭时被覆盖的主要内容,如果未能解决你的问题,请参考以下文章

iphone - 如何防止应用程序在下载数据时被阻止[关闭]

如何阻止 MacOS 更新覆盖我的 auto_master 文件? [关闭]

使用Xcode / Swift或独角兽精灵灰尘在iPad上覆盖(阻止)或关闭iOS

如何通过 VB.NET 自动关闭网站上的覆盖?

Swift:如何防止未显示的 UITableViewCells 在滚动时被关闭

如何让注册用户的加密密码在登录时被接受为普通密码? [关闭]