#sql #vba #sqlconnection
#sql #vba #sqlconnection
Вопрос:
Я пытаюсь подключить sql server к vba, используя код из обучающего видео на YouTube (https://www.youtube.com/watch?v=OWKae1pTTnE ), но когда я запускаю код, чтобы проверить, работает ли он, у меня возникла ошибка при открытии соединений, не могли бы вы мне помочь, пожалуйста? Я уже установил sql server 2019 и у меня есть SQL Server Management Studio 18.
ошибка: сетевые интерфейсы SQL Server: строка подключения недопустима [87]
Вот код:
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=MSOLEDBSQL;" amp; _
"Server=MyServerMSSQLSERVER;" amp; _
"Database=master;" amp; _
"Trusted_Connection=yes;"
cn.Open 'The error occurs here
cn.Close
Комментарии:
1. У вас нет имени пользователя и пароля. Вы имели в виду использовать проверку подлинности Windows, add
Integrated Security = SSPI
?2. Просто попробовал это и получил ту же ошибку: (
3. Какую версию драйвера OLEDB вы используете? Проверьте connectionstrings.com /… для получения дополнительной информации о строках подключения
4. Можете ли вы опубликовать полное сообщение об исключении?
5. Я предлагаю вам использовать этот метод для создания допустимой строки подключения social.technet.microsoft.com/wiki/contents/articles /…
Ответ №1:
Решение, помогающее решить проблему выше, было предоставлено @Nick.McDermaid:
Моя ошибка была в строке подключения, перейдя по ссылке: [1]: https://social.technet.microsoft.com/wiki/contents/articles/1409.how-to-create-a-sql-connection-string-for-an-application-udl-file.aspx?Redirected=true
В нем показаны простые шаги по соединению строк на основе необходимых условий. Как только вы выполните шаги, которые и используете, все работает нормально! В моем случае решение выглядит так:
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=SQLOLEDB.1;
Integrated Security=SSPI;
Persist Security Info=False;
Initial Catalog=MyDataBaseName;
Data Source=MyServer"
cn.Open 'The error that was here disappiers and runs fine'
cn.Close