Тема: Excel VBA: Создать файл xls, вставить в него данные, закрыть и ...
... обратиться к нему как к БД через ADO.
Проблема в том что создаваемый файл xls не должен появляться на экране. Кострукция типа:
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
xlApp.UserControl = False
Set xlWb = xlApp.Workbooks.Add
xlWb.Worksheets.Add().Name = "system"
Set xlWs = xlWb.Worksheets("system")
xlWs.Cells(1, 1).CopyFromRecordset oRecordset
xlWb.SaveAs Filename:=ActiveWorkbook.Path & "\rashodomeri_tmp.xlsx", FileFormat:=xlOpenXMLWorkbook, ConflictResolution:=xlLocalSessionChanges
Выводит на экран файл и всё тут
Для ясности напишу зачем я это делаю.
Есть задача отобразить данные из MS SQL сервера, при условиях:
1. Доступ к БД через интернет (достаочно медленный) - количество запросов должно быть сведено к минимуму.
2. Данные в БД хранятся в "сыром" т.е. бинарном виде - требуется преобразовать эти данные в привычную человеку форму.
3. В один из столбцов в БД пишется дата (формат DateTime) нужно вывести 3 вида отчета - дневной, месячный и годовой.
Дневной вид отчета делается легко: запрос с between, на лету из RecordSet данные конвертирую в человеческий формат. А вот месячный и годовой, решил сделать так: Сначала такой же запрос как и в дневном (только период дат побольше), потом копирование всего этого хозяйства в локальную таблицу, потом обращение к этой таблице как к БД через ADO с группировкой по месяцу или году и вуаля...
... но тут блин выскакивает на экран новый файл и как с ним боротться не знаю
Сейчас буду копать в сторону встроенных процедур на сервере с БД