Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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

Поиск

Объектная модель Access

VBA интегрирован в Access иначе, чем в Word, Excel и другие компоненты Office.

Отличия заключаются в принципах построения объектной модели, и, в значительной степени, автоматизацией Access – наличием собственных языков (язык SQL и язык макрокоманд).

Собственно модель проста, она включает в себя ряд объектов, обеспечивающих доступ к:

· объектам БД (таблицам, формам, запросам и прочим);

· элементам интерфейса (формы, кнопочные формы, элементы управления);

· среде разработки;

· данным.

 
 

Доступ непосредственно к данным Access осуществляется посредством DAO (Data Access Object) объектов.

 

Особенности объектной модели Access.

1. Данные структурированы, то есть имеют определенный формат.

Так, таблица данных состоит из записей, все записи одинаковы по структуре и длине, каждая запись состоит из полей. Поля имеют тип, который определяет способ представления данного, диапазон значений и возможные операции.

2. Операции над данными, которые выполняются в БД, являются типичными, например:

редактирование;

поиск;

выборки.

3. Интерфейсная часть представлена формами, на которых располагаются элементы управления, посредством которых выполняется управление приложением. Интерфейс позволяет управлять данными приложения, для чего предназначены объекты доступа к данным.

Объекты доступа к данным:

RecordSet – определяет набор записей для формы (таблица, запрос, включает все записи данной таблицы).

RecordSourse – определяет источник записей для формы (Имя таблицы, запроса, ил внешнего источника).

 

С точки зрения программной разработки приложения, нужно иметь представление об объектах, входящих в БД, объектах доступа к данным, и объектах, ответственных за интерфейс. Внутренняя иерархия объектов Access называется объектной моделью.

Описание объектной модели

Application – приложение, корневой объект иерархии. Представляет активное приложение Access. Используется для вызова методов или назначения свойств, относящихся ко всему приложению.

Основные свойства.

1. CurrentData – доступ к активной в данный момент БД.

Application.CurrentData.FullName

2. DoCmd – все методы этого объекта эквивалентны набору макрокоманд среды Access.

DoCmd.OpenForm "Словарь"

3. Forms – доступ ко всем открытым формам.

For Each MyFrm In Forms

MyFrm.Visible = False

Next

4. Reports – доступ ко всем открытым отчетам.

5. Screen – доступ к активной области экрана.

Основные методы.

1. CurrentDB – метод, позволяющий получить ссылку на активную БД, осуществляется через объектную переменную, тип которой объявлен как DataBase, и которой присвоено значение оператором Set.

Dim My_DB As Database

Set My_DB=CurrentDB

‘ Переменная My_DB дает доступ к объекту БД.

Me.Надпись30.Caption = My_DB.Name

‘NewCurrentDataBase("Имя")

2. RefreshDatabaseWindow – метод, позволяющий обновить окно БД.

DoCmd – объект, который используется для управления приложением. Выполняет все действия, которые в Access осуществляются посредством команд меню. Имеет только методы, и все его методы эквивалентны макрокомандам среды Access.

DoCmd.Close (Тип, Имя, Сохранение)

DoCmd.GoToControl (Имя_элемента)

DoCmd.GoToRecord (Тип,Имя,Запись,Смещение)

DoCmd.OpenForm "Имя_формы"

DoCmd.OpenQuery "Имя_запроса"

DoCmd.OpenTable "Имя_таблицы"

Forms – коллекция экранных форм, содержит все текущие открытые формы. Используется для ссылок на формы, открытые в данный момент.

Формы в рамках коллекции нумеруются с 0, но лучше получать доступ по имени формы, синтаксис: Forms!Имя_формы.

Например, Forms!Группы или Forms!("Группы").

Если имя содержит пробелы, оно должно быть заключено в квадратные скобки, например Forms![Моя первая форма].

Пример.

Dim frm As Form

For Each frm In Forms

MsgBox frm.Name

Next frm

Form – объект, представляющий конкретную форму Access. Программно обрабатывается с помощью модуля формы (программная единица, закрепленная за объектом Form). В модуле формы имя объекта (формы) не указывают, заменяя его именем Me (экземпляр объекта, который активен). В редакторе кода VBA для всех объектов модуля отображаются доступные объекты, их свойства и методы.

