- •Модули (vba) в субд Access
- •Когда следует использовать макросы
- •Согда следует использовать vba
- •Среда Visual Basic для приложений
- •Общие модули
- •Модули форм и отчетов
- •Окно модуля
- •Окно отладки
- •Переменные и константы
- •Типы данных
- •Область определения переменных и констант
- •Инструкция Const
- •Инструкция Dim
- •Инструкция Public
- •Инструкция Type
- •Методы объектов
- •Функции и подпрограммы
- •Инструкция Function
- •Инструкция Sub
- •Управление выполнением программы
- •Инструкция Call
- •Инструкция Do... Loop
- •Инструкция For... Next
- •Инструкция For Each... Next
- •Инструкция GoTo
- •Инструкция If...Then... Else
- •Инструкция Select Case
- •Инструкция Stop
- •Инструкция While...Wend
- •Инструкция With
- •Запуск макрокоманд
- •Объект DoCmd
- •Макрокоманды и их эквиваленты в vba
- •Обработка ошибок
- •Инструкция On Error
Инструкция Public
Используйте инструкцию Public в разделе описаний общего модуля либо модуля формы или отчета, чтобы объявить переменные, доступные для всех процедур базы данных.
Синтаксис:
Public [имя-переменной [ ([<границы-массива>] ,. . .)]-[As [New] тип-данных}},...
,е <границы-массива> есть
[нижняя-граница То ] верхняя-граница
только в тот период времени, когда открыты соответствующие формы или отчеты
Синтаксис:
Static {имя-переменной [ ({<границы-ыассива>} , .. .)]—» [As [New] тип-данных]},...
где <границы-массиво> есть
[нижняя-граница То ] верхняя-граница
Пояснения:
Вы не можете объявить массив с элементами объектного типа данных. Допускается определение массивов, размерность которых не превышает 60. Если в описание массива не включена нижняя-граница, то по умолчанию она устанавливается равной 0. Вы можете переопределить нижнюю границу, задаваемую по умолчанию, и сделать ее равной 1, если включите в разделе описаний модуля инструкцию Option Base 1. Нижняя-граница должна быть не меньше, чем -32 768, а верхняя-граница — не больше, чем 32 767.
Допустимыми типами данных являются Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String (для строк переменной длины), String * длина (для строк фиксированной длины), Object, Variant и любой из объектных типов, перечисленных ранее в разделе «Типы данных» этой главы. Вы можете также использовать тип данных, определенный ранее с помощью инструкции Type. Ключевое слово New позволяет объявить новый экземпляр объекта в качестве объектной переменной.
Microsoft Access инициализирует объявленные переменные во время компиляции. Числовым переменным присваивается нулевое значение (0); переменные типа Variant получают значения Empty (отсутствие значения); переменные, являющиеся строками переменной длины, инициализируются пустой строкой (строкой нулевой длины); строки фиксированной длины заполняются ANSI-кодами нуля (Chr(O)).
Примеры:
Чтобы объявить статическую переменную с именем intMyInteger как целую,
введите:
Static intMyInteger As Integer
Чтобы объявить статический массив с именем strM у String, который содержит строки фиксированной длины по 20 символов, причем 50 элементов массива пронумерованы от 51 до 100, введите:
Static strMyString (51 То 100) As String * 20
Инструкция Type
Используйте инструкцию Type в разделе описаний модуля для создания собственного типа данных в виде структуры, содержащей одну или несколько переменных.
Синтаксис:
[Public I Private] Type имя-типа {имя-переменной As тип-данных}
End Type
Пояснения:
Инструкция Type особенно полезна, когда нужно объявить набор переменных, которые будут передаваться в процедуры (включая функции Windows API) как одна переменная. Она также применяется для описания структуры записи. После определения специального типа данных имя-muna можно использовать в последующих инструкциях Dim, Public или Static для описания переменных с этим типом данных. При ссылках на переменную со специальным типом данных надо ввести имя этой переменной, затем точку и далее указать нужное имя-переменной из определения структуры данных (см. вторую часть приведенного ниже примера).
Включение ключевого слова Public позволяет описать специальный тип данных, доступный для всех процедур в базе. При использовании ключевого слова Private специальный тип данных будет доступен только внутри модуля, в котором он описан.
При определении специального типа данных вы должны вводить каждое имя-переменной на новой строке. Конец определяемой пользователем структуры данных обозначается с помощью инструкции End Type. Допустимыми типами данных являются Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String (для строк переменной длины), String * длина (для строк фиксированной длины), Object, Variant или другой определенный пользователем тип данных и любой из объектных типов, перечисленных ранее в разделе «Типы данных» этой главы.
Пример:
Чтобы определить специальный тип данных My Record, содержащий длинное целое и три текстовых поля, затем объявить переменную usrContacts с этим типом данных и присвоить первой текстовой переменной значение Jones, введите:
Type MyRecord
IngID As Long strLast As String strFirst As String strMid As String End Type Внутри процедуры введите:
Dim usrContacts As MyRecord usrContacts.strLast = "Jones"
умолчанию семейство в объекте Database. Access предполагает, что [tbIClubs] ссылается на имя объекта в назначаемом по умолчанию семействе базы данных.
Чтобы создать объектную переменную, ссылающуюся на поле Notes в таблице tbIClubs, используя только что определенную переменную tbIMyTable, введите:
Dim fIdMyField As Field Set fIdMyField = tbIMyTable![Notes]