我担心的是我想要连接的文件中有一个读写锁,因为它正被一个应用程序使用,如图所示:Locked MS Access File
当我尝试刷新MS Excel中的数据连接时,会发生这些错误/通知,因为它无法连接到正在使用的MS Access文件:
我想知道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
在VBA中,.IsConnected
是一个布尔属性,其工作方式如下:
If ActiveWorkbook.Connections("Query - MS Access File").OLEDBConnection.IsConnected Then
它有助于查看VBA内置库,按Ctrl + Space并查找有意义的内容:
您应该尝试使用方法state
来检查您的连接:
if ActiveWorkbook.Connections("Query - MS Access File").OLEDBConnection.State <> 1 then
' Your connection is not ready
end if