MS Excel - Экспорт Данных запроса (с параметрами) в Excel c простым форматированием "шапки"
Private Sub ExportQueryToExlel03() 'MS Excel - Экспорт Данных запроса (с параметрами) в Excel c простым форматированием "шапки" '-------------------------------------------------------------------------- Dim objExcelApp As Object, objWrkBk As Object, objWrkSht As Object Dim qdf As DAO.QueryDef Dim rst As DAO.Recordset Dim i As Integer
On Error GoTo ExportQueryToExlel03_Err
Set qdf = CurrentDb.QueryDefs("qwTest_001") qdf.Parameters(0) = Me!txtДатаНачала qdf.Parameters(1) = Me!txtДатаОкончания
Set rst = qdf.OpenRecordset 'Проверка есть ли данные для вывода: With rst If .BOF = True And .EOF = True Then MsgBox "Запрос не вернул записей, экспорт прекращён!", vbExclamation, "Ошибка экспорта данных" GoTo ExportQueryToExlel03_Bye End If End With
'Запуск MS Excel: Set objExcelApp = CreateObject("Excel.application") Set objWrkBk = objExcelApp.Workbooks.Add Set objWrkSht = objWrkBk.ActiveSheet objExcelApp.Visible = True objWrkSht.Rows(1).RowHeight = 24 For i = 1 To rst.Fields.Count With objWrkSht.Cells(1, i) .Value = rst.Fields(i - 1).Name Select Case i Case 3 .Value = "Другое Название Поля:" .ColumnWidth = 60 Case Else .ColumnWidth = 20 End Select .Borders.LineStyle = 1 .HorizontalAlignment = -4108 .VerticalAlignment = -4108 .Interior.Color = RGB(243, 244, 245) .Font.Bold = True End With Next objWrkSht.Range("A2").CopyFromRecordset rst
ExportQueryToExlel03_Bye: On Error Resume Next rst.Close Set rst = Nothing Set qdf = Nothing Set objWrkSht = Nothing Set objWrkBk = Nothing Set objExcelApp = Nothing Err.Clear
Exit Sub
ExportQueryToExlel03_Err: MsgBox "Error: " & Err.Number & vbCrLf & Err.Description & vbCrLf & _ "in Sub: ExportQueryToExlel03 in module: [Неизвестный Модуль]", vbCritical, "Error in Application" Err.Clear Resume ExportQueryToExlel03_Bye End Sub
|