在 Access 中删除带有 SQL 链接表的登录提示

Posted

技术标签:

【中文标题】在 Access 中删除带有 SQL 链接表的登录提示【英文标题】:Remove login prompt with SQL linked tables in Access 【发布时间】:2012-02-08 15:37:48 【问题描述】:

我有一个类似的问题:SQL Server 2008: ODBC connection problems

但我的是独一无二的,因为我已经在链接表时选中了“保存密码”选项,并且它工作正常,除非我尝试一次打开多个查询。

重建步骤:

1) 将 SQL 表链接到 Access 2003 前端,我的 DSN 如下所示:

[ODBC]
DRIVER=SQL Server
UID=ACD
WSID=ACD
APP=ACD
SERVER=xx.xx.xxx.xx,1053
Description=ACD Connection to SQL Server
Pwd=XXXXXXXX

起初我没有 PWD 线,不管有没有它似乎都没有区别。

2) 打开 1 个使用链接表的查询,没有登录提示

3) 在第一个查询仍然打开时打开第二个查询,出现此错误,然后是登录提示:

[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed. 
The login is from an untrusted domain and cannot be used with Windows authentication.

我可以直接打开任意数量的表格,而且没有密码提示。

如果我登录一次,在我重新启动 Access 之前不会再出现提示,但这不是我的应用程序的选项。

我只使用 SQL Server 身份验证,而不是为 Windows 身份验证设置。

【问题讨论】:

感谢您编辑我的帖子,我确实尝试使用 DSN 部分的代码块格式选项,但它仍然使所有内容都在一行中,很奇怪。 【参考方案1】:

您可以尝试使用 DSN-Less 连接到您的 SQL 服务器,microsft 有一个支持页面:http://support.microsoft.com/kb/892490

这应该会停止提示

【讨论】:

+1 - 如果能解决问题,这看起来是个不错的选择。这是一个内部项目,我的老板只是给了我一些更“真实”的工作,所以在我测试和接受这个答案之前可能需要一点时间。不过我会解决的,谢谢。【参考方案2】:

你必须在你的连接中保存密码(见参数dbAttachSavePWD

Dim MyTable As TableDef
Set MyTable = CurrentDb.CreateTableDef(TableName, dbAttachSavePWD, SourceTableName, ConnectionString)
CurrentDb.TableDefs.Append MyTabl

例如附加 sql 表 [audit].[Details] 作为 AuditDetails 可以使用以下代码:

Dim MyTable As TableDef
Set MyTable = CurrentDb.CreateTableDef
    (
      "AuditDetails",
      dbAttachSavePWD,
      "audit.Details",
      "ODBC;DRIVER=SQL Server;APP=TransFlow®;SERVER=sqlServerName;DATABASE=dbName;UID=userName;PWD=password"
    )
CurrentDb.TableDefs.Append MyTabl

【讨论】:

以上是关于在 Access 中删除带有 SQL 链接表的登录提示的主要内容,如果未能解决你的问题,请参考以下文章

使用 Sharepoint 列表中的链接表从 Excel 执行 sql 到 Access

迁移到新的 SQL Server 后,在 MS Access 中更新链接表的最佳方法是啥?

如何使用 Access VBA 更新所有 ODBC 链接的 SQL Server 表的服务器名称

MS Access:来自 SQL Server 的只读链接表?

Microsoft Access 中如何删除多个表的内容?

MS Access 2016 在某个链接的 SQL Server 表上崩溃