Microsoft Access 掲示板

Error#: 3134 INSERT INTO ステートメントの構文エラーです。 / 12

20 コメント
views
4 フォロー
12
wazawaza 2022/06/17 (金) 11:09:57

お二方、ありがとうございます!
まずは、hatenaさん。
ご提案の文を使わせていただいたところ、T_依頼にはレコードが入りますが、

Private Sub btn追加_Click()
    If IsNull(Me.依頼者.Value) Or IsNull(Me.希望処置.Value) _
    Or IsNull(Me.W_No.Value) Then
      MsgBox "必要項目が入力されていません", vbInformation, "確認"
      Exit Sub
    End If
    
    Dim rs As DAO.Recordset, fld As DAO.Field
    Set rs = CurrentDb.OpenRecordset("T_依頼")
    rs.AddNew
    rs("依頼ID").Value = Me.依頼ID.Value
    rs("依頼日").Value = Me.依頼日.Value
    rs("依頼者").Value = Me.依頼者.Value
    rs("W_No").Value = Me.W_No.Value 'コンボボックスの連結列をフィールドのデータと合うものにしておく
    rs("W_Noロット").Value = Me.W_Noロット.Value
    rs("品名").Value = Me.品名.Value
    rs("希望処置").Value = Me.希望処置.Value
    rs("補足説明").Value = Me.補足説明.Value
    rs.Update
    rs.Close
    
    Set rs = CurrentDb.OpenRecordset("T_依頼詳細")
    Dim i As Long
    For i = 1 To 10
      If Not IsNull(Me("依頼理由_1" & i).Value) Then
        rs.AddNew
        For Each fld In rs.Fields
           fld.Value = Me("詳細ID" & i).Value
           fld.Value = Me("ロット番号" & i).Value
           fld.Value = Me("ロット枝" & i).Value
           fld.Value = Me("依頼理由_1" & i).Column(1)
           fld.Value = Me("依頼理由_2" & i).Column(1)
           fld.Value = Me("依頼理由_3" & i).Column(1)
           fld.Value = Me("巻き長さ" & i).Value
           fld.Value = Me("詳細補足説明" & i).Value
           fld.Value = Now
        Next
        rs.Update
      End If
    Next i
    rs.Close

    MsgBox "追加しました", vbInformation, "完了"
End Sub

子レコード側を入力したのち、追加ボタンを押すと
実行時エラー’3022’インデックス、主キー、またはリレーションで重複する値が、、、
が表示され、下記がエラーとなりました。

Dim rs As DAO.Recordset, fld As DAO.Field
    Set rs = CurrentDb.OpenRecordset("T_依頼")
    rs.AddNew
    rs("依頼ID").Value = Me.依頼ID.Value
    rs("依頼日").Value = Me.依頼日.Value
    rs("依頼者").Value = Me.依頼者.Value
    rs("W_No").Value = Me.W_No.Value 'コンボボックスの連結列をフィールドのデータと合うものにしておく
    rs("W_Noロット").Value = Me.W_Noロット.Value
    rs("品名").Value = Me.品名.Value
    rs("希望処置").Value = Me.希望処置.Value
    rs("補足説明").Value = Me.補足説明.Value
    rs.Update   '←ここでエラー
    rs.Close

よろしくお願いします!

通報 ...