キー違反が原因で追加クエリが失敗しますが、新しいレコードは 1 つだけです。古いレコードは通常、追加した新しいレコードだけを追加して失敗します。
DoCmd.RunSQL "INSERT INTO [Order_Item] ([Order_ID],[Item_ID],[Quantity]) Values (" & orderNumber & ", [Enter Item ID], [Enter Quantity])"
Order_ID と Item_ID は外部キーです
アクセスするとエラーが発生します。関連するテーブルにないものを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