任何人都可以帮助我使用MS Access Form。
我有一个表单,其中有一个按钮来编辑记录。当单击该按钮时,在特定的选定记录中打开一个新表单。如果记录被编辑/更新,则应将其添加为新记录和旧记录应该存在。因为两个表单都与ID链接,所以当我编辑记录时,它更新在我不想要的相同记录中,它应该为它添加新的ID和记录。
任何帮助都将不胜感激。
谢谢。
答案 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]));