使用 MS Access 2003 连接到 SQL Server 2005

Posted

技术标签:

【中文标题】使用 MS Access 2003 连接到 SQL Server 2005【英文标题】:Using MS Access 2003 to connect to SQL Server 2005 【发布时间】:2009-11-09 22:18:02 【问题描述】:

我父亲建立了一个 MS Access 数据库来进行物业管理。现在他想通过互联网与其他用户分享。所以我在 Network Solutions 获得了一个托管的 SQL Server 帐户。现在我正在尝试使用 MS 的这些指南将 Access 2003 客户端连接到测试 SQL 数据库:

http://office.microsoft.com/en-us/access/HP052745861033.aspx

但是,我收到的错误消息是“连接失败,因为初始化提供程序时出错。服务器不存在或访问被拒绝”。

我已运行 MSComponentChecker 以确保我拥有 MDAC 2.7 或更高版本。我的是 XP 上的 2.8 SP1。

【问题讨论】:

【参考方案1】:

听起来像:

(1) 您的工作站无法连接到 SQL Server 实例,因为 (a) 主机名解析不正确 或者 (b) 您的网络或工作站上的防火墙阻止了所需端口上的出站连接

(2) 您可以连接并拥有正确的用户名和密码,但没有足够的权限访问您尝试使用的数据库。如果您的用户名或密码错误(“用户 'xxxx' 登录失败),访问会给出与您收到的错误不同的错误。

您可以通过运行“telnet example.com 1433”(无论您使用什么主机名和端口;如果您没有获得端口,请使用 1433)并确保您可以连接(命令窗口将进入空白屏幕)。如果可行,您可以向您的提供商确认您正在使用的帐户已被授予所需的权限。如果您无法远程登录到您需要的地址,请检查您的主机名是否正确以及是否存在任何防火墙。

【讨论】:

感谢您的快速响应。我在 VMFusion 中运行 Windows。我可以在我的 Mac 主机上远程登录到 1433 上的 SQL Server IP 地址。出于某种原因,我无法从 Windows 远程登录。我尝试了另一台仅 Windows 的 PC,但仍然没有运气。在这两种情况下,我都尝试了 Windows Telnet 和 Putty。我什至禁用了 Windows 防火墙。有什么建议吗? 经过进一步审查,这篇文章暗示我在 Windows Telnet 和 Putty 中遇到的空白屏幕意味着我可以连接到该端口。 ***.com/questions/435838/…。 Mac telnet 给了我一个详细的,Trying...Connected 序列。 经过一些调整后,我现在收到此错误消息“[DBNETLIB][ConnectionOpen(Invalid Instance()).]Invalid Connection”,这意味着我的实例名称无效。一项小研究表明,MS SQL 虚拟服务器的格式为 \。现在,如果网络解决方案可以告诉我 instanceName【参考方案2】:

经过一番研究,我想通了。 在 MS Access 2003 中,您必须按以下格式输入服务器名称:

服务器名称\实例名称,端口号

这是一个反斜线,而不是一个正斜线。谢谢女士。 不知道为什么我必须指定默认端口号。

特别感谢这篇文章: http://dbaspot.com/forums/sqlserver-server/251219-error-connecting-remote-server.html

需要注意的是,一旦连接,您就无法在 Access 2003 中进行大量设计工作。所以我需要升级到 2007 来更改 SQL 架构。希望 2003 年的用户仍然能够连接和使用该应用程序。

【讨论】:

这是一个反斜杠,因为它是 WINDOWS,它在路径中的任何地方都使用斜杠。抱怨自 MS-DOS 1.0 第一个版本以来一直存在的情况是荒谬的。实际上,Windows 程序使用 forward 斜杠会很奇怪。 不是试图发动一场圣战,但是,它看起来更像一个 URI(TCPIP 主机名/本地路径)而不是 DOS 路径和​​其他任何地方(例如 MSIE)MS 遵循关于 URI 的 RFC 并使用正斜杠。

以上是关于使用 MS Access 2003 连接到 SQL Server 2005的主要内容,如果未能解决你的问题,请参考以下文章

MS-Access ODBC 连接到 Oracle for SQL

使用 ODBC 连接到 MYSQL 在 MS-Access 中运行 SQL 时出错

MS Access 使用 Windows 用户名连接到 SQL Server

SQL 查询和 MS Access 查询返回不同的数据

如何通过 HTTP 连接到位于 Web 服务器上的 Access 2003 数据库?

如何让 ms-access 以其他用户身份连接到 ms-sql?