SQL Ошибка сервера при открытии соединения в Excel - PullRequest
0 голосов
/ 14 января 2020

РЕДАКТИРОВАТЬ: Для тех, кто приходит сюда с подобной ошибкой, моя ошибка заключалась в использовании «true» вместо SSPI для интегрированной безопасности.

Вот исходное сообщение.

Я использую Excel 2016 (офис 365 профессиональный профи). В VBA я добавил ссылку на «Библиотеку объектов данных Microsoft ActiveX 6.1», и в приведенном ниже коде я получаю сообщение об ошибке при открытии оператора при попытке подключиться к SQL Server 2012 или 2008:

Ошибка времени выполнения '-2147217887 (80040e21)':
Ошибка автоматизации

Проверка объекта ошибок показывает

  • многоэтапная операция oledb вызвала ошибки. Проверьте каждое значение состояния ole db
  • номер: -2147217887
  • Источник: поставщик

Я знаю, что строка подключения и пользователь в порядке, и это то же самое, что я использую в c# коде и через ODB C все нормально. Я также попытался использовать учетные данные пользователя, библиотеку oledb 2.8 и даже перейти на «базу данных» и «сервер» в DSN. Разница лишь в том, что C# я использую System.Data.SqlClient в качестве поставщика.

Любая идея, как получить больше информации, или любая идея, что может быть не так.

Dim conn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim sql As String
Dim counter As Integer
Dim val As String

'MsgBox "Start"
conn.ConnectionString = "Provider=SQLOLEDB;Initial Catalog=MYDATABASE;data source=MYSERVER;Integrated Security=true"
conn.Open

РЕДАКТИРОВАТЬ: я могу создать подключение через подключения для передачи данных, и в моем файле OD C это говорит это:

  <odc:Connection odc:Type="OLEDB">
   <odc:ConnectionString>Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Data Source=SERVER;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=xxx;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=MYDATABASE</odc:ConnectionString>
   <odc:CommandType>Table</odc:CommandType>
  </odc:Connection>

1 Ответ

0 голосов
/ 14 января 2020

Вы можете попытаться сузить проблему, попытавшись связать свой Excel через "данные> другие источники" в меню Excel. Это не исправит код, но должно помочь вам понять, если что-то не так с вашей строкой соединения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...