Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Объекты Microsoft Access.doc
Скачиваний:
3
Добавлен:
17.09.2019
Размер:
147.97 Кб
Скачать

Объект Report

Объект Report представляет конкретный отчет Microsoft Access. Объект Report является компонентом семейства Reports, в которое входят все текущие открытые отчеты.

В рамках семейства Reports отдельные отчеты нумеруются с помощью индекса, начинающегося с нуля. Допускаются ссылки на объект Report в семействе Reports либо по имени отчета, либо по его индексу в семействе. Имена отчетов, содержащие пробелы, следует заключать в квадратные скобки ([ ]).

Синтаксис

Пример

Reports!имяОтчета

Reports!ОтчетЗаказы

Reports![имя отчета]

Reports![Отчет Заказы]

Reports("имяОтчета")

Reports("ОтчетЗаказы")

Reports(индекс)

Reports(0)

Каждый объект Report содержит семейство Controls, включающее все элементы управления в отчете. При ссылках на конкретные элементы управления в отчете допускаются как явные, так и неявные ссылки на семейство Controls. При неявных ссылках на объекты из семейства Controls программы выполняются быстрее. В следующем примере демонстрируются два способа ссылки на элемент управления «НовыеДанные» в отчете «Заказы».

' Неявная ссылка.

Reports!Заказы!НовыеДанные

' Явная ссылка.

Reports!Заказы.Controls!НовыеДанные

Семейство Reports

Семейство Reports содержит все отчеты, открытые в данный момент в базе данных Microsoft Access.

Семейство Reports используется в программах Visual Basic или в выражениях для ссылок на отчеты, открытые в данный момент. Например, для задания или возвращения значений свойств конкретных отчетов бывает удобно организовать перебор всех компонентов семейства. Компоненты семейства обычно перебираются с помощью инструкции For Each...Next. Допускаются ссылки на объект Report в семействе Reports либо по имени отчета, либо по его индексу в семействе.

Индексация компонентов семейства Reports начинается с нуля. Ссылки на отчет по индексу имеют вид Reports(0) для первого открытого отчета в семействе, Reports(1) для второго и т.д. Если сначала открыт отчет Report1, а после него Report2, то ссылка по индексу на Report2 в семействе Reports выглядит как Reports(1). Если затем отчет Report1 будет закрыт, то ссылка по индексу на Report2 в семействе Reports будет иметь вид Reports(0).

Примечание. Для того чтобы составить перечень всех отчетов базы данных, как открытых, так и закрытых, следует выполнить перебор компонентов семейства Documents объекта Container типа Reports. При этом свойство Name каждого конкретного объекта Document возвращает имя отчета.

Не допускается удаление или добавление пользователем объектов Report в семействе Reports.

Объект Report, семейство Reports, примеры

В данном примере создается новый отчет и определяются его свойства.

Sub NewReport()

Dim rpt As Report

' Возвращает объектную переменную, указывающую на новый объект Report.

Set rpt = CreateReport

' Задает значения свойств нового отчета.

With rpt

.RecordSource = "Товары"

.Caption = "Отчет Товары"

End With

' Восстанавливает окно отчета.

DoCmd.Restore

End Sub

В следующем примере перебираются компоненты семейства Reports и выводятся имена всех отчетов в этом семействе. Для каждого отчета перебираются компоненты семейства Controls и выводятся имена всех элементов управления в этом отчете.

Sub AllOpenReports()

Dim rpt As Report, ctl As Control

' Перебирает компоненты семейства Reports.

For Each rpt In Reports

' Выводит имя каждого отчета.

Debug.Print rpt.Name

' Перебирает компоненты семейства Controls каждой формы.

For Each ctl In rpt.Controls

' Выводит имя каждого элемента управления.

Debug.Print ">>>"; ctl.Name

Next ctl

Next rpt

End Sub