2012-02-18 4 views
1

Я использую ADO для удаления записи в моей базе данных MS Access 2007 и полностью потеряю, почему я получаю эту синтаксическую ошибку для своего кода SQL. Он утверждает, что в предложении FROM есть ошибка, но я этого не вижу. Я взял предложение FROM непосредственно из рабочей инструкции SQL в другом модуле, используя ту же таблицу. Я ввел код в SQL View нового запроса, и он работает отлично. Вот код:Ошибка синтаксиса From 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

Вы пытаетесь запустить запрос на действие, но используете набор записей (который ожидает запрос выбора).

Попробуйте это:

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

Кроме того, если [MsgID] является строкой, то вам необходимо заключите значение в кавычки:

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

Это работает! Ура! Сначала я попробовал выбор, а затем удалил запись и получил тот же результат. Я все еще смущен тем, почему я могу добавлять записи в набор записей, но не могу их удалить. Единственное реальное различие, которое я вижу, это то, что я не использовал инструкцию SQL, чтобы открыть таблицу, которую я хотел добавить. Полагаю, что все имеет значение. В любом случае спасибо за помощь! – Eyowzitgoin