2015-10-22 2 views
0

Я пытаюсь подключиться к таблице Oracle через VBA и получать данные. Моя ситуация заключается в том, чтобы несколько раз ссылаться на одну таблицу, чтобы сделать поворот. Но во время выполнения запроса через VBA он выдает ошибку, поскольку я получаю данные через псевдоним таблицы: Ниже приведен фиктивный код.Извлечение столбца с псевдонимом таблицы не работает в VBA

Sub Button1_Click() 
    Dim strDataSource, strUsername, strPassword, strConnectionString, strquery As String 
    Dim objADODBConnection, objADODBRecordset As Object 
     strDataSource = "xxxx" 
     strUsername = "xxxx" 
     strPassword = "xxxx" 

     strConnectionString = "Provider=MSDAORA;Data Source=" & strDataSource & ";Persist Security Info=True;Password=" & strPassword & ";User ID=" & strUsername 
     Set objADODBConnection = CreateObject("ADODB.Connection") 

     objADODBConnection.Open strConnectionString 
     Set objADODBRecordset = CreateObject("ADODB.Recordset") 

     strquery = "SELECT T1.Column1 FROM Table1 AS T1 WHERE Column2='XXXX' AND Column3='XXXX'" 

     Set objADODBRecordset = objADODBConnection.Execute(strquery) 

     MsgBox objADODBRecordset.Fields(0).Value 

     objADODBRecordset.Close 
     objADODBConnection.Close 
     Set objADODBRecordset = Nothing 
     Set objADODBConnection = Nothing 

End Sub 

Тот же запрос работает без псевдонимов таблицы. Пожалуйста, предложите !!

+1

Пожалуйста, расскажите нам, что ошибки вы получаете и то, что линия ошибка откуда. – MatthewD

+0

Помогает ли вам включить T1.Column2 = 'XXXX' AND T1.Column3 = 'XXXX''? – MiguelH

+0

Нет, это не поможет. По моему пониманию, если мы используем что-то вроде «T1. Column2» в VBA, тогда T1 должен быть объектом, потому что оператор dot [.] Работает только с объектом. –

ответ

0
FROM Table1 AS T1 

Вы должны удалить «AS» в из условия -

FROM Table1 T1 
+0

Я попробую это и даю сообщение о результатах в понедельник !!! –

+0

Это сработало !!! Спасибо Не могли бы вы дать мне повод, почему ключевое слово AS создает проблему. Запрос бросается в Oracle Client, поэтому он должен сработать. –

+0

Синтаксис Oracle не требует «AS» для псевдонима таблицы, но из выражения «AS» является частью предложения запроса flashback («AS OF») - http://docs.oracle.com/cd/B28359_01/server 0,111/b28286/statements_10002.htm # i2126863 – Stawros

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