Я слишком поздно, чтобы дать вам полезный ответ на ваш вопрос, но я пришел сюда , потому что я хотел посмотреть, есть ли у StaCkOverflow лучший ответ, чем код, который я сейчас использую для тестирования ADODB соединения.
... Оказывается, ответ «Нет», поэтому я выложу код для справки: кто-то найдет его полезным.
Замечания по кодированию: это не общий ответ: это метод из класса, инкапсулирующий объект ADODB.Connection, и он предполагает существование объекта 'm_objConnect'.
TestConnection: метод класса VBA для публикации отладочной информации для объекта ADODB.Connection
Это распечатывает строку соединения, текущее состояние, список ошибок ADODB (если есть) и полный список именованных свойств соединения.
Public Sub TestConnection()
On Error GoTo ErrTest
Dim i As Integer
If m_objConnect Is Nothing Then
Debug.Print "Object 'm_objConnect' not instantiated."
прочее
Debug.Print m_objConnect.ConnectionString
Debug.Print "Connection state = " & ObjectStateString(m_objConnect.State)
Debug.Print
If m_objConnect.Errors.Count > 0 Then
Debug.Print "ADODB ERRORS (" & m_objConnect.Errors.Count & "):"
For i = 0 To m_objConnect.Errors.Count
With m_objConnect.Errors(i)
Debug.Print vbTab & i & ":" _
& vbTab & .Source & " Error " & .Number & ": " _
& vbTab & .Description & " " _
& vbTab & "(SQL state = " & .SqlState & ")"
End With
Next i
End If
Debug.Print
Debug.Print "CONNECTION PROPERTIES (" & m_objConnect.Properties.Count & "):"
For i = 0 To m_objConnect.Properties.Count - 1
Debug.Print vbTab & i & ":" _
& vbTab & m_objConnect.Properties(i).Name & " = " _
& vbTab & m_objConnect.Properties(i).Value
Next i
End If
ExitTest:
Exit Sub
ErrTest:
Debug.Print "Ошибка" & Err.Number & "поднято" & Err.Source & ":" & Err.Description
Резюме Далее
End Sub
Частная функция ObjectStateString (ObjectState As ADODB.ObjectStateEnum) As String
Выберите Case ObjectState
Дело ADODB.ObjectStateEnum.adStateClosed
ObjectStateString = "Закрыто"
Дело ADODB.ObjectStateEnum.adStateConnecting
ObjectStateString = "Соединение"
Дело ADODB.ObjectStateEnum.adStateExecuting
ObjectStateString = "Выполнение"
Дело ADODB.ObjectStateEnum.adStateFetching
ObjectStateString = "Извлечение"
Дело ADODB.ObjectStateEnum.adStateOpen
ObjectStateString = "Открыть"
Дело остальное
ObjectStateString = "State" & CLng (ObjectState) & ": неизвестный номер состояния"
Выбор конца
Функция завершения
Делитесь и наслаждайтесь: и следите за переносами строк, которые будут вставлены там, где они будут нарушать код вашего браузера (или с помощью функций форматирования StackOverflow).