Свойства форм:

Caption – надпись, заголовок формы.

Name – имя формы в БД.

RecordSourse – объект, который определяет источник данных для формы. Значением этого объекта является имя таблицы, запроса или внешнего источника данных.

Пример.

Me.Надпись35.Caption = Me.RecordSource ‘ Покажет имя источника данных

RecordSet – объект, который является источником данных (записей) для формы. Источником данных для форм являются таблицы или запросы. Объект RecordSet содержит все записи источника данных.

CurrentRecord – номер текущей записи формы.

Controls – коллекция элементов управления формы.

ActiveControl – активный элемент управления.

События форм:

Activate – событие происходит при получении формой фокуса.

AfterUpdate – событие происходит после обновления записей.

Close – событие происходит при закрытии формы.

Current – событие происходит, когда запись получает фокус.

Open – событие происходит при открытии формы.

Timer – свойство формы "TimeInterval"

Методы объекта Form

Recalc –

Refresh – обновление данных в источнике

Repaint – обновление экрана для формы

Requery – повторный запрос к источнику

Undo –

Controls – коллекция объектов, представляющая все элементы управления на форме или отчете (поля, надписи, поля со списком, кнопки и прочие).

Элементы управления по назначению довольно разнообразны, поэтому свойства элементов управления могут быть как общими, так и уникальными для каждого элемента управления:

Общие свойства:

Общие методы:

События:

Reports – коллекция отчетов.

Screen – экран.

Свойства:

ActiveForm

 

CurrentData – база данных, активная в данный момент, подчинен Application.

Включает коллекции всех таблиц, запросов, представлений, процедур и схем данных активной БД.

Dim DB as DataBase

Set DB = CurrentDB

CurrentProject.

Включает коллекции всех форм, отчетов, макросов, модулей активной БД.

 

Cемейство Fields

Объекты Recordset по умолчанию помещаются в семейство Fields.

Основное свойство объекта Field, это свойство Value (значение), используется по умолчанию.

Если созданный объект Recordset содержит записи, то текущей записью становится первая запись. Если записи в объекте отсутствуют, свойство RecordCount получает значение 0, а свойства BOF и EOF значение True.

Изменить положение указателя текущей записи позволяют методы MoveNext, MovePrevious, MoveFirst и MoveLast. (Для объектов Recordset типа статического набора записей с последовательным доступом поддерживается только метод MoveNext). При выполнении цикла по всем записям с помощью методов Move («проход» по объекту Recordset) свойства BOF и EOF используются для проверки начальной и конечной границы объекта Recordset.

Для объектов Recordset типа динамического набора записей в рабочей области Microsoft Jet допускается также использование методов группы Find, таких как FindFirst, позволяющих найти запись, удовлетворяющую определенным условиям. Если запись не обнаруживается, свойство NoMatch получает значение True. Для объектов RecordSet типа таблицы допускается сканирование записей с помощью метода Seek.

Тип созданного объекта RecordSet задается свойством Type, а возможность изменения записей в объекте определяется свойством Updatable. Сведения о структуре основной таблицы, такие как имя и тип данных каждого поля (объект Field) и индекса (объект Index) сохраняются в объекте TableDef.

Dim DB As DataBase

Set DB = CurrentDB

Dim Rst As RecordSet

Set Rst = DB.OpenRecordset ("Имя_Источника")

Метод OpenRecordset

Создает новый объект Recordset и добавляет его в семейство Recordsets.

Синтаксис для объекта Database:

Set НаборЗаписей = Объект.OpenRecordset (источник, тип, параметры, блокировки)

НаборЗаписей – это объектная переменная, представляющая открываемый объект Recordset.

Объект – это объектная переменная, представляющая существующий объект, используемый при создании нового объекта Recordset.

Источник – строковое выражение, определяющее источник записей для Recordset (имя таблицы, запроса, инструкция SQL). Для табличного объекта Recordset в базе данных Microsoft Jet в качестве источника допускается указание только имени таблицы.

