2012-02-18 33 views
1

私はMS Access 2007データベースのレコードを削除するのにADOを使用していますが、SQLコードでこの構文エラーが発生する理由は全くありません。それはFROM句にエラーがあると主張していますが、私はそれを見ません。同じテーブルを使用して別のモジュールの作業SQL文から直接FROM句を取得しました。私は、新しいクエリのSQLビューにコードを入力して、それは正常に実行されます。コードは次のとおりです。構文From句のエラーADOを使用したレコードの削除

Private Sub cmdDeleteMessage_Click() 

    If MsgBox("Once you delete a message, it cannot be undone." & _ 
    "Are you sure you want to delete this message?", vbYesNo) = vbYes Then 
    Dim sql As String 
    Dim rsDel As New ADODB.Recordset 
    rsDel.CursorType = adOpenDynamic 
    rsDel.LockType = adLockOptimistic 
    sql = "DELETE * FROM [Staff Notes] WHERE [MsgID] = " & Me.txtMsgID.Value & ";" 

    rsDel.Open sql, CurrentProject.AccessConnection, , , adCmdTable 

     With rsDelete 
      .Update 
      .Close 
     End With 
    End If 

End Sub 

アイデアは?前もって感謝します!

答えて

1

アクションクエリを実行しようとしていますが、レコードセット(selectクエリが必要です)を使用しています。

はこれを試してみてください:[のMsgID]が文字列の場合

sql = "DELETE * FROM [Staff Notes] WHERE [MsgID] = " & Me.txtMsgID.Value & ";" 
CurrentProject.AccessConnection.Execute sql, , adExecuteNoRecords 

また、あなたが引用符であなたの価値を同封する必要があります。

sql = "DELETE * FROM [Staff Notes] WHERE [MsgID] = " & Chr$(34) & Me.txtMsgID.Value & Chr$(34) & ";" 
+0

それは働きます!乾杯!私はもともと選択を試みてからレコードを削除し、同じ結果を得ていました。レコードセットにレコードを追加することはできますが、レコードセットを削除することはできません。私が見ることができる唯一の本当の違いは、私が追加したいテーブルを開くためにSQL文を使用しなかったことです。すべての違いをもたらすと思う。とにかく、助けてくれてありがとう! – Eyowzitgoin

関連する問題