3

フォームがあり、それに入力し、一部のフィールドを Order という既存のテーブルに保存したいと考えています。私はこのコード行でこれをやろうとしています:

CurrentDb.Execute "INSERT INTO Order (OrderNumber)" & "VALUES (' " & Me.order & " ')"

私もこんな感じでやってみました

CurrentDb.Execute "INSERT INTO Order (OrderNumber)" & "VALUES ( " & Me.order & " )"

しかし、違いはないようです。次のエラーが発生し続けます。

実行時エラー '3134': INSERT INTO ステートメントの構文エラーです。

私は何を間違っていますか?

4

1 に答える 1

3

Orderは予約語です。それをテーブル名として保持する必要がある場合は、db エンジンの混乱を避けるために括弧で囲みます。

Dim strInsert As String
strInsert = "INSERT INTO [Order] (OrderNumber) VALUES ('" & Me.order & "')"
Debug.Print strInsert
CurrentDb.Execute strInsert, dbFailOnError

OrderNumberがテキストではなく数値データ型の場合は、INSERTステートメントからそれらの一重引用符を破棄します。

ステートメントを文字列変数に格納します。次に、 を使用Debug.Printして、エンジンに実行を依頼している完成したステートメントを調べます。Debug.Printイミディエイト ウィンドウに出力が表示されます。Ctrl+g ステートメントをコピーしてそこに移動し、トラブルシューティングのために新しい Access クエリの SQL ビューに貼り付けます。

于 2013-03-03T16:47:53.740 に答える