Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНАЯ РАБОТА 5.doc
Скачиваний:
39
Добавлен:
13.02.2016
Размер:
909.82 Кб
Скачать

Соглашения по синтаксису

Область определения переменной (или константы) определяет, известна ли она только одной процедуре, всем процедурам в модуле или всем процедурам в базе данных. Для объявления общей переменной используйте инструкцию Public в разделе описаний модуля. Чтобы переменную можно было использовать во всех процедурах некоторого модуля, объявите ее в разделе описаний стандартного модуля или модуля формы или отчета. Переменная или константа, описанная в процедуре, доступна только в этой процедуре.

Инструкция Const используется для объявления констант.

[Public / Private]Const{имя константы [As тип данных]=<константное выражение>}

Инструкция Dim используется для объявления переменной или массива переменных.

Dim [WithEvents ] {имя переменной [([<индекс>],…)] [As [New] тип данных]},…

где <индекс> есть [нижняя граница То] верхняя граница.

Ключевое слово New указывает, то объявляемая объектная переменная является новым экземпляром объекта. Ключевое слово WithEvents применяется в модуле класса для указания объектной переменной, использующейся при отклике на события, генерируемые объектом ActiveX.

Для объявления переменной как объекта типа Database введите

Dim mydb As Database

Следующая инструкция описывает массив, содержащий строки фиксированной длины по 20 символов, причем 50 элементов массива пронумерованы от 51 до 100

Dim mymassiv (51 To 100) As String * 20

Инструкция Set используется для присваивания значения объектной переменной.

Set имя переменной = ссылка на объект

Чтобы создать переменную, ссылающуюся на текущую базу данных, введите

Dim mydb As Database

Set mydb = CurrentDb()

Чтобы создать переменную, ссылающуюся на таблицу Клиенты в текущей базе данных, используя только что определенную переменную mydb, введите

Dim myTab As TableDef

Set myTab = mydb![Клиенты]

Чтобы создать переменную, ссылающуюся на поле Название таблицы Клиенты, введите

Dim myPole As Field

Set myPole = myTab![Название]

Ссылки на формы, отчеты, их свойства и элементы управления

Ссылки на формы или отчеты можно делать только когда они открыты. Access использует коллекции Forms и Reports (множества открытых форм и отчетов), чтобы сохранить путь, из которого открываются соответствующие формы и отчеты. Коллекцию необходимо указывать, т. к. Access позволяет использовать одно и то же имя для формы и для отчета. Объекты Form и Report имеют свойства. Пример ссылки на свойство Источник записей формы Товары :

Forms![Товары].RecordSourсe

Чтобы установить значение свойства формы в собственном модуле класса формы, используйте идентификатор Me – ссылку на самого себя :

Me. RecordSourсe

Чтобы сослаться на элемент управления Код товара формы Товары, введите :

Forms![Товары]![КодТовара]

Ссылки на подчиненные формы и отчеты

Ссылка на подчиненную форму Заказанный товар в форме Заказы будет иметь вид :

Forms![Заказы]![Заказанный товар]

Для ссылки на свойство Вывод на экран рассмотренной выше подчиненной формы введите выражение :

Forms![Заказы]![Заказанный товар].Visible

Для ссылки на элемент управления Код товара подчиненной формы Заказанный товар, внедренной в форму Заказы, будет иметь вид :

Forms![Заказы]![Заказанный товар].Form![Код товара]

Функции и подпрограммы

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

Объект DoCmd

Пользуясь методами объекта DoCmd, можно выполнять макрокоманды и команды меню в процедурах VBA. К наиболее употребляемым макрокомандам, которые выполняются из среды VBA, относятся :ApplyFilter (Применить фильтр), Close (Закрыть), FindNext (Следующая запись), FindRecord (Найти запись), Maximize (Развернуть), Minimize (Свернуть), OpenForm (Открыть форму), OpenQuery (Открыть запрос), OpenReport (Открыть отчет) и др.

Например, чтобы открыть форму Клиент для ввода данных в режиме формы, введите :

DoCmd.OpenForm “Клиент”, acNormal , , , acAdd

Закрыть форму Клиент можно с помощью инструкции:

DoCmd. Close acForm, “Клиент”

Аргументы в процедурах

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

Стандартный модуль в этом случае выглядит:

Public Function Открыть(strFormName As String) As Integer

Screen.ActiveForm.Visible=False

DoCmd.OpenForm strFormName

End Sub

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

Можно заменить объект Screen объектом Me, если приведенная выше процедура используется только в одной форме (Ме.Visible=False).

При вызове этой процедуры в свойстве события Нажатие кнопки нужно ввести имя процедуры с именем конкретной формы : = Открыть(“Заказы”).