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

Объект 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