Sql Access-检查插入后另一个表中是否存在值

Sql Access-检查插入后另一个表中是否存在值,sql,ms-access,ms-access-2013,Sql,Ms Access,Ms Access 2013,我有一个带有字段“Name”的表。当我在该字段中插入一个新值时,我需要检查它是否存在于另一个表中(相同的字段,“名称”),如果不存在,我需要它在该表中创建一个插入值的新行 例如: First Table Second Table Name Cost Name Cost John 1000€ John 1200€ John 20

我有一个带有字段“Name”的表。当我在该字段中插入一个新值时,我需要检查它是否存在于另一个表中(相同的字段,“名称”),如果不存在,我需要它在该表中创建一个插入值的新行

例如:

First Table                        Second Table

Name     Cost                      Name     Cost
John     1000€                     John     1200€
John      200€                     James    2000€
James    2000€
例如,如果我尝试在第一个表中插入“Mark”,因为它不在第二个表中,它会在第二个表中添加一个新行,因此结果是

Second Table

Name     Cost
John     1200€
James    2000€
Mark     0€
检查在“名称”字段上


是实际的数据库,但它是意大利语的。表单“Commesse”有一个按钮“aggiungi cliente”,我在这里写一个新名字,然后用“Salva cliente”保存它。我需要其他三个表和相关表单更新“Nome_Cliente”字段。

在第一个表上插入后数据宏很容易做到这一点:

有关数据宏的详细信息,请参见:


除非您试图通过表单添加此记录,否则可能无法实现此目的。请提供架构。使用
DCount
和查询是可能的,因为您知道要在查询中查找什么参数。@PaulFrancis是的,我将新值插入表单(cc:@PaulFrancis)您考虑过在第一个表上使用After insert吗?@PaulFrancis我几乎从不使用“常规”宏(一直处于Access中的)但事件驱动的数据宏(自Access 2010年以来新增)具有在表级别定义的优势,因此无论表是如何更新的,它们都有效,例如,通过任何形式、SQL语句、记录集更新,甚至通过在数据表视图中打开表。我只是在想,如果我们使用beforeensert而不是AfterInsert会更好吗?@PaulFrancis After Insert在这种情况是因为我们只想在第一个表的插入成功的情况下将行添加到第二个表中。即使插入最终不成功,也会触发Before Change(例如,由于外键约束冲突,在Before Change宏运行后取消插入).啊!更有意义。可能我没有给OP的问题提供更多的细节。你的解释更有意义。谢谢你。+1:)