- •Объекты Microsoft Access
- •Объект Application
- •Объект Application, примеры
- •Объект Collection
- •Пример использования объекта Collection
- •Объект Control
- •Семейство Controls
- •Объект Control, семейство Controls, пример
- •Объект Debug
- •Объект DoCmd
- •Объект DoCmd, пример
- •Объект Err
- •Пример использования объекта Err
- •Объект Form
- •Семейство Forms
- •Объект Form, семейство Forms, примеры
- •Семейство ItemsSelected
- •Семейство ItemsSelected, примеры
- •Объект Module
- •Семейство Modules
- •Объект Module, семейство Modules, пример
- •Объект Page
- •Семейство Pages
- •Объект Page, семейство Pages, пример
- •Объект Reference
- •Семейство References
- •Объект Reference, семейство References, пример
- •Объект Report
- •Семейство Reports
- •Объект Report, семейство Reports, примеры
- •Объект Screen
- •Объект Screen, пример
Объект Form, семейство Forms, примеры
Пример 1. В данном примере создается новая форма и определяются ее свойства.
Sub NewForm()
Dim frm As Form
' Создает новую форму.
Set frm = CreateForm
' Задает значения свойств формы.
With frm
.RecordSource = "Товары"
.Caption = "Форма Товары"
.ScrollBars = 0
.NavigationButtons = True
End With
' Восстанавливает окно формы.
DoCmd.Restore
End Sub
Пример 2. Перебираются компоненты семейства Forms и выводятся имена всех форм в этом семействе. Для каждой формы перебираются компоненты семейства Controls и выводятся имена всех элементов управления в этой форме.
Sub AllOpenForms()
Dim frm As Form, ctl As Control
' Перебирает компоненты семейства Forms.
For Each frm In Forms
' Выводит имя формы.
Debug.Print frm.Name
' Перебирает компоненты семейства Controls каждой формы.
For Each ctl In frm.Controls
' Выводит имя каждого элемента управления.
Debug.Print ">>>"; ctl.Name
Next ctl
Next frm
End Sub
Пример 3. Семейство Forms используется в выражении. Пусть имеется форма с именем «Заказы», содержащая элемент управления «СтранаПолучателя». В примере применяется функция IIf для возвращения значения, вычисляемого на основе текущего значения этого элемента управления. Если элемент управления «СтранаПолучателя» содержит пустое значение (Null), выражение возвращает пустую строку; в других случаях оно возвращает содержимое этого элемента. Введите следующее выражение в ячейку свойства Данные (ControlSource) поля в форме:
= IIf(IsNull(Forms!Заказы! СтранаПолучателя), "", Forms!Заказы!СтранаПолучателя)
Семейство ItemsSelected
Семейство ItemsSelected (выделенные объекты) обеспечивает доступ к данным, содержащихся в выделенных строках списка. В отличие от других семейств, семейство ItemsSelected содержит не объекты, а значения типа Variant. Каждое из значений типа Variant представляет целочисленный индекс, указывающий положение выделенной строки в списке или поле со списком.
Для загрузки данных из выделенных строк списка или поля со списком семейство ItemsSelected используется вместе со свойством Column или свойством ItemData. Для перечисления элементов семейства ItemsSelected используется конструкция For Each...Next. Например, если в форме имеется список «Сотрудники», то можно с помощью семейства ItemsSelected перебрать элементы списка и с помощью свойства ItemData возвращать значения присоединенного столбца для каждой выделенной строки списка.
Для того чтобы разрешить одновременное выделение нескольких строк списка или поля со списком, следует выбрать для свойства Несвязное выделение (MultiSelect) элемента управления значение «Простой» или «Со связным выбором».
Семейство ItemsSelected не имеет методов и имеет одно определенное свойство Count.
Семейство ItemsSelected, примеры
Пример 1. Для каждой выделенной строки в списке «Название» в форме «Контакты» выводится значение из присоединенного столбца. Для выполнения этого примера создайте список, определите для него свойство Присоединенный столбец (BoundColumn) и укажите для свойства Несвязное выделение (MultiSelect) значение «Простой» или «Со связным выбором». Переключитесь в режим формы, выделите строки списка и запустите следующую программу.
Sub BoundData()
Dim frm As Form, ctl As Control
Dim varItm As Variant
Set frm = Forms!Контакты
Set ctl = frm!Название
For Each varItm In ctl.ItemsSelected
Debug.Print ctl.ItemData(varItm)
Next varItm
End Sub
Пример 2. Используется тот же список, но выводятся значения всех столбцов для каждой выделенной строки списка.
Sub AllSelectedData()
Dim frm As Form, ctl As Control
Dim varItm As Variant, intI As Integer
Set frm = Forms!Контакты
Set ctl = frm!Название
For Each varItm In ctl.ItemsSelected
For intI = 0 To ctl.ColumnCount - 1
Debug.Print ctl.Column(intI, varItm)
Next intI
Debug.Print
Next varItm
End Sub