我有一个excel宏。宏正在连接到Oracle以获取数据。 此提取可能会也可能不会打开多个连接(具体取决于用户在宏内编码的方式)。
是否可以了解在excel vba中打开的Oracle连接?要么 我重新提出我的问题:是否可以知道在VBA脚本中从Excel宏打开了多少个连接?
连接代码:
Public Const CONNECT_STRING = "Provider=MSDAORA.1;Password=XXXX;User ID=XXXXX;Data Source=XXXXX;Persist Security Info=True"
Dim conn As ADODB.Connection
conn.Open CONNECT_STRING
MsgBox Application.ActiveWorkbook.Connections.Count
计数仍为0
答案 0 :(得分:1)
答案是否定的......是的。
没有内置任何内容来跟踪您对特定数据库打开的ADODB连接数。如果需要,你必须自己跟踪这个。
您可以在创建集合时将每个连接添加到集合中,然后在返回计数之前编写一个函数来检查两件事。
Nothing
通过检查connection's state property。
,确保连接处于打开状态Dim conn As ADODB.Connection
For Each conn in someCollection
If Not conn Is Nothing Then
If conn.State <> adStateClosed Then
count = count + 1
End If
End If
Next conn
您可以自行了解如何实际跟踪项目中的所有连接。