不调用错误处理程序

时间:2016-06-10 16:26:33

标签: vba ms-access error-handling

这是我在Stack Overflow上找到的一段代码,用于检查ms访问数据库中是否存在表

Public Function TableExists(strTableName As String, Optional ysnRefresh As Boolean, Optional db As DAO.Database) As Boolean
' Originally Based on Tony Toews function in TempTables.MDB, http://www.granite.ab.ca/access/temptables.htm
' Based on testing, when passed an existing database variable, this is the fastest
On Error GoTo errHandler
  Dim tdf As DAO.TableDef

  If db Is Nothing Then Set db = CurrentDB()
  If ysnRefresh Then db.TableDefs.Refresh
  Set tdf = db(strTableName)
  TableExists = True

exitRoutine:
  Set tdf = Nothing
  Exit Function

errHandler:
  Select Case Err.Number
    Case 3265
      TableExists = False
    Case Else
      MsgBox Err.Number & ": " & Err.Description, vbCritical, "Error in mdlBackup.TableExists()"
  End Select
  Resume exitRoutine
End Function

但是,由于某些原因,当表strTableName不存在时,仍会弹出错误3265的消息框,而不是处理问题的errHandler。 任何帮助表示赞赏!

0 个答案:

没有答案