ms-access
  • error-handling
  • 2014-03-06 171 views 1 likes 
    1

    我寫了一個小小的SQL命令來糾正表中的一個字段,因爲它太小了(也許我有點傲慢)我沒有運行它甚至一次,只是把它放到更新包爲不同的用戶。錯誤的MS Access崩潰

    Dim SQL As String 
    Dim rs As DAO.Recordset 
    On Error GoTo errhandler 
    
    
    SQL = "UPDATE Table1 SET Name = 'Calender' WHERE Name = 'Clalender'" 
    CurrentDb.Execute 
    
    errhandler: 
    Exit Sub 
    

    這就是爲什麼我沒有注意到它應該是

    CurrentDb.Execute (SQL) 
    

    當用戶startet此命令訪問說過類似「嚴重錯誤」,並關閉。

    錯誤處理沒有發現錯誤?爲什麼沒有訪問告訴我有什麼缺失,當我寫它?通常它與此相當迂腐。

    謝謝

    回答

    1

    CurrentDb.Execute 
    

    將無法​​編譯語句。

    Compile error: Argument not optional.

    您的受害者;)在嘗試運行代碼時觸發了錯誤,該代碼觸發了「即時」編譯。在你的代碼中陷入錯誤將無法處理,因爲你的代碼永遠沒有機會運行(因爲它不會編譯)。

    換句話說,訪問已經得到了你所有的迂腐,如果你曾試圖運行(或至少編譯)你的代碼.... :)

    +0

    不錯的答案,謝謝:) – Martin

    0

    嘗試壓縮並修復數據庫。

    如果這不起作用,請創建一個新的空數據庫並從有問題的數據庫中導入所有對象。也許,你可以每次導入一些對象來確定哪個是被破壞的對象(如果有的話)。有時Access有這種行爲,並且沒有任何壞對象。

    +0

    數據庫就可以了。重新啓動後,一切仍然在原地。我只是想知道爲什麼我的錯誤處理沒有工作。 – Martin

    相關問題