Синтаксическая ошибка в предложении From Удаление записи с помощью ADO - PullRequest
1 голос
/ 18 февраля 2012

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

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 Ответ

1 голос
/ 18 февраля 2012

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

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

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) & ";"
...