你的编号字段为主键,唯一值;所以你的更新得以编号为条件。正常情况下,你的编号应当是不变的。如果都变了,那应当是条新记录,而不是修改了。
Private Sub cmd_save_Click()
Dim strsql As String
strsql = "UPDATE tbl_person SET tbl_person.序号 = [forms]![frm_person]![序号1], tbl_person.单位 = [forms]![frm_person]![单位1], tbl_person.姓名 = [forms]![frm_person]![姓名1], tbl_person.身份证号 = [forms]![frm_person]![身份证号1], tbl_person.出生年月 = [forms]![frm_person]![出生年月1], tbl_person.性别 = [forms]![frm_person]![性别1], tbl_person.政治面貌 = [forms]![frm_person]![政治面貌1], tbl_person.学历 = [forms]![frm_person]![学历1], tbl_person.参加工作时间 = [forms]![frm_person]![参加工作时间1], tbl_person.进入机关时间 = [forms]![frm_person]![进入机关时间1], tbl_person.职务 = [forms]![frm_person]![职务1], tbl_person.职级 = [forms]![frm_person]![职级1], tbl_person.机关 = [forms]![frm_person]![机关1], tbl_person.身份 = [forms]![frm_person]![身份1], tbl_person.转退 = [forms]![frm_person]![转退1], tbl_person.备注 = [forms]![frm_person]![备注1] WHERE (((tbl_person.编号)=[forms]![frm_person]![编号1]));"
DoCmd.SetWarnings False
DoCmd.RunSQL strsql
'DoCmd.RunSQL "UPDATE tbl_person SET tbl_person.编号 = [forms]![frm_person]![编号1],tbl_person.序号 = [forms]![frm_person]![序号1],tbl_person.单位 = [forms]![frm_person]![单位1],tbl_person.姓名 = [forms]![frm_person]![姓名1],tbl_person.身份证号 = [forms]![frm_person]![身份证号1],tbl_person.出生年月 = [forms]![frm_person]![出生年月1],tbl_person.性别 = [forms]![frm_person]![性别1],tbl_person.政治面貌 = [forms]![frm_person]![政治面貌1],tbl_person.学历 = [forms]![frm_person]![学历1],tbl_person.参加工作时间 = [forms]![frm_person]![参加工作时间1], tbl_person.进入机关时间 = [forms]![frm_person]![进入机关时间1],tbl_person.职务 = [forms]![frm_person]![职务1],tbl_person.职级 = [forms]![frm_person]![职级1],tbl_person.机关 = [forms]![frm_person]![机关1],tbl_person.身份 = [forms]![frm_person]![身份1],tbl_person.转退 = [forms]![frm_person]![转退1],tbl_person.备注 = [forms]![frm_person]![备注1];"
Me.frm_person_child.Requery
DoCmd.SetWarnings True
End Sub