我创建了一个宏,可以在Excel电子表格中向ODBC连接发送新的CommandText,然后刷新与查询相关的结果表。这一直很好用,但我注意到每次运行宏时,它都会用一些默认值覆盖连接字符串,这些默认值在我的机器上工作,但在其他用户的机器上不起作用,因为他们没有保存的连接文件。手动输入指定服务器地址的更具体连接字符串可以正常工作,但每次运行宏时都会被覆盖。
我想让宏在发送新的CommandText的同时编写连接字符串,但是我遇到了错误。
我的代码如下:
我想让宏在发送新的CommandText的同时编写连接字符串,但是我遇到了错误。
我的代码如下:
Sub NewData()
Dim lStr As String
lStr = ""
lStr = lStr & " USE myDBname; "
lStr = lStr & " WITH X AS ("
lStr = lStr & " SELECT"
lStr = lStr & " column1, column2, column3, etc"
lStr = lStr & " FROM"
lStr = lStr & " etc. etc. etc."
With ActiveWorkbook.Connections("PayoffQuery").ODBCConnection
.CommandText = lStr
.Connection = "SERVER=myserveraddress;UID=SYSTEM;Trusted_Connection=Yes;APP=2007 Microsoft Office system;WSID=SYSTEM;DATABASE=myDBname;"
End With
End Sub
< p > .CommandText 仍然可以正常更新,但是 .Connection 抛出了运行时错误 1004:应用程序定义或对象定义的错误。
< p >你知道我在这里做错了什么吗?谢谢提前。