【问题标题】:Connect Access 2007 to SQL Server 2008 Database将 Access 2007 连接到 SQL Server 2008 数据库
【发布时间】:2009-03-11 16:01:22
【问题描述】:

我已经看到很多类似问题的答案,比如这个。我没有在网上看到很多人问过看似简单的问题“如何将 Access 2007 连接到 SQL Server 2008 数据库” - 但所有答案都描述了如何从 Access 2007 迁移到 sql server 2008 数据库,或者他们描述了如何将 access 2007 连接到 sql server 2005 数据库。我找不到任何简单的解决方案来解决我的问题(这可能是许多其他人的问题)。这是问题(抱歉过分强调):

如何从 access 2007 连接到 sql server 2008 数据库(我的意思是 2008,而不是 2005 :))?再次为过度强调道歉,但这个非常简单的问题,我认为应该是一个非常简单的任务似乎,是的,......不可能! 我尝试运行 sql server 浏览器,启用管道、TCP 等,但似乎无法识别 2008 SQLEXPRESS!请有人帮忙解决这个问题。 彼得

【问题讨论】:

  • 请准确地说出您尝试了什么,以及结果如何。 “未被识别”并不是很详细。
  • 您是否在运行访问的计算机上安装了 SQL 2008 客户端工具?
  • 我已将 access-data-project 添加到标签中,以便将来吸引感兴趣的各方。这是一个常见的问题。
  • 我在原始问题中根本没有看到任何关于 ADP 的信息。另一方面,它也没有提到 ODBC。

标签: sql-server ms-access ms-access-2007 access-data-project


【解决方案1】:

伙计们 - 你真的应该在随机回答之前检查这是否有效。运行一个 Access 项目大约需要一分钟,然后发现它实际上并不能轻松连接到 SQL 2008。

使用项目而不是 ODBC 的原因有很多,但这里有一些:

  • 无法保证部署计算机上存在 DSN
  • 网络流量 - 默认情况下不进行直通查询
  • 对存储过程的支持不佳

假设已启用适当的协议,解决方案是转到数据链接对话框的高级选项卡并删除网络库设置中的值。

【讨论】:

    【解决方案2】:

    将 Access 2007 连接到 SQL Server 2008 数据库应该没有问题。

    您需要确保:

    1. 您的 SQL Server 2008 数据库是可访问的,即它没有被锁定,并且您将拥有 Access 2007 应用程序的机器可以访问它。
      需要检查的几件事:

      • 在 SQL Server 2008 中,转到属性 > 连接 > 选中“允许远程连接到此服务器”。
      • 在配置管理器中启用 TCP/IP。
      • 确保防火墙允许 TCP 端口 1433 上的传入连接。
      • 您还可以启动 SQL Server Browser 服务,以便找到您的 SQL Server 实例。
    2. 您已使用 Windows ODBC 管理工具创建了一个 ODBC DSN(系统 DSN)。如果您在 64 位系统上运行,请确保您是 using the 32 bit version of ODBC 来创建您的 DSN,否则它永远不会被 32 位应用程序 Access 看到。

    3. 在安装了 Access 的计算机上创建 ODBC 链接(并对其进行测试)后,您可以链接表:在 Access 2007 中,在“外部数据”功能区选项卡 > 导入 > 更多 > ODBC数据库。
      然后选择您为 SQL Server 2008 数据库创建的 DSN,并选择您要链接的表。

    【讨论】:

    • 也许如果您想访问现有 Access DB 中的 SQL 表,这将是合适的,但 OP 似乎 只是要求通过 Access 访问 SQL 数据,在在这种情况下,ADP 更有效。
    • ADP 现在已被 MS 弃用。除了报告之外,他们现在说带有 ODBC 的 MDB/ACCDB 会更快。与 ADP 相比,它的 bug 也少得多,ADP 自开发以来就一直是移动目标。
    【解决方案3】:

    雷, 您看不到数据库的原因是权限。您需要授予正在使用的用户名访问您的数据库。 在 MS SQL Server Management Studio 中展开您创建的数据库并转到安全选项卡以配置您正在使用的用户名。添加它或创建一个新用户

    希望这会有所帮助....

    【讨论】:

      【解决方案4】:

      在 Access 中通过链接或导入向导时,选择 Sql Native Client 10.0。当询问您要连接到哪个服务器时,该服务器不会显示在组合框中。如果您输入正确的服务器名称并点击下一步,您将进入身份验证屏幕。如果这是您选择并点击下一步,请使用 Windows 身份验证。在下一个屏幕上,选中更改默认数据库框,您的服务器数据库应该会出现;然后你知道你有一个很好的连接。请记住,您必须输入正确的服务器名称,它应该是 MACHINE NAME\SERVER INSTANCE NAME。

      【讨论】:

        【解决方案5】:

        一个解决方案(尽管这可能不适用于 SQL Express)是使用 Access Data Project,尽管在 2007 年,如何做到这一点并不是那么直观。

        创建一个新的(空白)数据库,但不接受默认的 .accdb 扩展名,而是将其更改为 .adp。如果您使用浏览对话框设置文件位置,您还可以选择 Access Data Project (.adp) 格式。

        创建后,系统会询问您是否要链接到 SQL 数据库...其余部分非常直观,但如果需要,请询问更多详细信息。

        【讨论】:

        • 这样做会给自己带来很多问题。有更多关于使用带有 MDB/ACCDB 的 ODBC 链接表的文档,这实际上是 MS 多年来推荐的使用 Access 作为 SQL Server 前端的架构。
        • OP 想要通过 Access 访问 SQL; ADP 是实现这一目标的最快和最简单的方法。 ADP 和 ODBC 都有优点和缺点,但从 OP 中无法推断出哪个更好。也不会有“一大堆问题”。
        【解决方案6】:

        SQL Express 2008 + Access 2007 都在工作站上。 从Access 2007 连接到Adventureworks SQL db。 来了……

        • 开放存取 2007
        • 点击窗口或左上角图标/新建/点击空白数据库/输入文件名/
        • 点击浏览图标/保存类型/Microsoft Office Access Projects (*.adp)/点击确定/
        • 在您要连接到现有 SQL Server 数据库的问题上单击创建/吗?
        • 单击是/您可以使用下拉框选择您的计算机,但像这样输入...(例如,如果您的计算机名称是“笔记本电脑”)输入...笔记本电脑/SQLEXPRESS
        • 点击用户窗口 NT 集成安全/点击步骤 3 中的向下箭头。选择服务器上的数据库:它应该会显示 Adventureworks 数据库。如果您愿意,请单击测试或只是确定。

        【讨论】:

          【解决方案7】:

          刚刚遇到同样的问题,但发现一个链接建议在“数据链接属性”对话框中将服务器引用为 .\SQLEXPRESS - 实例名称之前的 [.] 似乎有很大的不同。

          这对我有用 - 我已连接但随后访问抱怨版本组合 - Access 2007 和 SQL 2008 不支持从 Access 管理数据库对象。

          消息如下:

          此版本的 Microsoft Access 不支持您的 Access 项目所连接的 Microsoft SQL Server 版本的设计更改。有关最新信息和下载,请参阅 Microsoft Office Update 网站。您的设计更改将不会被保存。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多