Настольная СУБД Access 2002

детское пуховое одеяло одно из самых необходимых вещей для новорожденных. |



Создание рабочего листа Excel с помощью кода автоматизации



Создание рабочего листа Excel с помощью кода автоматизации

Те же действия, что происходят при нажатии кнопки Анализ в MS Excel, можно осуществить при помощи кода автоматизации VBA. Преимуществом такого способа является возможность форматировать созданный объект специально под нужды конкретного приложения. Рассмотрим функцию CreateCustomSheet (), создающую новый объект Worksheet и заполняющую его данными из таблицы "Товары" базы данных Microsoft Access:

Function CreateCustomSheet() As Integer

'Создание рабочего листа MS Excel из таблицы "Товары"

'Описание локальных переменных

'(Объектные переменные описаны на уровне модуля)

Dim сйэБорей As Database 'Текущая база данных

Dim rstProd As Recordset 'Объект Recordset

Dim intRow As Integer 'Счетчик строк

Dim intCol As Integer 'Счетчик столбцов

'Открытие таблицы в текущей базе данных

Set dbБорей = CurrentDb()

Set rstProd = dbBopeu.OpenRecordset("Товары", dbdpenTable)

DoCmd.Hourglass True 'Создание нового объекта Excel Workbook

Set xlwProd = CreateObject("Excel.Sheet") ''Создание объекта

Application для применения метода Quit

Set xlaProd = xlwProd.Parent

intRow = 1

intCol = 1

rstProd.MoveFirst 'Переход к первой записи

Do Until rstProd.EOF

'Цикл с шагом в одну запись

For intCol = 1 То rstProd.Count

'Цикл с шагом в одно поле

If (Not IsNull(rstProd(intCol -1))) Then

xlwProd.ActiveSheet.Cells(intRow, intCol).Value =

CStr(rstProd(intCol -I}}

End If

Next intCol

rs t Prod.MoveNext intRow = intRow + 1 Loop

For intCol = 1 To xlwProd.ActiveSheet.Columns.Count

'Форматирование каждого столбца рабочего листа

xlwProd.ActiveSheet.Columns(intCol).Font.Size = 8

xlsCust.ActiveSheet.Columns(intCol).AutoFit If intCol = 8 Then

'Выравнивание по левому краю числовых и

'смешанных почтовых кодов

xlwProd.ActiveSheet.Columns(intCol).HorizontalAlignment = _

xlLeft

End If

Next

intCol DoCmd.Hourglass False

xlwProd.SaveAs (CurDir & "\Товары_2.xls")

xlaProd.Quit End Function

Тип данных, возвращаемых выражением rstProd(intCol-l), следует специально изменить с variant на string при помощи функции cstr(), иначе Microsoft Excel вместо нужной величины отобразит в соответствующем столбце #н/д (#N/A#). Если объект Recordset содержит поля, типы которых отличны от Text, то для определения типа данных в столбце используйте соответствующую функцию СТуре().

Константа xlLeft, присвоенная в качестве значения свойству HorizontalAlignment восьмого столбца, представляет собой встроенную константу Excel, определяемую в тот момент, когда устанавливается ссылка на объектную библиотеку Microsoft Excel 10.0 Object Library. Выделение элемента Constants (Константы) в списке Модули/ Классы окна просмотра объектов при подключенной библиотеке Excel отображает константы xlConst. На рис. 15.30 приведено числовое значение константы xlLeft, которая является одной из констант для задания значения свойства HorizontalAlignment.









Начало    Назад    Вперед