我需要检查Access数据库中是否存在查询名称...来自Excel。
我已经从Access中找到了很多方法,但Excel中没有任何方法。我宁愿让它使用后期绑定。
我正在连接数据库,然后尝试用SQL字符串打开一个记录集...如果查询不存在,则会弹出错误
Run-time error '-2147217900(80040e14)': Syntax error in FROM clause.
我需要能够在没有用户交互的情况下捕获该错误...我尝试先添加Application.DisplayAlerts = False
,但这并没有停止弹出...或者我需要能够检查该查询名称的数据库。
我在函数的开头有一个On Error GoTo
语句,但是永远不会被触发,因为弹出窗口只允许End或Debug ...我不希望用户能够调试..他们不知道他们在做什么......或者这个错误首先不会发生。如果它们结束,那么......错误没有得到修复,工作簿就会爆炸。
我也尝试过这个......
Dim rs As Object, oCon As Object, db As Object, qdf As Object
Dim wsImport As Worksheet
Dim sSQL As String
On Error GoTo Err_VQ
Set wsImport = Sheets("Import")
Set oCon = MakeConnection
Set db = CreateObject("DAO.DBEngine.120").OpenDatabase(ThisWorkbook.Path & "\DB.accdb")
Application.DisplayAlerts = False
Set qdf = db.querydefs(wsImport.[H1]) '<---- Run time error on this line
'wsImport.[H1] contains the query name
但是我仍然可以弹出run time error 3265 Item not Found in Collection
...这很好......但是如何抑制弹出?
编辑 - “很好”我的意思是这是我所期望的错误,因为查询名称不存在...但我需要知道如何抑制错误并使用它代码内部。