2012-02-18 128 views
1

我正在使用ADO刪除MS Access 2007數據庫中的記錄,並且完全喪失了爲什麼我的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

你試圖運行一個操作查詢,但使用一個記錄集(它期望一個選擇查詢)。

試試這個:

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 2012-02-20 02:43:48