通过Excel VBA查询数据库

时间:2012-05-31 07:09:00

标签: database excel-vba teradata vba excel

我是Excel VBA的初学者。我想查询Teradata数据库中的数据,并将输出提供给excel表的行。当我写下面的代码时:

Private Sub CommandButton1_Click()
    Dim conn As Connection
    Dim rec1 As Recordset
    Dim thisSql As String
    Set conn = New Connection
    conn.Open "Driver=Teradata; DBCName=" & DBCName & ";UID=" & UID & ";PWD=" & PWD
    thisSql = "simple select qyery here"
    With .QueryTables.Add(Connection:=conn, Destination:=.Range("A1"))
        .Sql = thisSql
        .Name = "data"
        .FieldNames = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

我收到的错误是'编译器错误:用户定义的类型未定义'

如何克服这个错误?我是否需要在代码中包含任何内容?

请帮忙

我正在使用MSVisualBasic 6.5编辑器

1 个答案:

答案 0 :(得分:4)

嗨我想在使用QueryTables.Add时需要记录集作为连接对象。 我修改了你的代码并尝试了如下:

Dim conn As adodb.Connection
Dim rec1 As adodb.Recordset
Dim thisSql As String

Set conn = New adodb.Connection

conn.Open your_connection_string

thisSql = "your query here"

Set rec1 = New adodb.Recordset
rec1.Open thisSql, conn

With Sheet3.QueryTables.Add(Connection:=rec1, Destination:=Sheet3.Range("A1"))
    .Name = "data"
    .FieldNames = True
    .Refresh BackgroundQuery:=False
End With