
- •Теоретические сведения
- •Пункты меню редактора vba
- •Среда Microsoft Visual Basic Access
- •Создание модуля vba
- •Язык Visual Basic for Applications (vba).
- •Переменные и оператор присваивания
- •Правила присвоения имен в языке Visual Basic
- •Создание нового модуля
- •Соглашения по синтаксису
- •Инструкции
- •Управляющие конструкции
- •Процедуры и функции
- •Управление выполнением программы
- •Примеры управления выполнением программы
- •Обработка ошибок
- •Математические операторы
- •Контрольные Вопросы:
- •Задания:
- •Контрольные Вопросы:
- •Как объявить переменную в vba?
- •Какие основные типы данных используются в vba?
- •Чем процедура отличается от функции?
- •Как объявить процедуру и как функцию?
- •Как происходит вызов процедуры или функции?
Создание модуля vba
Для модуля загружаем приложение Microsoft Access. Вызываем окно редактора кода VBA, для этого на ленте вкладок выбираем «Работа с базами данных», в открывшейся ленте инструкций выбираем команду запуска «Visual Basic» (рисунок 8). Выполняем пункт меню редактора Insert / Module (Вставка / Модуля). В результате появляется окно нового модуля.
Рисунок 8 – Создание модуля в VBA – пункт меню редактора Insert
Или в строке команд быстрого запуска (рисунок 9) выбираем команду создания модуля Module. В результате появляется окно нового модуля.
Рисунок 9 – Создание модуля в VBA
Во вновь созданном модуле создаем процедуру. Для этого выполняем пункт меню Insert → Procedure (Вставка /Процедура). Или опять в строке команд быстрого запуска выбираем команду создания процедуры Procedure (рисунок 10). В открывшемся диалогом окне Add Procedure вводим имя процедуры (например, ShowUsers) и устанавливаем переключатели: Type (тип) – в положение Sub (процедура); Scope (Область определения) – в положение Public (Общая) и щелкаем ОК.
Рисунок 10 – Создание процедуры в модуле
В окне редактора для программирования VBA появится заготовка процедуры: заголовок – Public ShowUsers () и окончание – End Sub, между которыми будем помещаться код тела процедуры. Запишем код процедуры.
Sub ShowUsers()
Dim Users(2) As String
Users(0) = "Иван"
Users(1) = "Петя"
Users(2) = "Вася"
Dim User As Variant
For Each User In Users
MsgBox User
Next User
End Sub
Выполним созданную процедуру в режиме отладки. Для этого выбираем пункт меню Debug и в раскрывшемся списке команд выбираем Step Into (F8). Пошагово проходим по всем командам (рисунок 11). Обращаем внимание на информацию в окне Local Window, в котором отражаются значения ВСЕХ локальных переменных. Напоминаем, что в окне Immedate Window отражает результат выполнения оператора Debug. Результат работы процедуры представлен на рисунке 11.
Рисунок 11 – Пошаговое выполнение процедуры
Рисунок 12 – Результат работы модуля
Язык Visual Basic for Applications (vba).
Переменные и оператор присваивания
VBA позволяет работать с элементами управления любой открытой формы или отчета. Также можно объявлять и использовать в программе VBA именованные переменные для временного запоминания информации, вычисления результатов или для выполнения операций с любыми объектами базы данных. Каждая переменная имеет имя, по которому к ней обращаются. Перед тем как использовать переменную, производится ее объявление, т.е. заранее сообщается, какие именно имена переменных будут использоваться в программе, при этом объявляется также тип данных, для хранения которых предназначена эта переменная. Для этого используется оператор Dim.
Dim <имяПеременной> [Аs<типДанных>]
Пример:
Dim i As Integer, j As Integer
Dim x As Double
Правила присвоения имен в языке Visual Basic
При присвоении имен процедурам, константам, переменным, и аргументам в модулеVisual Basic используются следующие правила:
Имена должны начинаться с буквы.
Имя не может содержать пробел, точку (.), восклицательный знак (!) или символы @, &, $, #.
Имена не должны содержать более 255 символов.
Как правило, не следует использовать имена, совпадающие с названиями функций, инструкций, и методов языка Visual Basic, так как при этом прекращается выделение в тексте одноименных ключевых слов языка.
Не допускается использование повторяющихся имен на одном уровне области определения.
Переменные могут создаваться автоматически, по мере появления в процедуре (неявное объявление). По умолчанию неявно объявленные переменные имеют тип Variant. Внутри такой переменной кроме значения хранится индикатор типа значения. Рекомендуется описывать все переменные явно, это позволит избежать ошибок, связанных с преобразованием типов данных. Если при явном объявлении переменной не указан тип данных, а задано только имя переменной, то будет создана переменная типа Variant, которой можно присваивать цепочки символов, числа с плавающей точкой, значения даты и времени.
Можно создавать переменные и константы, доступные для любых процедур в базе данных (public scope) и применимые только в процедурах конкретного модуля или только в единственной процедуре (private scope).
В Access используются типы данных, перечисленные в таблице 2.
Таблица 2 – Типы данных
Название типа |
Размер в байтах |
Описание и диапазон значения |
Byte |
1 |
Для хранения положительного числа от 0 до 255 |
Boolean |
2 |
Для хранения логических значений; может содержать только значения True и False |
Date |
8 |
Для хранения комбинации информации о дате и времени. Диапазон может быть от 1 января 100 года до 31 декабря 9999 года. Диапазон времени 00:00:00 до 23:59:59. |
Integer |
2 |
Все целые числа от -32 768 до 32 767 |
Long |
4 |
Все целые числа от - 2 147 483 648 до 2 147 483 647 |
Single |
4 |
Отрицательные числа от -3.4х1038 до -1.4х10-45; Положительные числа от 1.4х10-45 до 3.4х1038 |
String |
1 |
Используется для хранения текста. Может содержать от 0 символов до приблизительно 2 миллиардов символов |
Variant |
16 байт + 1 байт/символ |
Тип Variant может хранить любой другой тип данных. Диапазон для данных типа Variant зависит от фактически сохраняемых данных. В случае текста диапазон соответствует строковому типу; в случае чисел диапазон такой, как у типа Double |
Double |
8 |
Отрицательные числа от -1.8х10308 до -4.9х10-324; Положительные числа от 4.9х10-324 до 1.8х10308 |
Currency |
4 |
Тип Currency используется для хранения чисел, когда точность крайне важна, что бывает при вычислениях с денежными единицами |
При объявлении переменной следует помнить об области действия. Переменные, объявленные в процедуре, можно использовать только внутри этой процедуры. Если переменная должна быть доступна во всех процедурах одного модуля, ее необходимо объявить в области описания модуля. Наибольшую область действия имеет переменная, объявленная глобальной (с префиксом Global) в области описания модуля. Синтаксис оператора Global не отличается от синтаксиса оператора Dim.
В отличие от переменной, константа содержит фиксированное значение, которое не может быть изменено в процессе выполнения программы. Согласно правилам хорошего тона, константы, как и переменные, следует объявлять явно, указывая их имена и значения. Для объявления константы используется оператор Const. Объявленную константу можно использовать в программе, обращаясь к ней по имени.
Const <имяКонстанты> [As <типДанных>] = <выражение>
Пример:
Const Число_Пи = 3.1415926