Экспорт из листбокса в Excel.

msflm
Дата: 06.09.2005 20:54:36
Хаюшки. :)

Возникла проблема такого плана:
База мдб, акс2000.
Есть форма, в которой есть листбокс с динамическим RowSource и куча кнопок, которые этот RowSource программно меняют.

Юзверям(будь они не ладны) понадобилось, чтобы любой результат вывода в этот Листбокс можно было поиметь в Excel.

мне пока знакомы два метода
либо так:

DoCmd.OutputTo 

либо так:
Dim ExcelSheet As Object

Set ExcelSheet = CreateObject("Excel.Application")

ExcelSheet.Application.Visible = True

For i = 0 To Liste_alle_WR.ListCount - 1
    For n = 0 To Liste_alle_WR.ColumnCount
        ExcelSheet.Application.Cells(i + 1, n + 1).Value = Liste_alle_WR.Column(n, i)
    Next n
Next i


но проблема в том, что записей уже более 10000, и опять же по желанию юзверей(будь они не ладны) могут высветиться одним махом все записи, и их количество растет. В общем, если построчно вписывать в файл, то длится сия процедура ужасно долго. А аутпутнуть можно таблицу или запрос, но никак не RowSource.

Поискал по форуму, но пока не надыбал ничего похожего.

Есть у кого-нить идеи как впихнуть все в ексель?
Заранее благодарен (Денег не предлагаю, а вот пивка могу, если недалеко(Юг Германии) :) ) .
Alexander G
Дата: 07.09.2005 00:29:59
Имея RowSource, можем получить рекордсет или массив.
А потом засовываем на лист так :
/topic/136321&hl=#1089232
msflm
Дата: 07.09.2005 12:03:56
2 Alexander G:

спасибо за идею! Она меня натолкнула на мыслю.
и в итоге решил вопрос более просто. По крайней мере выполняется все это ха считанные секунды- тут уж точно на три порядка быстрее у меня вышло. :)

Выкладываю, авось кому понадобится:

Dim myQuery
Dim myDB As Database
Set myDB = CurrentDb

myQuery="TST_QUERY"

myDB.CreateQueryDef myQuery, Liste_alle_WR.RowSource
DoCmd.OutputTo acOutputQuery, myQuery, acFormatXLS, "C:\WR_LISTE.XLS", True

DoCmd.DeleteObject acQuery, myQuery
Set myDB = Nothing
Alexander G
Дата: 07.09.2005 15:56:42

А у меня и в мыслях не возникло, что может устроить такое элементарное решение.
Обычно всем хочется в определенное место листа , с надписями и т.п...
msflm
Дата: 07.09.2005 16:48:14
ага, я их не балую.
а то потом начнутся прибамбасы.
Ну, или только, если сильно попросят. :)