在我的Access数据库中,我有两个表:
表1:
PersNum Name Surname
2321 Lenora Springer
2320 Donya Gugino
3326 Leland Wittmer
4588 Elmer Mcdill
表2:
PersNum Name Surname
2321 Lenora Farney
2320 Donya Willimas
3326 Leland Wittmer
4588 Maya Mcdill
7785 Yolanda Southall
1477 Hailey Pinner
我需要找到一种检查个人号码的方法(字段" PersNum"),如果PersNum存在,请更新Table1中的Name和Surname。如果PersNum不存在,请在Table1中插入新行。
预期结果:
PersNum Name Surname
2321 Lenora Farney (updated surname)
2320 Donya Willimas (updated surname)
3326 Leland Wittmer (without change)
4588 Maya Mcdill (without change)
7785 Yolanda Southall (new person)
1477 Hailey Pinner (new person)
我正在寻找基于SQL / VBA / DAO / ADO的任何解决方案。
答案 0 :(得分:1)
一个选项是" upsert"或组合追加/更新查询。
来自Smart Access的这个旧提示是我的最爱之一:
使用一个查询更新和附加记录
作者:Alan Biggs
您是否知道可以在Access中使用更新查询 同时更新和添加记录?如果你有这个,这很有用 表的两个版本,tblOld和tblNew,并且您想要集成 从tblNew到tblOld的变化。
请按照以下步骤操作:
创建更新查询并添加两个表。通过将tblNew的关键字段拖到tblOld的匹配字段来加入这两个表。
双击关系并选择包含来自tblNew的所有记录的连接选项以及仅包含来自tblNew的记录的连接选项 tblOld。
从tblOld中选择所有字段并将它们拖到QBE网格上。
对于每个字段,在tblNew.FieldName中的“更新到”单元格类型中,其中FieldName与tblOld的字段名称匹配。
从“视图”菜单中选择“查询属性”,并将“唯一记录”更改为“假”。 (这会关闭SQL中的DISTINCTROW选项 视图。如果你留下这个,你只能获得一个空白记录 结果,但您希望添加每个新记录的一个空白记录 to tblOld。)
- 醇>
运行查询,您将看到对tblNew的更改现在位于tblOld中。
这只会添加已添加到tblNew的tblOld记录。 在tblNew中没有出现的记录仍将保留在tblNew中 tblOld。