所有建议给出已经尝试过了。
在我们的 Azure Windows Server 2012 VM 中,我们有一个 Azure SQL 数据库。从 Azure 门户获取的 ODBC 连接字符串是:
Driver={ODBC Driver 13 for SQL Server};Server=tcp:databaseDomain.database.windows.net,1433;Database=DB_Name;Uid=user-id;Pwd=password;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;
本表格中的应用程序通过 DSN 连接到链接表。DSN 创建如下:
在 ODBC 数据源中:
已选择 SQL Server Native Client 11.0
Azure SQL Server 连接已设置
请注意,严禁使用 Windows 登录
数据库正确弹出
下一步,我们按照默认设置操作
ODBC DSN 设置似乎成功
在 Access 应用程序的 VBA 代码中,我们也更新了上述连接字符串
Set cn = New ADODB.Connection
cn.Open "Driver={ODBC Driver 13 for SQL Server};Server=tcp:databaseDomain.database.windows.net,1433;Database=DB_Name;Uid=user-id;Pwd=password;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;"
当鼠标悬停在任何链接表上时,DSN 详细信息就会正确显示:
但是,当尝试打开任何链接表时,都会引发以下错误:
注意,严格禁止使用 Windows 登录,那么问题是什么呢?
答案1
看起来我们遇到了同样的问题。对我来说,答案是将数据库迁移到 Azure 后需要重新链接我的表。
如果您使用 ODBC 连接在 Access 中创建数据库,则表格将使用来自上次修改和保存它们的系统的一串信息链接到 SQL 服务器。对于我的表格,它们多年来已在多个不同的系统上进行了修改,但所有系统都使用 Windows 集成登录。
我按住shift并打开我创建的基于 Access 的应用程序以便打开它,这样我就可以看到左侧的所有表格/查询/表单/等等。
然后,我切换到查看左上角菜单上的表格。然后,我右键单击一个表格(任何表格都可以)以打开“链接表管理器”。
在链接表管理器中,我单击“全选”,点击“确定”,然后打开向导。我用我的 ODBC 连接凭据创建了一个 DSN 文件,然后将每个表链接到该文件。之后,我可以正常打开所有内容。重新链接需要很长时间,但这是我能想到的唯一解决方法。