• 締切済み

リスト外入力(NotInList)時のイベント

こんにちは。 コンボボックスのリスト外入力(NotInList)時のイベントについて教えてください。 ボックスに新しい値を入力した時、 ↓ ”「新しい値」 is not currently in the database. Would you like to add it?”というYesとNoのボタンを設けたメッセージボックスを表示。 ↓ Noを押した時→戻る。 Yesを押した時→値ソースであるテーブルに新しい値を自動で追加→リストの編集フォームを開く→追加されたレコードまでカーソルを持っていく(追加情報を入力する為)。 という動作を行いたいのです。 Private Sub Vendor_Name_NotInList(NewData As String, Response As Integer) Dim rc As Integer rc = MsgBox(NewData & " is not currently in the database. Would you like to add it?", vbQuestion + vbYesNo, "Vendor Info not available") Select Case rc Case vbYes Response = acDataErrAdded DoCmd.SetWarnings False DoCmd.RunSQL "INSERT INTO Vendors (Vendor_Name) SELECT """ & NewData & """;" DoCmd.SetWarnings True DoCmd.OpenForm "Vendors_Editor", acFormDS Forms("Vendors_Editor").Recordset.FindFirst "Vendor_Name = '" & NewData & "'" Case vbNo Response = 0 End Sub と書いていますが、 DoCmd.RunSQL "INSERT INTO Vendors (Vendor_Name) SELECT """ & NewData & """;" のところで、 Run-Time Error 3134 - Syntax Error in Insert Into Statement というエラーメッセージが出て、同時に、 The text you entered isn't an item in the list. Do you want to edit the items in the list? というメッセージが出ます。(SetWarnings Falseが効かない?) 原因が分からないので教えて頂けると幸いです。

みんなの回答

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.3

Vendorsのテーブル設計でVendor_Nameのインデックスプロパティに重複なしとして DoCmd.SetWarnings False DoCmd.RunSQL "INSERT INTO Vendors (Vendor_Name) SELECT NewData;" DoCmd.SetWarnings True で重複するデータははじかれるのでこれでも宜しいかと

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.2

文字列内の 「”」は 「””」とします。 DoCmd.RunSQL "INSERT INTO Vendors (Vendor_Name) SELECT """ & NewData & """;" は DoCmd.RunSQL "INSERT INTO Vendors (Vendor_Name) SELECT "”””"" & NewData & "”””"";" これは DoCmd.RunSQL "INSERT INTO Vendors (Vendor_Name) SELECT NewData ;" と同じだから DoCmd.RunSQL "INSERT INTO Vendors (Vendor_Name) SELECT "”"” & NewData & "””";" かな 「’」との組合せは についてはどうですか、体験がありません

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

> "INSERT INTO Vendors (Vendor_Name) SELECT """ & NewData & """;" ではなく、 "INSERT INTO Vendors (Vendor_Name) VALUES ('" & NewData & "');" では?

関連するQ&A