- 締切済み
リスト外入力(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が効かない?) 原因が分からないので教えて頂けると幸いです。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- chayamati
- ベストアンサー率41% (260/624)
- chayamati
- ベストアンサー率41% (260/624)
文字列内の 「”」は 「””」とします。 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)
> "INSERT INTO Vendors (Vendor_Name) SELECT """ & NewData & """;" ではなく、 "INSERT INTO Vendors (Vendor_Name) VALUES ('" & NewData & "');" では?