我正在使用Access 2013,我正在尝试向表中插入行,但我不想要任何重复项。基本上如果表中不存在则输入数据到表。我试图使用“不存在”和“不存在”,目前它仍然没有插入表格。这是我的代码,如果我删除where条件然后它插入表但如果我输入相同的记录它重复。这是我的代码:
INSERT INTO [UB-04s] ( consumer_id, prov_id, total_charges, [non-covered_chrgs], patient_name )
VALUES ([Forms]![frmHospitalEOR]![client_ID], [Forms]![frmHospitalEOR]![ID], Forms![frmHospitalEOR].[frmItemizedStmtTotals].Form.[TOTAL BILLED], Forms![frmHospitalEOR].[frmItemizedStmtTotals].Form.[TOTAL BILLED], [Forms]![frmHospitalEOR]![patient_name])
WHERE [Forms]![frmHospitalEOR]![ID]
NOT IN (SELECT DISTINCT prov_id FROM [UB-04s]);
答案 0 :(得分:0)
您不能在这种SQL中使用WHERE:
INSERT INTO tablename (fieldname) VALUES ('value');
您可以向数据库添加约束,如唯一索引,然后插入将失败并显示错误消息。对于多行可以有多个NULL值,唯一索引可确保具有值的行是唯一的。
要避免出现这类错误消息,您可以先构建一个过程或使用代码检查数据,然后执行某些操作 - 例如插入或取消。
此选择可用于检查数据:
SELECT COUNT(*) FROM [UB-04s] WHERE prov_id = [Forms]![frmHospitalEOR]![ID]
它将返回具有特定值的行数,如果它为0,那么您将重新运行插入。