我试图运行追加查询,但我一直在收到关键违规行为,我认为DelledningID是罪魁祸首,但不知道如何解决这个问题,因为我不应该触及那个或ProjektID。
INSERT INTO ProjektDelledning ( ProjektID, DelledningID, SaneringsmetKode, DatoOprettet, DatoOpdateret )
SELECT ProjektDelledning.ProjektID, ProjektDelledning.DelledningID, NySaneringsData.SaneringsmetodeKode AS SaneringsmetKode, IIf([ProjektDelledning].[DatoOprettet] Is Null,Date$()+" "+Time$(),[ProjektDelledning].[DatoOprettet]) AS DatoOprettet, IIf([ProjektDelledning].[SaneringsmetKode] Is Null,Date$()+" "+Time$(),[ProjektDelledning].[DatoOpdateret]) AS DatoOpdateret
FROM NySaneringsData LEFT JOIN ProjektDelledning ON NySaneringsData.DelledningsID = ProjektDelledning.DelledningID
WHERE (((Exists (SELECT * FROM ProjektDelledning WHERE ProjektDelledning.SaneringsmetKode = NySaneringsData.SaneringsmetodeKode AND ProjektDelledning.DelledningID = NySaneringsData.DelledningsID))=False));
我如何解决这个问题?我尝试从查询中删除Projekt ID和DelledningID,但这会产生验证错误。
答案 0 :(得分:0)
你正在接近这个错误。如果没有"有效"您无法在ProjektDelled中插入新记录。 PROJECT_ID。您没有有效的project_id,也无法从现有记录中窃取它,因为您将创建重复记录并点击验证错误。
假设您的NySaneringsData只有唯一的delledningid, 尝试更新ProjektDelledning表。类似的东西。
update
ProjektDelledning INNER JOIN ProjektDelledning ON NySaneringsData.DelledningsID = ProjektDelledning.DelledningID
set
ProjektDelledning.SaneringsmetKode = NySaneringsData.SaneringsmetKode ,
ProjektDelledning.DatoOprettet = nz(ProjektDelledning.DatoOprettet, now()),
ProjektDelledning.DatoOpdateret = nz(ProjektDelledning.DatoOpdateret, now())
WHERE ( if any further conditions needed);
如果NySaneringsData有重复的delledningsid,那么您需要确定要接管哪条记录。