2014-09-29 77 views
0

只是想刪除Access表中的所有行:通過VB.NET MS-訪問執行delete命令不刪除記錄

Private Sub btnImport_Click(sender As Object, e As EventArgs) Handles btnImport.Click 

    'Clear old records from extract table 
    Dim sqlConnection As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\CLI_CRVM.accdb") 
    Dim cmd As New System.Data.OleDb.OleDbCommand() 
    Dim intRC As Integer 

    cmd.CommandType = System.Data.CommandType.Text 
    cmd.CommandText = "DELETE * FROM [extract] ;" 
    cmd.Connection = sqlConnection 

    sqlConnection.Open() 
    intRC = cmd.ExecuteNonQuery() 
    sqlConnection.Close() 
    MsgBox(intRC) 
End Sub 

我沒有得到任何錯誤,但它不會刪除行也是。目前表中有10行,MsgBox每次點擊該按鈕時顯示10,之後表中仍有10行。

我錯過了什麼?

回答

3

嘗試沒有星號:

DELETE FROM [extract]; 

你一般不提供任何列在DELETE。之後,您只能通過WHERE子句提供要匹配行的列。

有SQL的某些方言,讓你指定你在查詢部分刪除的內容門檻 - 但是,我不相信訪問方言做(我可能是錯的)。

+0

事實上MS Access在'DELETE'命令中支持'*'。 http://msdn.microsoft.com/en-us/library/bb177896(v=office.12).aspx – 2014-09-29 13:02:16

+0

謝謝!就是這樣。 – user3850146 2014-09-29 13:02:31

+0

@Caffé顯然不是在2010年(由OP標記)。有趣的是,雖然。感謝您的鏈接! – 2014-09-29 13:03:27