Тип – необязательный, константа, указывающая тип открываемого объекта.

Параметры – необязательный, задает характеристики нового объекта Recordset.

Блокировки – необязательный, определяет тип блокировки объекта Recordset.

Тип может быть одним из пяти:

DbOpenTable – табличный объект Recordset (только в рабочей области ядра Microsoft Jet).

DbOpenDynamic – объект Recordset динамического типа, аналогичного динамическому указателю ODBC (только в рабочей области ODBCDirect).

DbOpenDynaset – объект Recordset типа динамического набора записей, аналогичного указателю ключевого набора записей ODBC.

DbOpenSnapshot – объект Recordset типа статического набора записей, аналогичного указателю статического набора записей ODBC.

DbOpenForwardOnly – объект Recordset типа статического набора записей с последовательным доступом.

RecordSet (набор записей для формы).

Свойства

Методы

Refresh

ReQuery

Семейство Fields

Семейство Fields содержит все сохраненные объекты Field объектов Index, QueryDef, Recordset, Relation или TableDef.

Семейство Fields объектов Index, QueryDef, Relation и TableDef содержит спецификации полей, входящих в эти объекты.

Семейство Fields объекта Recordset представляет объекты Field, содержащиеся в строке данных, т.е. в записи. Объекты Field, входящие в объект Recordset, используются для чтения и задания значений полей в текущей записи объекта Recordset.

Объект Field

Объект Field (поле) представляет столбец данных одного типа, обладающий общим набором свойств. Семейство Fields объекта Recordset представляет объекты Field, содержащиеся в строке данных, т.е. в записи. Объекты Field, входящие в объект Recordset, используются для чтения и задания значений полей в текущей записи объекта Recordset.

Как в рабочей области Microsoft Jet, так и в рабочей области ODBCDirect методы и свойства объекта Field обеспечивают работу с полями. Например, данный объект позволяет:

· Определить или указать порядок объектов Field в семействе Fields с помощью свойства OrdinalPosition. (В базах данных ODBCDirect это свойство доступно только для чтения).

· С помощью свойства Value поля объекта Recordset задавать или возвращать сохраненные данные.

· Применять методы AppendChunk и GetChunk и свойство FieldSize для считывания или задания значения поля объекта ActiveX или поля Memo объекта Recordset.

· С помощью свойств Type, Size и Attributes определить тип данных, которые могут сохраняться в поле.

· С помощью свойств SourceField и SourceTable определить источник данных.

В рабочей области Microsoft Jet пользователь имеет возможность:

· С помощью свойства ForeignName задать или возвратить сведения о внешнем поле объекта Relation

· С помощью свойств AllowZeroLength, DefaultValue, Required, ValidateOnSet, ValidationRule или ValidationText задать или возвратить условия на значения поля.

· С помощью свойства DefaultValue поля в объекте TableDef задать значение по умолчанию, которое это поле получит при добавлении новой записи.

Если доступ к объекту Field осуществляется в рамках доступа к объекту Recordset, то данные в текущей записи являются видимыми с помощью свойства Value объекта Field. Для работы с данными в объекте Recordset обычно нет необходимости в прямых ссылках на семейство Fields; вместо этого используют косвенные ссылки на свойство Value объекта Field в семействе Fields объекта Recordset.

При ссылках на объект Field используют его порядковый номер в семействе или значение свойства Name (имя):

Fields(0)

Fields("имя")

Fields![имя]

Этот же синтаксис используется для ссылок на свойство Value объекта Field, который пользователь создает и добавляет в семейство Fields. Ссылка на объект Field или на свойство Value объекта Field определяется по контексту.

 

Объект Field используется для обработки на уровне записей (указатель на строку).

5 типов (таблица и динамический набор)

Основное свойство Value используется по умолчанию

Field

Field (номер)

Field ("имя")

Методы используются для перехода по записям и для поиска:

MoveFirst

MoveLast

MoveNext

MovePrevious

 

FindFirst УСЛОВИЕ

FindLast

FindNext

FindPrevious

Здесь «Условие», это строка.

Примеры.

