powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Экспорт из MSHFlexGrid
23 сообщений из 23, страница 1 из 1
Экспорт из MSHFlexGrid
    #35245635
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, пожалуйста можно ли как то сделать быстрый экспорт из MSHFlexGrid в Excel
не используя цикл?
Код: plaintext
1.
2.
3.
4.
For i =  1  To FG.Rows -  1 
For j =  1  To FG.Cols -  1 
objEx.Worksheets( 1 ).Cells(i, j).Value = FG.TextMatrix(i, j)
Next j, i
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35245640
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Clip
CopyFromRecordset
GetString
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35245650
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если рекордсет не один и к тому же еще закрыт
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35245664
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбрать нужный и открыть.
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35245684
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понял
а с Clip как?
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35245721
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это массив строк обычный, как и GetString
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35245796
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо
CopyFromRecordset-оптимальное решение
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35247262
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CopyFromRecordset-работает быстро, но вот проблема
если recordcount больше ~1100(точно не проверял, 1100 выгружает, а 3000 нет) то вываливается по ошибке:
80004005
Method CopyFromRecordset of object Range failed

Кто нибудь сталкивался с такой ошибкой?
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35247280
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот здесь все посмотрели ?
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35247320
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помотрел, но понял только то что в поле Memo слишком большая запись, так ли это?
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35247327
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A null у вас есть в рекордсете ? Какой эксель ? У меня работало и на 50 000 записей .
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35247334
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Null присутствует, Excel 2003
Но Null присутствует и при выгрузке записей <=~1100 и всё работает
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35247826
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вычислил поле на котором обрывается рекордсет, это поле Memo
но закономерности не понял в одном случае длина поля 960 в другом 255 очистив поля ошибка пропадает
почему такое происходит
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35247923
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это ограничение у экселя с полями мемо, где-то на просторах мсдн даже есть КБ по этому вопросу, сейчас уже не найду, но если вам интересно сами можете поискать.
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35249270
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда не пойму почему
Код: plaintext
1.
2.
3.
4.
For i =  1  To Рекордсет.recordcount -  1 
For j =  1  To Рекордсет.fields.count -  1 
objEx.Worksheets( 1 ).Cells(i, j).Value = FG.TextMatrix(i, j)
Next j, i
обрабатывает все записи в рекордсете без ошибки
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35249281
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
потому-что там берется текстовое предствление данных, а вы blob-поле считываете в excel напрямую через copyfromrecordset
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35249372
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда, по моему мнению этот способ
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
For i =  1  To rs.RecordCount -  1 
For j =  1  To rs.Fields.Count -  1 
    DoEvents
    If strin <> "" Then
    strin = strin & vbTab & rs.Fields(j)
    Else
    strin = rs.Fields(j)
    End If
Next j
    Clipboard.Clear
    Clipboard.SetText strin
    objEx.Worksheets( 1 ).Cells(i,  1 ).Select
    objEx.Worksheets( 1 ).Paste
    MainFrm.Caption = i
    strin = ""
    rs.MoveNext
Next i
самый быстрый получается
только с кириллицей траблы при вставке
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35249812
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtimтогда не пойму почему
Код: plaintext
1.
2.
3.
4.
For i =  1  To Рекордсет.recordcount -  1 
For j =  1  To Рекордсет.fields.count -  1 
objEx.Worksheets( 1 ).Cells(i, j).Value = FG.TextMatrix(i, j)
Next j, i
обрабатывает все записи в рекордсете без ошибки

Я имел в виду это
Код: plaintext
1.
2.
3.
4.
5.
For i =  1  To rs.RecordCount -  1 
For j =  1  To rs.Fields.Count -  1 
objEx.Worksheets( 1 ).Cells(i, j).Value = rs.Fields(j)
rs.MoveNext
Next j, i
но это тоже не работает
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35250082
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blob-поля через GetChunk
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35252881
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GetChunk-ругается ошибкой 3219, операция не допускается в данном контексте

рекордсет открываю так:
rs.Open sqlStr, cn, adOpenDynamic, adLockPessimistic

что ему нехватает?
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35252900
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cn активно ?
Курсор на клиенте ?
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35252905
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cn-активно
курсор и так и так пробовал
...
Рейтинг: 0 / 0
Экспорт из MSHFlexGrid
    #35253008
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
This error usually means that you're trying to use GetChunk to read data from a field that doesn't support it.
вот в чём дело аказывается
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Экспорт из MSHFlexGrid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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