【发布时间】:2019-08-30 04:24:27
【问题描述】:
在我的第二台笔记本电脑上使用 Microsoft Access Runtime 2016 从 Excel 执行 VBA 程序以连接到 Access 数据库时,VBA 程序似乎冻结了几秒钟的处理,崩溃并关闭了 Excel 应用程序而不触发错误处理程序我的代码,所以没有错误信息让我破译。可能是什么问题或如何捕获错误? 这个 VBA 应用程序在我的第一台笔记本电脑上运行良好,它拥有完整版的 Access,没有任何问题。在我加载 Microsoft Access Runtime 2016 之前,第二台笔记本电脑正在工作。我正在使用一个名为“MDB Plus”的数据库应用程序,它可以读取 Access 数据库文件,但现在它不再工作了。
我正在使用以下内容: 操作系统:Windows 10, 微软办公室:2007, MS Access 运行时 2007-2016, Excel VBA 2007
要尝试解决此问题,我:1.) 卸载 MS Access Runtime 2016 并且 Excel 应用程序仍然崩溃,2.) 安装 MS Access Runtime 2007 并且 Excel 应用程序仍然崩溃。
这是我的代码:
Sub TestGetTblPrimKey()
Dim oDBConn As ADODB.Connection
Dim sDBConnString As String
Dim moDBTblRecordSet As ADODB.Recordset
Const sDBTableLocPath As String _
= "C:\Users\kmass\AppData\Roaming\InvestManager\"
'
On Error GoTo ERROR_HANDLER
'
'Create Database connection
Set oDBConn = New ADODB.Connection
'Create Table Record-Set
Set moDBTblRecordSet = New ADODB.Recordset
'Build DB connection string
sDBConnString = _
"Provider=" & "Microsoft.ACE.OLEDB.12.0" & ";" _
& "Data Source='" _
& sDBTableLocPath _
& "tMeta_Table_Master.accdb" & "'"
'Open Database Table and Record-Set
oDBConn.Open sDBConnString '* <--CRASHES HERE
'
' Call ... the rest of the code to get record key
'
TestGetTblPrimKeyExit:
oDBConn.Close
'Release Table Objects
Set moDBTblRecordSet = Nothing
Set oDBConn = Nothing
Exit Sub
'
ERROR_HANDLER:
Debug.Print Err.Number & vbCrLf & Err.Description
Resume TestGetTblPrimKeyExit
'
End Sub
我希望代码能够连接到 Access 数据库。
【问题讨论】: