訪問都將引發錯誤重。當您通過不在相關表格中的sql將某些內容插入到FK中時發生密鑰違例。主鍵違規可能也會出現類似的錯誤。
下面是一些代碼(您需要適應您的模型)來檢查相關表中存在的鍵,並且在插入之前映射表中「映射」不存在。
Select Case True
Case IsNull(DLookup("[ID]", "Table1", "[ID]=" & num1))
MsgBox ("ID does not exist in Table1")
Case IsNull(DLookup("[ID]", "Table2", "[ID]=" & num2))
MsgBox ("ID does not exist in Table2")
Case Not (IsNull(DLookup("[ID1]", "Map", "[ID1]=" & num1 & "And [ID2]=" & num2)))
MsgBox ("Mapping already exists")
Case Else
DoCmd.RunSQL "INSERT INTO [Map] VALUES (" & num1 & ", " & num2 & ")"
End Select
密鑰違規將表明您正試圖插入已使用的主密鑰。外鍵不重要。檢查你的主鍵值 – Hazaart
你的表結構是什麼樣的?你有一個獨特的(自動遞增)鍵字段嗎?或者你的主鍵是什麼樣的?該組合是否試圖添加到那裏(所以它真的是一個重要的違規行爲) –
此代碼容易受到SQL注入攻擊。你實際上乞求被黑客入侵。 –