У меня есть функция, которая пытается очистить каждую строку подключения от каждого подключения, она работает следующим образом:
Public Sub RemovePasswordByNamePrefix()
Dim w As Worksheet
Dim qt As QueryTable
Dim cn As Object
Dim odbcCn As ODBCConnection
Dim oledbCn As OLEDBConnection
For Each cn In ThisWorkbook.connections
If cn.Type = xlConnectionTypeODBC Then
Set odbcCn = cn.ODBCConnection
odbcCn.SavePassword = False
odbcCn.connection = ""
odbcCn.CommandText = ""
ElseIf cn.Type = xlConnectionTypeOLEDB Then
Set oledbCn = cn.OLEDBConnection
oledbCn.SavePassword = False
oledbCn.connection = ""
oledbCn.CommandText = ""
End If
Next
End Sub
Проблема заключается в том, что это происходит со следующей ошибкой (в разделе OLEDB, connection = ""):
Ошибка времени выполнения '1004'
Ошибка приложения или объекта *
Попытка сделать это с помощью интерфейса тоже не работает, это немного забавно:
Когда вы нажимаете кнопку «ОК», он просто ничего не делает ... как будто окно не закрывается, никаких изменений, это очень странно. На самом деле такое же поведение сохранится, если вы не введете что-либо (действительное или недействительное) в разделы текста команды и командной строки ...
Почему это так? Есть ли способ обойти это? Это похоже на то, как MS называет это «скрытым» требованием и не документирует и не предоставляет обратную связь, когда пользователь / разработчик пытается обойти это.
Очевидный вопрос, который я получу по этому вопросу: зачем мне это делать, я открою еще один тикет для решения этой проблемы и добавлю ссылку здесь