Не удается подключиться к SQL Server из Excel 2007

10

Я пытаюсь подключиться к Microsoft SQL Server 2008 R2 из Excel 2007. Когда он пытается подключиться, я получаю сообщение об ошибке:

[DBNETLIB] [ConnectionOpen (Invalid Instance ()).] Неверное соединение.


Действия по воспроизведению

  • На вкладке « Данные » в группе « Получить внешние данные » выберите « Из других источников» , а затем нажмите « Из SQL Server» :

введите описание изображения здесь

  • введите имя компьютера с SQL Server в поле Имя сервера .

  • Чтобы ввести имя пользователя и пароль базы данных, нажмите « Использовать следующие имя пользователя и пароль» , а затем введите свое имя пользователя и пароль в соответствующие поля « Имя пользователя и пароль» :

введите описание изображения здесь


Дополнительная информация

  • Я могу подключиться к SQL Server из SQL Server Management Studio :
    введите описание изображения здесь

  • Я могу подключиться к SQL Server с помощью telnet:

    C:\Users\Ian>telnet avenger 1433
    
  • SQL Server будет слушать порт 1433:
    введите описание изображения здесь

  • Excel делает подключение и получить трафик ответа от SQL Server:
    введите описание изображения здесь

  • Я могу ping на сервере:

    C:\Users\Ian>ping avenger
    
    Pinging avenger.newland.com [192.168.1.244] with 32 bytes of data:
    Reply from 192.168.1.244: bytes=32 time=1ms TTL=128
    Reply from 192.168.1.244: bytes=32 time<1ms TTL=128
    Reply from 192.168.1.244: bytes=32 time<1ms TTL=128
    Reply from 192.168.1.244: bytes=32 time<1ms TTL=128
    
    Ping statistics for 192.168.1.244:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
        Minimum = 0ms, Maximum = 1ms, Average = 0ms
    
  • Попытка подключения по IP-адресу (а не по имени) не имеет никакого эффекта:
    введите описание изображения здесь

  • Брандмауэр Windows не работает на сервере:
    введите описание изображения здесь

Ян Бойд
источник
1
Хотя это было какое-то время, спасибо, что включили так много деталей.
ta.speot.is

Ответы:

11

Я бы рискнул предположить, что вы на самом деле используете именованный экземпляр, а собственный клиент SQL позволяет вам избежать использования в AVENGERкачестве имени сервера, но DBNETLIB(который я считаю старым клиентом SQL) более требователен.

Вы уверены, что это не так AVENGER\SQLEXPRESS,1433?

ta.speot.is
источник
Оказывается, это есть что. Следует отметить, что просто AVENGER\SQLEXPRESSне работал; я должен был включить (стандартный) порт.
Ян Бойд
Более опасные предположения, но компьютер, на котором работает Excel, не может обмениваться данными со службой браузера SQL на сервере (или служба не работает).
ta.speot.is
0

У меня такая же проблема.

Старое приложение зарегистрировало старую версию SQLOLEDB.DLLв

C:\Windows\System32

Исправлено с помощью этих команд:

regsvr32 "c:\Program Files\Common Files\System\Ole DB\sqloledb.dll"  

и

del c:\WINDOWS\system32\sqloledb.dll
Арнштейн Вольдстад
источник
0

Использование имени сервера данных сервера SQL исправило это в Excel 2013

  1. Подключитесь к серверу базы данных с помощью SQL Server Management Studio
  2. Щелкните правой кнопкой мыши сервер в обозревателе объектов.
  3. Выберите Свойства
  4. Используйте Имя значение , указанное на странице Общие свойства сервера
Джон
источник
0

У меня была такая же проблема при подключении из Access 2007 к SQL Server 2016. В моем случае решение состояло в том, чтобы включить протокол TCP / IP (в диспетчере конфигурации SQL Server).

Разван Соколь
источник