无法从 Excel 2007 连接到 SQL Server

无法从 Excel 2007 连接到 SQL Server

我正在尝试从 Excel 2007 连接到 Microsoft SQL Server 2008 R2。当它尝试连接时我收到错误:

[DBNETLIB][ConnectionOpen (Invalid Instance())。]无效连接。


重现步骤

  • 数据选项卡中获取外部数据组,点击其他来源,然后点击从 SQL Server

在此处输入图片描述

  • 服务器名称盒子。

  • 要输入数据库用户名和密码,单击使用以下用户名和密码,然后在相应的用户名密码盒子:

在此处输入图片描述


附加信息

  • 连接到 SQL ServerSQL Server 管理工作室
    在此处输入图片描述

  • 使用以下方式连接到 SQL Servertelnet

    C:\Users\Ian>telnet avenger 1433
    
  • SQL 服务器监听端口 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

我大胆猜测,您实际上正在使用命名实例,并且 SQL Native 客户端允许您使用它AVENGER作为服务器名称,但是DBNETLIB(我相信是旧的 SQL 客户端)要求更高。

你确定不是吗AVENGER\SQLEXPRESS,1433

答案2

我有同样的问题。

SQLOLEDB.DLL旧应用程序已在中注册了旧版本

C:\Windows\System32

通过运行以下命令进行修复:

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

del c:\WINDOWS\system32\sqloledb.dll

答案3

使用 SQL 服务器数据服务器名称在 Excel 2013 中为我解决了此问题

  1. 使用 SQL Server Management Studio 连接到数据库服务器
  2. 右键单击服务器对象资源管理器
  3. 选择属性
  4. 使用姓名服务器的“常规属性”页面上列出的值

答案4

从 Access 2007 连接到 SQL Server 2016 时我遇到了同样的问题。对我来说,解决方案是启用 TCP/IP 协议(​​在 SQL Server 配置管理器中)。

相关内容