NoMatch (нет соответствия)

Findfirsr "Code =" & NOM

If NoMatch Then MsgBox "Не найдено"

 

Переходы по записям

Свойство RecordCount.

Возвращает число записей, к которым был осуществлен доступ в объекте Recordset или TableDef, или полное число записей в табличном объекте Recordset (тип Long).

Дополнительные сведения

Свойство RecordCount используется для определения числа записей объекта Recordset, к которым проводилось обращение. После обращения к последней записи набора значение свойства RecordCount становится равным полному числу записей в объекте Recordset. Для принудительного обращения к последней записи следует вызвать метод MoveLast.

Примечание. Заполнение с помощью метода MoveLast объекта Recordset при его открытии отрицательно сказывается на быстродействии. Если точное определение значения свойства RecordCount не требуется сразу после открытия объекта Recordset, рекомендуется подождать, пока объект Recordset будет заполнен в результате выполнения остальной программы, а уже потом обращаться к свойству RecordCount.

Для объектов Recordset, не содержащих записей, свойство RecordCount имеет значение 0.

При вызове метода Requery для объекта Recordset значение свойства RecordCount изменяется так же, как и при повторном выполнении запроса.

Свойства BOF, EOF

Свойства BOF и EOF используют для проверки наличия записей в объекте Recordset, а также для сообщения о выходе за пределы объекта при перемещении от записи к записи. Возвращаемые значения свойств BOF и EOF определяются положением указателя текущей записи, имеют тип данных Boolean.

Свойство BOF возвращает значение True, если указатель текущей записи расположен перед первой записью набора записей, и значение False, если указатель текущей записи расположен на первой записи набора или на любой записи после нее.

Свойство EOF возвращает значение True, если указатель текущей записи расположен после последней записи набора, и значение False, если указатель текущей записи расположен на последней записи набора или на любой записи перед ней.

Дополнительные сведения

Если любое из свойств BOF или EOF имеет значение True, текущая запись не определена.

При открытии объекта Recordset, не содержащего ни одной записи, оба свойства BOF и EOF получают значение True, а свойство набора записей RecordCount (число записей) получает значение 0. При открытии объекта Recordset, который содержит хотя бы одну запись, первая запись набора становится текущей записью, а свойства BOF и EOF получают значения False. Данные свойства сохраняют значения False до тех пор, пока указатель текущей записи не переместится за пределы начала или конца набора записей при использовании, соответственно, методов MovePrevious или MoveNext, соответственно. После выхода за пределы набора записей текущая запись становится неопределенной.

После удаления последней оставшейся записи объекта Recordset свойства BOF и EOF могут сохранять значение False до тех пор, пока не будет предпринята попытка изменить положение указателя текущей записи.

При вызове метода MoveLast для объекта Recordset, содержащего записи, текущей записью становится последняя запись набора. Если после этого вызвать метод MoveNext, то текущая запись становится неопределенной, а свойство EOF получает значение True. Аналогично, при вызове метода MoveFirst для непустого объекта Recordset текущей записью становится первая запись набора. Последующий вызов метода MovePrevious приводит к тому, что текущая запись становится неопределенной, а свойство BOF получает значение True.

Как правило, при работе со всеми записями из объекта Recordset в программе задают перемещение в цикле по записям с помощью метода MoveNext до тех пор, пока свойство EOF не получит значение True.

Вызов метода MoveNext или MovePrevious, когда, соответственно, свойство EOF или BOF имеет значение True, приводит к возникновению ошибки.

В следующей таблице показано, какие из методов группы Move можно применять при различных комбинациях значений свойств BOF и EOF.

  MoveFirst MoveLast MovePrevious MoveNext
BOF=True, EOF=False Допускается Ошибка Ошибка Допускается
BOF=False, EOF=True Допускается Допускается Ошибка Ошибка
Оба = True Ошибка Ошибка Ошибка Ошибка
Оба = False Допускается Допускается Допускается Допускается

Допустимость применения метода из группы Move не означает, что метод обязательно обнаружит запись, но означает, что попытка выполнить указанный метод Move является допустимой и не приведет к ошибке. В результате вызова метода из группы Move состояние свойств BOF и EOF может измениться.

