使用Excel VBA中的ADO通过networking连接到SQL Server

我需要从networking上的另一台计算机连接到我的笔记本电脑上运行的SQL Server数据库。 我正在从C#应用程序以及VBAmacros中这样做。 两者都可以在我的笔记本上完美运行,C#应用程序可以在networking上完美运行。 但是,我无法通过networking连接使用VBA。 这是我的连接string:

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

除了“Driver = {SQL Server}”,这与我在C#应用程序中使用的连接string是一样的。

然后,我使用下面的代码(VBE中的Microsoft ActiveX数据对象6.0库的引用)来打开连接:

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

这工作正常,如果我在我的笔记本上运行它,但如果我在networking上的另一台计算机上运行它,我得到错误:“运行时错误”-2147217843(80040e4d)[Microsoft] [ODBC服务器驱动程序] [SQL Server]login用户失败…“,用户指定它login计算机的窗口。

是否需要在代码或Excel中设置一些安全设置? 还是我构build连接string不正确? 我究竟做错了什么?

解决了。 答案相当令人气愤。 问题实际上是连接string与UID。 相信它或没有改变...UID= MyUsername;.....UID=MyUsername;... ,即删除空格字符,只是花了! 感谢您的build议,但。

试试这个连接string,

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

这是一个AD域login? 确保你已经把域名附加到用户名,例如domain\user 。 我build议使用集成安全性而不是这个。