Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / формируется Excel Книга1 из программы на VB6. Очень ДОЛГО! / 8 сообщений из 8, страница 1 из 1
20.10.2006, 12:21
    #34069286
klen_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формируется Excel Книга1 из программы на VB6. Очень ДОЛГО!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Set XL = CreateObject("Excel.Application")
XL.Visible = False
XL.Workbooks.Add
XL.Sheets("Лист1").Name = "Накладная"
XL.Application.ScreenUpdating = False
Dim i As Integer
Do While Not rst.EOF ' записей всего 20 или 30
    i = i +  1 
    XL.Cells(i,  1 ).Value = rst.Fields![detal]
    XL.Cells(i,  2 ).Value = rst.Fields![name]
    XL.Cells(i,  3 ).Value = rst.Fields![kolvo]
    XL.Cells(i,  4 ).Value = rst.Fields![summa]
    rst.MoveNext
Loop
XL.Visible = True
XL.Application.ScreenUpdating = True
Set XL = Nothing

Что сделать, чтобы формирование прошло в момент. Пользователь не доволен что медленно. Где-то около минуты.
...
Рейтинг: 0 / 0
20.10.2006, 12:25
    #34069308
Типа-гость
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формируется Excel Книга1 из программы на VB6. Очень ДОЛГО!
а rst что? ADORecordSet?
...
Рейтинг: 0 / 0
20.10.2006, 12:47
    #34069425
klen_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формируется Excel Книга1 из программы на VB6. Очень ДОЛГО!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
    
Set conn = New ADODB.Connection
conn.ConnectionString = "DRIVER={Microsoft dBase Driver (*.dbf)};" & "DBQ=" & path_basa & ";" & "DefaultDir=" & path_basa & "\"
conn.Open
Set rst = New ADODB.Recordset
rst.Open "SELECT * FROM " & sama_basa, conn

Я так отрыл открыл таблицу, но не в этом дело. Да же простой массив в Excel Книгу1 заносится медленно. Думаю дело в OLE объекте. Но что сделать чтобы было быстрее не знаю !
...
Рейтинг: 0 / 0
20.10.2006, 13:40
    #34069685
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формируется Excel Книга1 из программы на VB6. Очень ДОЛГО!
klen_
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
    
Set conn = New ADODB.Connection
conn.ConnectionString = "DRIVER={Microsoft dBase Driver (*.dbf)};" & "DBQ=" & path_basa & ";" & "DefaultDir=" & path_basa & "\"
conn.Open
Set rst = New ADODB.Recordset
rst.Open "SELECT * FROM " & sama_basa, conn

Я так отрыл открыл таблицу, но не в этом дело. Да же простой массив в Excel Книгу1 заносится медленно. Думаю дело в OLE объекте. Но что сделать чтобы было быстрее не знаю !

выключить антивирус, просмотреть загрузку проца в "Диспетчере задач"
...
Рейтинг: 0 / 0
20.10.2006, 13:42
    #34069701
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формируется Excel Книга1 из программы на VB6. Очень ДОЛГО!
попытаться предварительно сохранить файл Excel на диск, а потом заполнять его (но это уже танцы с бубнами)
...
Рейтинг: 0 / 0
20.10.2006, 13:49
    #34069740
Типа-гость
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формируется Excel Книга1 из программы на VB6. Очень ДОЛГО!
вместо:
Dim i As Integer
Do While Not rst.EOF
....
....
loop

пиши
Dim massiv As Variant
massiv = rst.GetRows
xl.Cells(1, 1) = massiv
...
Рейтинг: 0 / 0
20.10.2006, 16:44
    #34070642
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формируется Excel Книга1 из программы на VB6. Очень ДОЛГО!
Код: plaintext
1.
rst.Open "SELECT * FROM " & sama_basa, conn
XL.Cells( 1 ,  1 ).CopyFromRecordset rst
если у тебя вставляются в лист не все столбцы то
в selecte выберай сразу нужные
Код: plaintext
1.
rst.Open "SELECT detal, name, kolvo, summa FROM " & sama_basa, conn
XL.Cells( 1 ,  1 ).CopyFromRecordset rst
...
Рейтинг: 0 / 0
26.10.2006, 10:10
    #34082384
vitaus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формируется Excel Книга1 из программы на VB6. Очень ДОЛГО!
Можно проще поступить - поменять позднее связывание на раннее, подключив библиотеку экселя. Ну, и объект XL под With сразу вынести, слегка убыстрит.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / формируется Excel Книга1 из программы на VB6. Очень ДОЛГО! / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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