2013-07-23 93 views
1

可以通過查詢窗口中的標準SQL DELETE命令輕鬆刪除MS Access數據庫表中的許多記錄。 但是,當試圖通過VBA執行相同的命令時,當有超過20,000條記錄要刪除時,該應用程序可能會阻塞。如何使用VBA刪除MS Access中的大量記錄

我暫時解決了這個問題,通過運行一個循環並以較小的「塊」形式執行DELETE作業,但我想知道是否有更好的方法來處理這種情況。 順便說一下,不,對於更強大的數據庫沒有其他選擇。這項工作是專爲MS Access,期間。

回答

2

您希望ADO DB的adAsyncExecute異步運行您的命令。

  • 打開Access數據庫
  • Alt鍵 + F11打開VBA編輯
  • Tools菜單中選擇References...
  • 添加 「Microsoft ActiveX數據對象6.1庫」 或任何最新版本是

然後使用下面的代碼荷蘭國際集團:

Dim sSql As String 
Dim oCmd As ADODB.Command 
sSql = "DELETE FROM TableName WHERE 1=1" 
Set oCmd = New ADODB.Command 
With oCmd 
    .ActiveConnection = CurrentProject.Connection 
    .CommandType = adCmdText 
    .CommandText = sSql 
    .Execute adAsyncExecute 
End With 

編輯:另一種選擇是運行在另一種形式的查詢,只要確保形式並不總是在上面,你可以執行其他形式的Load事件查詢。

相關問題