Access Linked Tables 看不到新的 SQL Server 表

Posted

技术标签:

【中文标题】Access Linked Tables 看不到新的 SQL Server 表【英文标题】:Access Linked Tables can't see the new SQL Server tables 【发布时间】:2021-05-05 16:47:44 【问题描述】:

历史

在 1990 年代,我的前任为我的公司构建了一个 Access 数据库(实际上有四个)。结果,下一位员工在 Windows Server 2003 上构建了 SQL Server 2008 Express 并将数据移到那里。现在是 20 年代,我正在尝试升级到 Windows Server 2019 和 SQL Server 2019 Express。数据库已经升级到 Access 365。

这是我到目前为止所做的:

现状

我从 SQL Server 2008 备份数据库并将它们恢复到 SQL Server 2019。经过一些故障排除和重新配置后,我能够让我的 SQL Server Management Studio 连接到 2019 数据库并且它可以看到所有表。 Access 也可以连接到 2019 年的数据库。

问题

当我重新链接表时,它连接成功,但说在数据库中找不到表。 SQL Server Management Studio 可以很好地查看这些表。桌子肯定在那里,名字也完全正确。我看不出这个错误的任何原因。

任何关于我下一步应该看哪里的建议将不胜感激。

【问题讨论】:

可能有几个原因;您正在连接到错误的实例、错误的数据库,甚至是 USER LOGIN正确 上使用的数据库无权访问 see 对象. @Larnu My SQL Management Studio 与访问文件位于同一台客户端计算机上。我使用了所有相同的凭据,我可以在那里看到表格。 您确定在建立连接时指定了数据库吗?对于 SSMS,这不是问题,对于 Access,这是一个主要问题。 @ErikA 我不确定我是否这样做。我建立了一个新的 DSN,但它从来没有要求过。我该如何指定? 【参考方案1】:

Access 要求在连接字符串或 DSN 中指定数据库,否则它将在 master 中查找表,并且应该没有。

如何做到这一点在驱动程序版本之间可能略有不同,例如使用ODBC Driver 17,您可以使用将默认数据库更改为选项:

或者,您可以alter the user default database,但由于这是每个用户,我建议不要这样做。

或者,去DSNless。我强烈推荐 DSNless 连接,因为它们不依赖正确配置的用户机器上的 DSN,因此允许在多台机器上使用数据库,而无需在单个机器上进行任何配置。

【讨论】:

谢谢。这正是问题所在。

以上是关于Access Linked Tables 看不到新的 SQL Server 表的主要内容,如果未能解决你的问题,请参考以下文章

Access 2013 - 在添加任何新字段时计算字段值

[LeetCode] 203. Remove Linked List Elements_Easy tag: Linked LIst

如何使用 Azure.Data.Tables.TableClient 进行事务处理?

“System.Data.DataTable”不包含“tables”的定义,并且找不到可接受类型为“System.Data.DataTable

Access 2007 列表框:如何以编程方式单击?

在 Sharepoint 中找不到查询