powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Runtime error R6025
2 сообщений из 2, страница 1 из 1
Runtime error R6025
    #37604098
slaviq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Excel 2007, VB 6.5
Выполняю запрос через ADODB к ODBC в БД SYBASE и вставляю результат на лист через QueryTable
На некоторых запросах Excel сваливается с ошибкой Runtime Error! Program "c:\...\ EXCEL.EXE" R6025 - pure virtual function call
все запросы однотипны select element, date_time, sum(), sum(), ..from table (таблицы только разные)
половина выполнений с ошибкой, вторая нормально отрабатывает и генерит данные на листе
в самих результатах по проблемным запросам ничего криминального не видно, количество строк менее 1000
Дебаг показал что валится именно на Set qtData = wsSheet.QueryTables.Add(rst, rnStart)
Кто подобное встречал??? Гугл молчит, но есть какие то намеки на числовой формат типа Money в старых версиях Excel


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Public Function SetQuryDataToWs(wsSheet As Worksheet, aODBC, aUID, aPWD, stSQL As String) As Boolean
    Dim cnt As ADODB.Connection
    Dim rst As ADODB.Recordset
     
    Dim qtData As QueryTable
    Dim rnStart As Range
     
    Set cnt = New ADODB.Connection
    'MsgBox stSQL
     
    With wsSheet
        Set rnStart = .Range("A1")
    End With
     
    With cnt
        .CursorLocation = adUseClient
        .Open aODBC, aUID, aPWD
        .CommandTimeout = 0
        Set rst = .Execute(stSQL)
    End With
     
     'Here we add the Recordset to the created QueryTable.
    Set qtData = wsSheet.QueryTables.Add(rst, rnStart)
     
     'In order to view any data the QueryTable need to be refreshed.
    'qtData.Refresh
    qtData.RefreshStyle = xlInsertEntireRows
    qtData.Refresh False
     
     'Cleaning up.
    rst.Close
    cnt.Close
    Set rst = Nothing
    Set cnt = Nothing
  SetQuryDataToWs = True
End Function
...
Рейтинг: 0 / 0
Runtime error R6025
    #37607907
slaviq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sybase возвращал числовые значения в стиле 12,00000000000000000000000000000000000000000000000000000
от них у Excel голова болела :)
cast(sum() as decimal(18,8)) все исправил
вопрос закрыт
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Runtime error R6025
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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