Excel VBA 连接到 IBM DB2

Excel VBA Connect to IBM DB2

目前,我正在尝试从 VBA 查询 DB2 实例,但很难找到提供完整答案的适当文档或以前的堆栈问题。

当我运行以下时,我收到一个错误:

"SQL1032N 未发出启动数据库管理器命令。 SQLSTATE=57019

当前连接码:

Sub connect()

    Dim conn As Object 'Variable for ADODB.Connection object
    Dim rs As Object 'Variable for ADODB.Recordset object

    Set conn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")

    conn.ConnectionString = "Provider=IBMDADB2.1;Server=servername;Database=dbname;Port=port;Data Source=DB2;ProviderType=OLEDB;UID=uid;PWD=pw"
    conn.Open

    rs.Open "Select * .....", conn
    rs.Close
    conn.Close

End Sub

谢谢大家

仅供日后遇到此问题的朋友参考,本人成功连接如下:

Dim conn As Object 'Variable for ADODB.Connection object
Dim rs As Object 'Variable for ADODB.Recordset object

Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

conn.ConnectionString = "Provider=IBMDADB2.1;UID=" & username & ";PWD=" & password & ";Data Source=ABCDB1;ProviderType=OLEDB"
conn.Open

注意:用户名和密码是分配了适当凭据的字符串

这适用于我的机器 Windows 7,安装了客户端 DB2,Excel 2010 通过 private/secure 局域网

谢谢。该代码似乎有效。如果您有 ODBC 连接设置(它已经处理了所有复杂的连接),那么 ConnectionString 非常简单,只需输入 ODBC 连接名称:

Dim conn As Object 'Variable for ADODB.Connection object
Dim rs As Object 'Variable for ADODB.Recordset object

Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

conn.ConnectionString = "<YourODBCConnectionName>"
conn.Open

rs.Open "Select * from <schema>.<tableName> fetch first 10 rows only", conn
rs.Close
conn.Close