【问题标题】:Users on my network cant open the Sql server linked tables from their MS Access Form我网络上的用户无法从他们的 MS Access 表单中打开 Sql server 链接表
【发布时间】:2018-11-07 17:32:52
【问题描述】:

您好,希望这是有道理的。 我已将数据库拆分为后端和前端。 在前端,我还添加了一些来自网络上的 SQL 数据库的链接表。 DNS 文件与前面的文件夹位于同一文件夹中。现在,当他们尝试通过表单打开表格时,当我通过前端复制到最终用户桌面时,他们会收到错误:“ODBC 调用失败”有人知道为什么会这样吗?

1 个最终用户正在使用免费版本的 ms access(2016 运行时),其他用户拥有完整的 MS Access,但都遇到相同的错误。

因为它在我的计算机和我的同事的开发阶段没有发生。除了将链接表转换为本地表并通过链接工作的计算机从 SQL 服务器每周更新它们之外,我对如何解决问题有点迷茫。

将正常的后端表视为链接到前端的正常工作。只是希望它直接调用来自 SQl Server 的信息。

【问题讨论】:

  • 这些其他用户的 ODBC 管理员中是否有此服务器的 DSN 条目?
  • 首先,一些故障排除问题:1)您是否为 SSRS 中的每个用户授予了数据库的权限(对表或 db_reader + db_writer 具有读/写权限)? 2)用户可以访问并连接到数据库(没有您的应用程序)? ODBC 是一种很好的测试方法。 3) 您是否将您的 MS Access 数据库设计为通过 ODBC 连接到 SQL 服务器? 4) 如果是这样,您是否在每个用户的最坏情况下配置了 ODBC?

标签: sql-server ms-access


【解决方案1】:

确保在您的开发工作站上使用 FILE DSN 链接表。当您链接时,Access 会将链接转换为我们所说的无 DSN。

以上意味着您不必在每个工作站上复制、设置或使用任何类型的 DSN。因此,请勿使用“系统”DSN——它使用您必须在每个工作站上设置的注册表中的设置。

下一个要注意的问题是您使用哪个 SQL 驱动程序来链接表。如果您在链接时使用“标准”SQL 驱动程序,那么您可以确保这些驱动程序默认安装在每个工作站上。

如果您使用“Native 11”(或更高版本),那么您必须确保在每个工作站上都​​安装了 Native 11(或更高版本)驱动程序才能正常工作。本机驱动程序是更好的选择,但默认情况下它们不会安装在每个工作站上。

所以我建议您删除链接,或使用链接表管理器重新链接表 - 只需确保使用 FILE dsn - 因为一旦链接表,Access 就会忽略并且不再使用 DSN – 你不需要它,你甚至可以删除 DSN,你链接的表仍然可以工作。

【讨论】:

  • 您好 Albert,非常感谢您解决了这个问题。
  • 只是想知道这是否意味着我不能使用直通查询?因为它们通常会使用系统 DSN,不是吗?
  • PT 查询的工作方式与链接表相同。如果您使用文件 dsn,则它会减少 DSN。如果使用此方法,则无需在 VBA 中设置或使用连接字符串。您用于链接表或 PT 查询的“连接”是相同的。只要您在设置 PT 查询或链接表时使用“文件”dsn,它们都不需要计算机上的 dsn。当通过 FILE dsn 创建时,它们(pt + 链接表)默认都变为无 DSN。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多