4

我需要从网络上的另一台计算机连接到在我的笔记本电脑上运行的 SQL Server 数据库。我在 C# 应用程序和 VBA 宏中都这样做。两者都在我的笔记本电脑上完美运行,C# 应用程序在网络上完美运行。但是我无法通过网络使用 VBA 进行连接。这是我的连接字符串:

ConnectionString = "Driver={SQL Server};Server=MY-LAPTOP; DAtabase=SAFEXlive; UID = MyUsername; PWD=MyPassword"

除了“Driver={SQL Server}”之外,这与我在 C# 应用程序中使用的连接字符串相同。

然后我使用以下代码(参考 VBE 中的 Microsoft ActiveX 数据对象 6.0 库)打开连接:

Dim oConnection As Connection
Set oConnection = New Connection
oConnection.ConnectionString = strConnectionString
oConnection.Open

如果我在笔记本电脑上运行它可以正常工作,但如果我在网络上的另一台计算机上运行它,我会收到错误消息:“运行时错误'-2147217843 (80040e4d) [Microsoft][ODBC 服务器驱动程序][SQL Server]登录用户失败...”和它指定的用户 Windows 登录计算机。

我需要在代码或 excel 中设置一些安全设置吗?还是我错误地构造了连接字符串?我究竟做错了什么?

4

2 回答 2

4

Solved. The answer is rather infuriating. The problem is in fact with the connection string, with the UID. Believe it or not changing ...UID= MyUsername;... to ..UID=MyUsername;..., i.e. removing the space character, was all it took! Thanks for suggestions though.

于 2012-04-16T08:09:37.007 回答
3

试试这个连接字符串,

ConnectionString = "Provider=SQLOLEDB;Data Source=MY-LAPTOP;Initial Catalog=SAFEXlive;User ID=MyUsername;Password=MyPassword"

这是 AD 域登录吗?确保您已将域附加到用户名,例如domain\user. 我建议使用集成安全性而不是这个。

于 2012-04-13T17:46:56.323 回答