【发布时间】:2017-09-24 11:55:58
【问题描述】:
我正在尝试使用 VBA 连接到 Netezza。我启用了以下功能:
- Microsoft Excel 15.0 对象库
- Microsoft Office 15.0 对象库
- Microsoft ActiveX 数据对象 6.1 库
- Visual Basic 应用程序
这是我的代码:
Sub NZConn()
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim x As Variant
Set cmd = New ADODB.Command
Set RS = New ADODB.Recordset
cmd.ActiveConnection = "Driver={Netezza " & _
"ODBC};servername=servername;port=####;database=database;" & _
"username=username;password=password;"
cmd.ActiveConnection.CursorLocation = adUseClient
cmd.CommandTimeout = 120
cmd.CommandType = adCmdText
x = "Write Query here"
cmd.CommandText = x
Set rs = cmd.Execute
Sheet1.Range("A1").CopyFromRecordset rs
cmd.ActiveConnection.Close
End Sub
我可以让代码运行而不会返回错误,但是记录集中没有粘贴任何内容,这让我相信这可能与连接字符串的结构有关。
我有服务器、用户 ID、密码、数据库、端口和驱动程序。
我需要先建立/打开一个 ActiveConnection 吗?
【问题讨论】:
-
试试
servername=servername,portnumber -
从声明中减去
New为Dim cmd As ADODB.Command和Dim rs As ADODB.Recordset。并确保 rs 小写为Set rs = New ADODB.Recordset。 -
驱动程序={NetezzaSQL};服务器名称=myServerAddress;端口=myPortNumber;数据库=我的数据库;用户名=我的用户名;密码=我的密码
-
上面的注释似乎是 Netezza ODBC 的正确连接字符串,所以我被引导相信这是关于我如何定义维度的问题。当我现在运行此代码时,我收到一条错误消息:“[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified”
标签: sql vba excel odbc netezza