Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ADODB.Recordset в QueryTable (Excel) / 12 сообщений из 12, страница 1 из 1
31.10.2006, 14:58:24
    #34094473
vba
vba
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Recordset в QueryTable (Excel)
Код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    Set GConnection = New ADODB.Connection
    GConnection.CursorLocation = adUseClient
    GConnection.Open "provider=msdaora; data source..."
    Set GCommand = New ADODB.Command
    Set GCommand.ActiveConnection = GConnection
    Set GRecordset = New ADODB.Recordset
    Set GRecordset.ActiveConnection = GConnection
    GCommand.CommandText = "select * from aaa where b=?"
    GCommand.CommandType = adCmdText
    GCommand.Parameters.Append Object:=GCommand.CreateParameter("", adVarChar, adParamInput, Len("aaa"), "aaa")
    GCommand.Execute
    GRecordset.Open  GCommand
With Application.ActiveSheet           
      Set QT = .QueryTables.Add(GRecordset, .Range("A3"))
      QT.Refresh
End With

На Refresh выдает Runtime Error 1004, Application-defined or object-defined error.
ADO 2.8
куда копать?
...
Рейтинг: 0 / 0
31.10.2006, 15:21:31
    #34094599
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Recordset в QueryTable (Excel)
а не пробовал этот запрос через построитель запросов сделать? в этом случае будет обновлять или нет, может оттуда какие-то появятся идеи..
...
Рейтинг: 0 / 0
31.10.2006, 15:35:51
    #34094668
vba
vba
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Recordset в QueryTable (Excel)
Проблема не с запросом (не важно какой, но параметризуемый). Recordset прекрасно читается. Просто нужно положит Recordset именно в QueryTable, а не рабоает.
...
Рейтинг: 0 / 0
31.10.2006, 15:50:40
    #34094747
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Recordset в QueryTable (Excel)
ну так через построитель запросов ты также QueryTable создаешь
...
Рейтинг: 0 / 0
31.10.2006, 16:03:06
    #34094822
vba
vba
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Recordset в QueryTable (Excel)
Структура приложения, требует создание Recordset, код который я привел - это просто сведенный из кусков. Recordset создаеться в другом куске, я получаю его по вызову функции и надо его сложить именно в querytable, а не просто положить результат на лист
...
Рейтинг: 0 / 0
31.10.2006, 16:58:49
    #34095113
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Recordset в QueryTable (Excel)
да это понятно. просто ты пишешь, что ошибка при .refresh, т.е. в методе QueryTable. Чем ты создал Connection не имеет значения (VBA или Query Wizard). Но за то ты будешь видеть как Excel получит данные и что будет писать при ошибке.
...
Рейтинг: 0 / 0
31.10.2006, 18:30:15
    #34095508
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Recordset в QueryTable (Excel)
vbaСтруктура приложения, требует создание Recordset, код который я привел - это просто сведенный из кусков. Recordset создаеться в другом куске, я получаю его по вызову функции и надо его сложить именно в querytable, а не просто положить результат на листНе надо надевать штаны через голову.
Если ты работаешь с ADO - работай с ADO целиком. Если хочешь работать с QueryTable - работай с QueryTable с самого начала.

Код: plaintext
1.
2.
3.
4.
5.
6.
With Application.ActiveSheet           
      Set QT = .QueryTables.Add("provider=msdaora; data source...", .Range("A3"))
      QT.CommandText = "select * from aaa where b=?"
      Set Param = QT.Parameters.Add("ParamB", xlParamTypeVarChar)
      Param.SetParam xlPrompt, "aaa"
      QT.Refresh
End With
И никакое ADO нафиг не нужно.
...
Рейтинг: 0 / 0
01.11.2006, 08:50:32
    #34096170
vba
vba
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Recordset в QueryTable (Excel)
vbaСтруктура приложения, требует создание Recordset, код который я привел - это просто сведенный из кусков. Recordset создаеться в другом куске, я получаю его по вызову функции и надо его сложить именно в querytable, а не просто положить результат на лист
White OwlИ никакое ADO нафиг не нужно.
Оно нужно и используеться не просто так. Вопрос был не как положить результат запроса на querytable, а как recordset положить на querytable. Насчет штанов через голову вы глубоко ошибаетесь, еслибы был просто запрос, типа select * from ..., то никто не стал бы городить ADO.
...
Рейтинг: 0 / 0
01.11.2006, 18:18:26
    #34098765
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Recordset в QueryTable (Excel)
vba White OwlИ никакое ADO нафиг не нужно.
Оно нужно и используеться не просто так.Ошибаетесь, юноша, для решения вашей задачи оно не нужно.

vbaВопрос был не как положить результат запроса на querytable, а как recordset положить на querytable. Насчет штанов через голову вы глубоко ошибаетесь,Хочешь извращаться? Ну запросто, открывай хелп на QueryTable.Recordset и смотри там примеры работы.

vbaеслибы был просто запрос, типа select * from ..., то никто не стал бы городить ADO.Ну-ну...
...
Рейтинг: 0 / 0
02.11.2006, 08:32:59
    #34099491
vba
vba
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Recordset в QueryTable (Excel)
Хорошо, приведите мне пример работы с querytable если результат получаеться через выходной параметер вызова процедуры возвращающий ref_cursor на oracle.
...
Рейтинг: 0 / 0
02.11.2006, 11:30:51
    #34100102
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Recordset в QueryTable (Excel)
а попробуй строку запроса в свойство QueryTables().Sql записать
...
Рейтинг: 0 / 0
02.11.2006, 18:30:17
    #34102089
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADODB.Recordset в QueryTable (Excel)
vbaХорошо, приведите мне пример работы с querytable если результат получаеться через выходной параметер вызова процедуры возвращающий ref_cursor на oracle.С out параметрами, действительно сложности будут...
Ну хорошо, в данном случае действительно использование ADO оправдано будет. Но зачем копировать результатирующий рекордсет в QueryTable я все равно не понимаю.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ADODB.Recordset в QueryTable (Excel) / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]