У нас есть общая функция, которая будет экспортировать наши непрерывные формы непосредственно в Excel. Вам нужно будет добавить библиотеку Microsoft Excel в доступные инструменты, чтобы она работала из вашего кода. Эта функция может быть доступна пользователям во всех ваших формах. Если вы хотите экспортировать напрямую из таблицы, вы можете легко адаптировать его.
Public Function ExportToExcel(x_frm as Form)
Dim ctl As Control, _
xlApp As Excel.Application, _
xlBook As Excel.Workbook, _
xlSheet As Excel.Worksheet, _
columnName() As String, _
columnCount as Integer
'suppose Excel is not opened. You can add an extra control for that'
Set xlApp = CreateObject("Excel.Application")
'create an Excel workbook, declare the first sheet'
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
xlApp.Visible = False
columnCount = fc().section(0).Controls.Count
'use array columnName() to collect the column names of detail section in tabbed order'
ReDim columnName(columnCount)
For Each ctl In fc().section(0).Controls
columnName(ctl.TabIndex) = ctl.Name
Next ctl
'This function will add a title to the excel sheet with my favorite formating'
'I can for example decide this title to be bold/Arial/16 on cell(B2)'
addTitleToExcelSheet xlSheet, x_frm.Name
'This function will add the column names to my Excel sheet with my favorite formating'
'for example column names will be added on row 4, columns B to B + columnCount'
addColumnNameToExcelSheet xlSheet, columnName()
'This function will add the column values to my Excel sheet with specific format (date, number, etc)'
'Data will be added to the range defined by '
'row 5 to row 5 + x_frm.recordset.recordcount, '
'columns B to B + columnCount.'
'Recordset values will have to be read according to tab order'
'exported data can depend on recordset filter and orderBy property: your choice'
addColumnValueToExcelSheet xlSheet, columnName(), x_frm.Recordset
'The Excel sheet is made visible and saved under the current folder with the forms name'
xlApp.Visible = True
xlBook.SaveAs x_frm.Name & ".xls"
Set xlBook = Nothing
Set xlSheet = Nothing
Set xlApp = Nothing
End Function
Вот вид на результат. Слева - форма доступа, справа - результат Excel exportToExcel. Надеюсь, вам понравится.