При вызове метода OpenRecordset неявно выполняется метод MoveFirst. Таким образом, в результате вызове метода OpenRecordset для пустого набора записей свойства BOF и EOF получают значение True.

Все методы группы Move, в которых успешно обнаруживается запись, задают для свойств BOF и EOF значение False.

Любой вызов метода Delete, даже приводящий к удалению последней записи из набора записей, не изменяет значения свойств BOF и EOF.

Свойство Bookmark

Свойство Bookmark используется в формах для установки закладки, однозначно определяющей запись в базовой таблице, запросе или инструкции SQL формы. Значение свойства Bookmark формы считывается или задается независимо от свойства объектов доступа к данным Bookmark базовой таблицы или запроса.

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

Доступ к данному свойству осуществляется в макросе или программе Visual Basic.

Дополнительные сведения

При открытии формы, связанной с базовой таблицей, для каждой записи автоматически создается уникальная закладка. В программе Visual Basic имеется возможность сохранить закладку текущей записи, для чего следует присвоить строковой переменной значение свойства формы Bookmark. Чтобы вернуться на эту запись после переходов по записям формы, следует присвоить свойству Bookmark значение закладки, сохраненной в переменной. Для сравнения строковой переменной или переменной Variant с закладкой, а также при сравнении двух закладок, используется функция StrComp. Третий аргумент этой функции должен иметь нулевое значение.

Примечание. Закладки не сохраняются вместе с записями, которые они представляют, и существуют, только пока форма открыта. При каждом открытии формы, связанной с источником данных, закладки создаются заново.

Количество создаваемых закладок не ограничено, если каждой закладке соответствует уникальная строковая переменная.

Свойство Bookmark является доступным только для текущей записи формы. Для сохранения закладки, которая соответствует записи, не являющейся текущей, следует перейти к нужной записи, а затем присвоить текущее значение свойства Bookmark строковой переменной, предназначенной для хранения этой закладки.

После повторного выполнения базового запроса формы все сохраненные закладки перестают соответствовать конкретным записям. Однако обновление формы с помощью команды «Обновить» в меню «Записи» не влияет на закладки.

Если запись, закладка которой сохранена в строковой переменной, удаляется, то при попытке обращения к этой записи с помощью сохраненного значения свойства Bookmark возникает перехватываемая ошибка.

Значение свойства Bookmark не совпадает с номером записи.

 

Функция Dlookup

Возвращает значение конкретного поля в конкретном наборе записей. Используется для получения значения поля, даже когда это поле не принадлежит к базовому источнику записей формы.

Синтаксис

Dlookup (выражение, набор [, условие])

Здесь:

Выражение – имя поля в таблице или запросе, или элемент управления в форме (строка).

Набор – источник записей (имя таблицы или запроса),

Условие – условие отбора (строка), задает УСЛОВИЕ ОТБОРА для поиска записей, является эквивалентом предложения WHERE инструкции SQL без ключевого слова WHERE. Возвращает указатель на запись или Null, если запись не найдена.

Пример:

Dim X As Variant

X = Dlookup ("Слово", "Слова", "Номер = " & Me.Список1.Value)

Если условие опущено, DLookup выполняет действия над указанным полем для всего набора записей. В условии используются только имена полей, которые принадлежат набору записей, иначе DLookup возвращает значение Null.

Дополнительные сведения.

DLookup возвращает значение указанного поля, принадлежащего подмножеству записей, удовлетворяющих условиям отбора. Если ни одна из записей набора не удовлетворяет условию, функция DLookup возвращает значение Null. Если условию удовлетворяют несколько полей, DLookup возвращает значение первого найденного поля.

Следует задавать условия, обеспечивающие уникальность значения, возвращаемого функцией DLookup. Одним из способов решения этой задачи является использование значений ключевых полей, например, поля «КодСотрудника».

При любом использовании функции DLookup в макросе или в модуле, в выражении в запросе или в вычисляемом элементе управления необходимо обеспечить правильную запись условия. Функция DLookup может быть включена в строку «Условие отбора» бланка запроса, в выражение для вычисляемого поля, а также в строку условия обновления для запроса на обновление.

