2012-05-31 9 views
0

Я новичок в Excel VBA. Я хочу запросить данные из базы данных Teradata и предоставить результат в строках листа excel. Когда я пишу код ниже:База данных запросов через Excel VBA

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 редактор

+0

Это говорит вам, какая линия? – lins314159

+0

показывая ошибку в строке: Dim conn As Connection – SrinivasR

ответ

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 
+0

Привет, Джим ... Спасибо за ответ ... Я изменил код ... но я все еще сталкиваюсь с той же ошибкой. Мой код не идентифицирует «Connection», как ключевое слово ... Я чувствую – SrinivasR

+3

Странно ~ Вы проверили ссылку на Microsoft ActiveX Data Objects в своем проекте? Я проверил выше код и добился успеха. –

+0

Спасибо, Джим. Это предложение помогло. Я проверил ActiveX lib в ссылке для проекта. У меня есть вопрос: на самом деле я сначала попытался проверить activeX, я не смог его увидеть. Затем я открыл другой VBAProject, который я знаю и работает нормально (с базой данных), и он проверял ActiveX. возможность проверить ActiveX ref для моего проекта. – SrinivasR

Смежные вопросы