我使用的是access 2016年库存数据库,它不会超过20000条记录。我使用管理库存所需的多选字段更新了inventory表,在添加新记录和使用表窗体中的添加和更新宏更新现有记录方面,一切都运行正常。
现在,我希望能够创建现有记录的副本,进行更新,然后将其保存到相同的库存表中,这样我就有了更新部件的历史数据,然后将表单更新为仅显示最新记录
我对访问和编码非常陌生,所以我确信我打破了某种建模规则,并尝试了以下方法来使其工作,但没有成功:
*在同一个表中创建更新的记录*创建追加查询,但access不支持多个选择字段*创建一个宏来复制和粘贴现有记录,以更新记录的新版本并将其粘贴到inventory表中(宏中似乎不支持复制和粘贴)*创建一个VBA来创建现有记录的副本,我可以使用它来创建副本,但这只在我对记录进行更新之后才有效,这意味着我只剩下两个更新记录的副本,而不是原始和更新后的记录
*过滤窗体以仅显示最新记录*不知道从哪里开始!
发布于 2020-04-22 12:08:35
这可能对你有用。这可能不是最优雅的解决方案,但这是我能想到的最好的解决方案,而不需要更多的上下文。
您需要一个不同的主键ID字段,该字段不是inventory表中的自动编号。您可以使用选择的任何方法(例如,表单上的按钮)将数据从当前记录复制到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的记录
您有可以单独查询的遗留数据,以及表单中唯一可见的新数据。
https://stackoverflow.com/questions/61343035
复制相似问题