0

キー違反が原因で追加クエリが失敗しますが、新しいレコードは 1 つだけです。古いレコードは通常、追加した新しいレコードだけを追加して失敗します。

DoCmd.RunSQL "INSERT INTO [Order_Item] ([Order_ID],[Item_ID],[Quantity]) Values (" & orderNumber & ", [Enter Item ID], [Enter Quantity])"

Order_ID と Item_ID は外部キーです

4

2 に答える 2

0

アクセスするとエラーが発生します。関連するテーブルにないものを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
于 2013-05-30T14:57:08.000 に答える