excel - 有没有办法在出现警告消息框之前检测是否使用 VBA 建立数据连接失败?
问题描述
我担心我要连接的文件中有一个读写锁,因为它正被应用程序使用,如下所示: 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
解决方案
您应该尝试使用以下方法state
检查您的连接:
if ActiveWorkbook.Connections("Query - MS Access File").OLEDBConnection.State <> 1 then
' Your connection is not ready
end if
推荐阅读
- c - 在链表删除功能中,是否必须使用free来删除一个节点?
- node.js - 扳手中的 deleteRows 不能使用 4 个键
- matlab - 如何在绘图的 x 轴中插入单元阵列?
- excel - VBA/Excel:为什么 match() 方法不适用于所有“类型”的范围
- flutter - Flutter:如何将单个单词大写
- c# - 将集合绑定到 ComboBox 和 DataGrid
- java - 使用预设数据模拟 Hibernate @Entity
- tsql - COALESCE TSQL 与连接 tsql
- typescript - TypeScript 未选择过滤器以删除未定义的项目
- xaml - Xamarin 中的 Ivalue 转换器属性