首页 > 解决方案 > 有没有办法在出现警告消息框之前检测是否使用 VBA 建立数据连接失败?

问题描述

我担心我要连接的文件中有一个读写锁,因为它正被应用程序使用,如下所示: Locked MS Access File

当我尝试在 MS Excel 中刷新数据连接时,会出现这些错误/通知,因为它无法连接到正在使用的 MS Access 文件:

第一

第二

第三

第 4 名

我想知道VBA是否有办法检测建立数据连接是否失败。我不知道如何处理它,刷新查询的 VBA 代码如下所示:

With ActiveWorkbook.Connections("Query - MS Access File")
    .OLEDBConnection.BackgroundQuery = False
    .Refresh
End With

我的 Excel 数据连接到 Access 文件的连接字符串如下所示:

Provider=Microsoft.ACE.OLEDB.12.0;
User ID=Admin;
Data Source=C:\Users\ACER\Desktop\Test.MDB;
Mode=Share Deny Write;
Extended Properties="";
Jet OLEDB:System database="";
Jet OLEDB:Registry Path="";
Jet OLEDB:Engine Type=5;
Jet OLEDB:Database Locking Mode=0;
Jet OLEDB:Global Partial Bulk Ops=2;
Jet OLEDB:Global Bulk Transactions=1;
Jet OLEDB:New Database Password="";
Jet OLEDB:Create System Database=False;
Jet OLEDB:Encrypt Database=False;
Jet OLEDB:Don't Copy Locale on Compact=False;
Jet OLEDB:Compact Without Replica Repair=False;
Jet OLEDB:SFP=False;
Jet OLEDB:Support Complex Data=False

标签: excelms-accessvba

解决方案


您应该尝试使用以下方法state检查您的连接:

if ActiveWorkbook.Connections("Query - MS Access File").OLEDBConnection.State <> 1 then
   ' Your connection is not ready
end if

推荐阅读