Допускается использование функции DLookup в вычисляемом элементе управления, когда поле, для которого проводится поиск значения, не принадлежит к базовому источнику записей формы.

Пусть в форме «Заказы» создано поле с именем «КодТовара», в котором выводится значение поля «КодТовара» из таблицы «Заказы», и требуется одновременно вывести значение поля «Марка» из таблицы «Товары», соответствующее выведенному коду. Для этого следует создать в форме другое поле и ввести для него следующее выражение в ячейку свойства «данные» (ControlSource).

=DLookup("[Марка]", "Товары", "[КодТовара] =" & Forms![Заказы]!КодТовара)

Хотя функция DLookup позволят проводить поиск значений во внешней таблице, более эффективным приемом оказывается создание запроса, содержащего все необходимые поля, с последующим созданием формы или отчета на базе этого запроса.

Примечание. Не сохраненные изменения записей, входящих в набор, не учитываются данной функцией. Если требуется обеспечить учет измененных значений, необходимо сначала сохранить изменения с помощью метода Update.

Sub Список7_AfterUpdate()

' Поиск записи, соответствующей этому элементу управления.

' Запрос "Переводы"

Me.RecordsetClone.FindFirst "[Английское_слово] = '" & Me![Список7] & "'"

Me.Bookmark = Me.RecordsetClone.Bookmark

Me.Поле11.ControlSource = "[Русское_слово]"

End Sub

Объектная модель Access

VBA интегрирован в Access иначе, чем в Word, Excel и другие компоненты Office.

Отличия заключаются в принципах построения объектной модели, и, в значительной степени, автоматизацией Access – наличием собственных языков (язык SQL и язык макрокоманд).

Собственно модель проста, она включает в себя ряд объектов, обеспечивающих доступ к:

· объектам БД (таблицам, формам, запросам и прочим);

· элементам интерфейса (формы, кнопочные формы, элементы управления);

· среде разработки;

· данным.

 
 

Доступ непосредственно к данным Access осуществляется посредством DAO (Data Access Object) объектов.

 

Особенности объектной модели Access.

1. Данные структурированы, то есть имеют определенный формат.

Так, таблица данных состоит из записей, все записи одинаковы по структуре и длине, каждая запись состоит из полей. Поля имеют тип, который определяет способ представления данного, диапазон значений и возможные операции.

2. Операции над данными, которые выполняются в БД, являются типичными, например:

редактирование;

поиск;

выборки.

3. Интерфейсная часть представлена формами, на которых располагаются элементы управления, посредством которых выполняется управление приложением. Интерфейс позволяет управлять данными приложения, для чего предназначены объекты доступа к данным.

Объекты доступа к данным:

RecordSet – определяет набор записей для формы (таблица, запрос, включает все записи данной таблицы).

RecordSourse – определяет источник записей для формы (Имя таблицы, запроса, ил внешнего источника).

 

С точки зрения программной разработки приложения, нужно иметь представление об объектах, входящих в БД, объектах доступа к данным, и объектах, ответственных за интерфейс. Внутренняя иерархия объектов Access называется объектной моделью.

Описание объектной модели

Application – приложение, корневой объект иерархии. Представляет активное приложение Access. Используется для вызова методов или назначения свойств, относящихся ко всему приложению.

Основные свойства.

1. CurrentData – доступ к активной в данный момент БД.

Application.CurrentData.FullName

2. DoCmd – все методы этого объекта эквивалентны набору макрокоманд среды Access.

DoCmd.OpenForm "Словарь"

3. Forms – доступ ко всем открытым формам.

For Each MyFrm In Forms

MyFrm.Visible = False

Next

4. Reports – доступ ко всем открытым отчетам.

5. Screen – доступ к активной области экрана.

Основные методы.

1. CurrentDB – метод, позволяющий получить ссылку на активную БД, осуществляется через объектную переменную, тип которой объявлен как DataBase, и которой присвоено значение оператором Set.

Dim My_DB As Database

Set My_DB=CurrentDB

