excel - 在 VBA 中设置 ODBC 连接字符串

标签 excel vba odbc connection-string

我创建了一个宏,它将新的 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。

最佳答案

在 VBA 代码中,将 ODBC; 添加到新连接字符串的开头

.Connection = "ODBC;SERVER=myserveraddress;UID=SYSTEM;Trusted_Connection=Yes;APP=2007 Microsoft Office system;WSID=SYSTEM;DATABASE=myDBname;"

关于excel - 在 VBA 中设置 ODBC 连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28219298/

相关文章:

vba - 在 worksheet_change 事件之后 Excel 超链接跟随宏

database - Oracle - 使用 MS Access 的 ODBC 连接错误 (ORA-12154)

c++ - 如何使用odbc通过c++将excel文件导入到mysql表中?

Excel工作表中列中字符串模式匹配的VBA代码

c# - Microsoft Office Interop Excel ExportAsFixedFormat - 非常慢,图像未加载

excel - 删除通过 Excel VBA 生成的 Outlook 2010 邮件中的签名

vba - 使用 VBA 将唯一编号添加到 Excel 数据表

vba - 在 excel 中有效地复制可见/过滤的行

odbc - Go 1.1.1 和 ODBC 与 MSSQL

Excel vba - 禁用鼠标事件