作者:sweet梓潼_470 | 来源:互联网 | 2023-05-24 13:41
我创建了一个宏,它将新的CommandText发送到Excel电子表格中的ODBC连接,然后刷新与查询关联的结果表.这一直很好,但我注意到每次运行宏时它会覆盖一些默认值的连接字符串,这些默认值在我的机器上运行但不能在其他用户的机器上运行,因为它们没有保存的连接文件我有.指定服务器地址的更具体的连接字符串在手动输入时有效,但在运行宏时会被覆盖.
我想我会在发送新的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
.CommandText仍然可以正常更新,但.Connection会引发运行时错误1004:应用程序定义或对象定义的错误.
知道我在这里做错了吗?TIA.
1> ExactaBox..:
在您的VBA代码中,添加ODBC;
到新连接字符串的开头.
.COnnection= "ODBC;SERVER=myserveraddress;UID=SYSTEM;Trusted_COnnection=Yes;APP=2007 Microsoft Office system;WSID=SYSTEM;DATABASE=myDBname;"