我有一個訪問數據庫,它有從另一個訪問數據庫鏈接到它的表以保存數據。每天,實驗室管理員通過單擊按鈕來運行一個進程,該進程將數據從該數據庫傳輸到MS SQL Server數據庫,然後從Access數據庫中刪除數據。我繼承了這些數據庫,沒有時間或權力來改變數據庫結構,我們將用一個新的LIMS完全取代訪問數據庫,我們正在明年購買和實施該LIMS。訪問vba SQL刪除查詢現在停滯並且在工作幾個月後從未執行
我的問題是,其中一個DELETE SQL查詢已停止執行。每當我執行這個查詢時,數據庫都會掛起(讓它長達20分鐘),直到我拉起任務管理器並終止應用程序。我試圖將SQL查詢從VBA環境中取出,並通過MS Access查詢運行它,並獲得相同的結果。所以基本上它工作了很長一段時間(去年八月感覺),現在它已停止工作。
這裏是DELETE語句的SQL命令:然後就是SQL字符串是通過VBA函數執行
strSQL = "DELETE [TableName].* " _
& "FROM [TableName] " _
& "WHERE [TableName].[Run ID] NOT IN (SELECT [Run ID] FROM [SecondTableName] " _
& "WHERE [Run ID] IS NOT NULL)"
。我們在這個程序和數據庫的其他地方使用這個函數幾十次,所以我知道它不是這樣。我也知道上面的SQL的工作原理是因爲它工作了一年多,現在當我運行該語句時數據庫掛起。表中沒有無效的數據信息正在從中刪除,我們先檢查了這一點。我們也嘗試過對數據庫進行壓縮和修復,因爲我們擔心這是數據庫中的一種腐敗現象,儘管這並不排除可能出現的情況。
感謝您的幫助,如果您有任何問題可以幫助您更好地瞭解此問題,請告知我們。
我假設你已經嘗試過一個'SELECT'版本的數據集,你試圖刪除併成功得到這個?兩個表中的記錄數量都發生了顯着變化? – ashareef 2014-11-05 21:56:28
@ashareef是的,我可以打開表格,然後我可以一次刪除一行或多行選擇。對不起,這是我應該添加到最初問題的重要信息。 – DotN3TDev 2014-11-06 14:47:38