- •Объекты 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, пример
Объект Collection
Объект Collection (семейство) представляет упорядоченной набор компонентов, на который можно ссылаться как на единое целое.
Объект Collection предоставляет возможность ссылок на группу родственных компонентов как на единый объект. Единственным условием связи различных компонентов является сам факт их включения в семейство. Компоненты семейства не обязаны иметь одинаковый тип данных.
Объект Collection создается аналогично любому другому объекту. Например:
Dim X As New Collection
После создания семейства его компоненты добавляются с помощью метода Add и удаляются с помощью метода Remove. Возвратить конкретные компоненты из семейства позволяет метод Item, а перебор всех элементов семейства осуществляется с помощью конструкции For Each...Next.
Пример использования объекта Collection
В данном примере создается объект Collection (MyClasses), а затем создается окно диалога, в котором пользователи добавляют объекты в семейство. Для проверки работы этой программы необходимо выбрать команду Модуль класса (Class Module) в меню Вставка и описать общую переменную InstanceName на уровне модуля Class1 Class1 (Public InstanceName), в которую будут записываться имена экземпляров объекта. Оставьте по умолчанию имя Class1 . Скопируйте и вставьте следующую программу в общий раздел другого модуля и запустите ее с помощью инструкции ClassNamer в другой процедуре. (Данный пример будет работать только в главном приложении, поддерживающем классы).
Sub ClassNamer()
Dim MyClasses As New Collection ' Создаем объект Collection.
Dim Num ' Счетчик индексов.
Dim Msg As String ' Переменная для записи приглашения.
Dim TheName, MyObject, NameList ' Переменные типа Variant.
Do
Dim Inst As New Class1 ' Создаем новый экземпляр Class1.
Num = Num + 1 ' Увеличиваем значение Num, а затем
' принимаем имя.
Msg = "Введите имя объекта." & Chr(13) _
& "Для просмотра имен в семействе нажмите кнопку 'Отмена'."
TheName = InputBox(Msg, "Имена компонентов семейства")
Inst.InstanceName = TheName ' Даем имя экземпляру объекта.
' Если пользователь ввел имя,
If Inst.InstanceName <> "" Then
' добавляем именованный объект в семейство.
MyClasses.Add item := Inst, key := CStr(Num)
End If
' Очищаем текущую ссылку, чтобы принять новую.
Set Inst = Nothing
Loop Until TheName = ""
For Each MyObject In MyClasses ' Создаем список имен.
NameList = NameList & MyObject.InstanceName & Chr(13)
Next MyObject
' Выводим список имен в окно сообщений.
MsgBox NameList, , "Имена компонентов в семействе MyClasses"
For Num = 1 To MyClasses.Count ' Удаляем имя из семейства.
MyClasses.Remove 1 ' Поскольку семейства индексируются
' автоматически, каждый раз удаляем
Next ' первый компонент семейства.
End Sub
Объект Control
Объект Control, это элемент управления в форме, отчете или в разделе, который присоединен к другому элементу управления или находится внутри него. На следующем рисунке схематически представлена связь объекта Control с объектом Form или Report.
?
Все элементы управления в форме или отчете принадлежат к семейству Controls соответствующего объекта Form или Report. Элементы управления определенного раздела принадлежат к семейству Controls этого раздела. Элементы управления, находящиеся внутри таких элементов управления, как элемент управления «Набор вкладок» или группа переключателей принадлежат к соответствующим семействам Controls этих элементов управления. Элемент управления типа подпись, присоединенный к другому элементу управления, принадлежит к семейству Controls этого элемента управления.
При ссылках на конкретные объекты Control в семействе Controls допускаются как явные, так и неявные ссылки на семейство Controls.
' Неявная ссылка на элемент НовыеДанные семейства Controls.
Me!НовыеДанные
' Если имя элемента управления содержит пробел:
Me![Новые данные]
' Выполняется несколько медленнее.
Me("НовыеДанные")
' Ссылка на элемент управления по его индексу в семействе.
Me(0)
' Ссылка с использованием семейства подчиненной формы.
Me.ctlSubForm.Controls!НовыеДанные
' Явные ссылки на элемент НовыеДанные семейства Controls.
Me.Controls!НовыеДанные
Me.Controls("НовыеДанные")
Me.Controls(0)
Примечание. Представление объекта Form или Report в программе с помощью ключевого слова Me допускается только при ссылках на форму или отчет в программах, находящихся в модуле класса. При ссылках на форму или отчет из стандартного модуля или из модулей других форм и отчетов необходимо указывать полную ссылку.
Каждый объект Control обозначается конкретной встроенной константой. Например, константа acTextBox описывает элемент управления типа поле, а константа acCommandButton – кнопку. Константа для конкретного элемента управления Microsoft Access задается с помощью свойства ControlType этого элемента управления.
Определить тип существующего элемента управления позволяет свойство ControlType. Однако для использования элемента управления в программе нет необходимости знать его тип, достаточно просто представить этот элемент управления с помощью переменной типа Control.
Если элемент управления, на который осуществляется ссылка, является встроенным в Microsoft Access и его тип известен, то для его представления используется переменная специального типа. Например, для элемента управления типа поля описывается переменная типа TextBox, как показано в следующем примере.
Dim txt As TextBox
Set txt = Forms!Сотрудники!Фамилия
Примечание. Если элемент управления является элементом управления ActiveX, то для его обозначения следует описать переменную типа Control; в этом случае использование переменной специального типа не допускается. Переменная, предназначенная для представления элемента управления неизвестного заранее типа, также описывается с типом Control.
Семейство Controls элемента управления типа группы может содержать другие элементы управления, такие как переключатель, флажок, выключатель и подпись.
Элемент управления «Набор вкладок» содержит семейство Pages, которое представляет собой особый тип семейства Controls. Семейство Pages содержит объекты Page (страница), являющиеся элементами управления. В свою очередь, каждый объект Page также содержит семейство Controls, включающее все элементы управления на соответствующей странице.
Другие семейства Controls содержат объекты Control, к которым может быть присоединена подпись. К таким элементам управления относятся поле, группа переключателей, переключатель, флажок, выключатель, поле со списком, список, кнопка, присоединенная рамка объекта и свободная рамка объекта.
