小编Abi*_*hur的帖子

Excel 使用 VBA 使用 Windows 身份验证连接到 SQL

我在用户拥有两个单独帐户的环境中工作。用户将它们登录到主机上,然后使用另一台主机来访问带有特殊软件的虚拟机。

其中一台虚拟机有一个 SQL 数据库,用于记录它们希望能够从主机上安装的 Excel 访问的警报。我已经测试了以下代码,它在我的测试虚拟机上运行良好,但在主机虚拟机上失败。

Sub Alarm_Query()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")


With cn
    .ConnectionString = "PROVIDER=SQLOLEDB;DATA SOURCE=SERVER;INITIAL CATALOG=A2ALMDB;INTEGRATED SECURITY=sspi;"
    .Open
End With
Run Code Online (Sandbox Code Playgroud)

我知道原因是用于登录主机的用户名没有(也不应该)具有访问 SQL 数据库所需的凭据。我尝试将其更改为

Sub Alarm_Query()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")


With cn
    .ConnectionString = "PROVIDER=SQLOLEDB;DATA SOURCE=SERVER;INITIAL CATALOG=A2ALMDB;"
    .Properties("Prompt") = 2
    .Open
End With
Run Code Online (Sandbox Code Playgroud)

这确实让我输入了唯一的用户名/密码,但是当我给它正确的域帐户时,我收到一条错误消息:

“用户登录失败...原因:尝试使用 NT 帐户名进行 SQL Server 身份验证

。有没有办法提示运行我的宏的用户使用 Windows 身份验证提供用户名/密码,与他们登录的身份分开?

如果不是,我的选择似乎是 …

sql-server excel vba

2
推荐指数
1
解决办法
8605
查看次数

标签 统计

excel ×1

sql-server ×1

vba ×1