‘ Переменная My_DB дает доступ к объекту БД.

Me.Надпись30.Caption = My_DB.Name

‘NewCurrentDataBase("Имя")

2. RefreshDatabaseWindow – метод, позволяющий обновить окно БД.

DoCmd – объект, который используется для управления приложением. Выполняет все действия, которые в Access осуществляются посредством команд меню. Имеет только методы, и все его методы эквивалентны макрокомандам среды Access.

DoCmd.Close (Тип, Имя, Сохранение)

DoCmd.GoToControl (Имя_элемента)

DoCmd.GoToRecord (Тип,Имя,Запись,Смещение)

DoCmd.OpenForm "Имя_формы"

DoCmd.OpenQuery "Имя_запроса"

DoCmd.OpenTable "Имя_таблицы"

Forms – коллекция экранных форм, содержит все текущие открытые формы. Используется для ссылок на формы, открытые в данный момент.

Формы в рамках коллекции нумеруются с 0, но лучше получать доступ по имени формы, синтаксис: Forms!Имя_формы.

Например, Forms!Группы или Forms!("Группы").

Если имя содержит пробелы, оно должно быть заключено в квадратные скобки, например Forms![Моя первая форма].

Пример.

Dim frm As Form

For Each frm In Forms

MsgBox frm.Name

Next frm

Form – объект, представляющий конкретную форму Access. Программно обрабатывается с помощью модуля формы (программная единица, закрепленная за объектом Form). В модуле формы имя объекта (формы) не указывают, заменяя его именем Me (экземпляр объекта, который активен). В редакторе кода VBA для всех объектов модуля отображаются доступные объекты, их свойства и методы.

Свойства форм:

Caption – надпись, заголовок формы.

Name – имя формы в БД.

RecordSourse – объект, который определяет источник данных для формы. Значением этого объекта является имя таблицы, запроса или внешнего источника данных.

Пример.

Me.Надпись35.Caption = Me.RecordSource ‘ Покажет имя источника данных

RecordSet – объект, который является источником данных (записей) для формы. Источником данных для форм являются таблицы или запросы. Объект RecordSet содержит все записи источника данных.

CurrentRecord – номер текущей записи формы.

Controls – коллекция элементов управления формы.

ActiveControl – активный элемент управления.

События форм:

Activate – событие происходит при получении формой фокуса.

AfterUpdate – событие происходит после обновления записей.

Close – событие происходит при закрытии формы.

Current – событие происходит, когда запись получает фокус.

Open – событие происходит при открытии формы.

Timer – свойство формы "TimeInterval"

Методы объекта Form

Recalc –

Refresh – обновление данных в источнике

Repaint – обновление экрана для формы

Requery – повторный запрос к источнику

Undo –

Controls – коллекция объектов, представляющая все элементы управления на форме или отчете (поля, надписи, поля со списком, кнопки и прочие).

Элементы управления по назначению довольно разнообразны, поэтому свойства элементов управления могут быть как общими, так и уникальными для каждого элемента управления:

Общие свойства:

Общие методы:

События:

Reports – коллекция отчетов.

Screen – экран.

Свойства:

ActiveForm

 

CurrentData – база данных, активная в данный момент, подчинен Application.

Включает коллекции всех таблиц, запросов, представлений, процедур и схем данных активной БД.

Dim DB as DataBase

Set DB = CurrentDB

CurrentProject.

Включает коллекции всех форм, отчетов, макросов, модулей активной БД.

 

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

Источник данных для форм и элементов управления, это таблицы, запросы или внешние источники данных.

Интерфейс для доступа к данным, это формы Access (отчеты) и элементы управления, находящиеся на формах (отчетах). Формы, это основной инструмент манипулирования данными в приложении. Формы и отчеты можно рассматривать как «окна» в базу данных.

Формы организуют доступ к данным и управление ими (сортировки, фильтры, поиск, редактирование записей и проч.)

Организация данных выполняется средствами Access (схема данных, нормализация, запросы и проч.)

Для решения задач обработки данных и управления ими используются макросы и модули экранных форм.



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 1192; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.22.70.169 (0.017 с.)