在更新之前检查2列中的重复行

时间:2014-08-22 16:05:16

标签: sql vba access-vba

我有一个包含4列的表,在将行插入数据库之前,我需要检查列对是否存在:

INSERT INTO dbo.tblCallReport_Detail (fkCallReport, fkProductCategory, Discussion, Action) VALUES (?, ?, ?, ?)

有问题的对是fkCallReportfkProductCategory

例如,如果尝试插入的行包含fkCallReport = 3fkProductCategory = 5,并且数据库已经同时具有这两个值,则应显示错误并询问 如果他们想将Disuccsion和Action与当前记录结合起来。

请记住,我在VBA Access 2010中执行此操作并且仍然非常新。

3 个答案:

答案 0 :(得分:1)

只需将它们设置为主键(我认为复合键是正确的术语)。然后,您需要一个独特的组合来添加到表格中。

答案 1 :(得分:0)

我能想到的两个选择:

首先是在数据库本身中创建复合主键。

其次是条件插入。基本上使用select count(*) where fkCallReport=var1 and fkProductCategory=var2和数据库的条件运算符。 MSSqL if Oracle when不确定Access

如果允许设置主键,请使用复合键。更好的练习,让您远离棘手的情况

答案 2 :(得分:0)

您可以在字段fkCallReport和fkProductCategory上添加复合唯一索引。