2015-01-09 1 views
1

나는 엑셀 매크로를 가지고있다. 매크로가 데이터를 가져 오기 위해 Oracle에 연결 중입니다. 이 가져 오기는 둘 이상의 연결을 열 수도 있고 열지 않을 수도 있습니다 (사용자가 매크로를 코딩 한 방법에 따라 다름).Excel VBA에서 몇 개의 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

"VBA 스크립트에서 매크로가 엑셀에서 얼마나 많이 열렸습니까?"- 왜 중요합니까? –

+1

은 ActiveWorkbook.Connections 개체에 있습니까? –

+0

그것은 Oracle 데이터베이스에 어떻게 연결합니까? 우리는 당신의 코드를 볼 필요가 있습니다 ... –

답변

1

이다는 대답은 '노 ... 그리고.

특정 데이터베이스에 대해 열려있는 ADODB 연결 수를 추적 할 수있는 기능은 없습니다. 요구 사항이 있다면 스스로 추적해야합니다.

각 연결을 만들 때 컬렉션에 추가 한 다음 개수를 반환하기 전에 두 가지를 확인하는 함수를 작성하여이 작업을 수행 할 수 있습니다.

  1. 확실히 연결 개체는
  2. 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 
    

당신이 실제로 프로젝트에서 모든 연결을 추적 할 방법을 알아낼 수 있습니다.

+1

제안 해 주셔서 대단히 감사합니다. 정말 도움이되었습니다! –