需要在同一Access表中创建记录的副本,然后更新数据

问题描述 投票:0回答:1

我正在使用Access 2016库存数据库,该数据库的大小不会超过20000条记录。我使用管理库存所需的多个选择字段更新了库存表,并且在使用表表单中的添加和更新宏添加新记录和更新现有记录方面,一切工作正常。

现在,我希望能够创建现有记录的副本,进行更新,然后将其保存到相同的库存表中,这样我就可以获得更新零件的历史数据,然后更新表格以仅显示最新记录。

我对访问和编码非常陌生,因此我确定自己正在打破某种建模规则,并尝试了以下操作以使其无法成功使用:

***在同一表中创建更新的记录*创建追加查询,但访问不支持多选择字段*创建一个宏以复制并粘贴现有记录以将记录的新版本更新并粘贴到清单表中(宏中似乎不支持复制和粘贴)*创建一个VBA来创建现有记录的副本,我可以使用它来创建副本,但这仅在对记录进行更新后才有效,这意味着我只剩下两份更新记录,而不是原始记录和更新记录

***过滤表单以仅显示最新记录*不知道从哪里开始!

ms-access access-vba access
1个回答
0
投票

这可能对您有用。在没有更多上下文的情况下,它可能不是最优雅的解决方案,但却是我能想到的最好的解决方案。

您需要一个独特的主键ID字段,该字段不是库存表上的自动编号。您可以使用任意选择的方法(例如,表单上的按钮)将当前记录中的数据复制到ID字段大于20000的新记录中。

recid = DMax("ID", "tblInventory") + 1
If recid < 20001 then
    recid=20001
End if
mySQL = "INSERT INTO tblInventory (recid, field2, etc.) VALUES (" & recid & ", '" & _
        txtField1.Value & "','" & txtField2.Value & "," & etc.
CurrentDB.Execute mySQL

,然后使用新数据编辑现有记录。

当您的表单加载具有查询时,它仅基于查找低于20000的记录

您拥有可以分别查询的旧数据,而新数据将是表格中唯一看到的内容。

© www.soinside.com 2019 - 2024. All rights reserved.