添加新记录而不删除旧记录Ms Access Form

时间:2017-05-14 12:07:16

标签: mysql vba ms-access access-vba

任何人都可以帮助我使用MS Access Form。

我有一个表单,其中有一个按钮来编辑记录。当单击该按钮时,在特定的选定记录中打开一个新表单。如果记录被编辑/更新,则应将其添加为新记录和旧记录应该存在。因为两个表单都与ID链接,所以当我编辑记录时,它更新在我不想要的相同记录中,它应该为它添加新的ID和记录。

任何帮助都将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

此解决方案需要一个新按钮,例如' 克隆'在您的编辑表格上。

打开“编辑表单”。

DoCmd.OpenForm "YourFormName", acNormal, , "[ID]=" & Me!YourSubformName.Form![ID], acFormEdit, acWindowNormal

如果您需要限制编辑现有记录,请在编辑表单的Form_Load事件中,将记录集类型更改为快照:​​

Me.RecordsetType = 2 'Snapshot

当' 克隆'单击按钮:

'Create new record
With CurrentDb.QueryDefs("YourInsertQueryName")
    .Parameters("[prmID]").Value = Me![ID]
    .Execute dbFailOnError
End With

'Filter Form to the newly created record
Dim id_ as Long
    id_ = DMax("ID", "YourTableName")

With Me
    .Filter = "[ID]=" & id_
    .FilterOn = True
    'allow edits
    .RecordsetType = 0 'Dynaset
    .Requery
End With

插入查询:

PARAMETERS [prmID] Long;
INSERT INTO tblCap ( Country, Product, [Year], PType, [Values], Notes, Source, Show, [Current],‌​ EnteredBy, Timestamp,‌​ Sector )
SELECT tblCap.Country, tblCap.Product, tblCap.[Year], tblCap.PType, tblCap.[Values], tblCap.Notes, tblCap.Source, tblCap.Show, tblCap.[Current],‌​ tblCap.EnteredBy, tblCap.Timestamp,‌​ tblCap.Sector
FROM tblCap
WHERE (((ID)=[prmID]));