Операторы vba access
Операторы VBA
Программа на VBA – это последовательность операторов.
При составлении программ следует придерживаться ряда соглашений. Так, на одной строке можно разместить несколько операторов. Между операторами в одной строке ставится двоеточие.
Любую строку можно разбить на две, расположив в конце первой знаки символов «Пробел» + «Знак подчеркивания» ( _), в этом случае вторая строка будет считаться продолжением первой.
Для того, чтобы сделать программу легко читаемой используют комментарии. В языке VBA существуют два способа ввода комментариев: применение апострофа (‘), который можно поставить в любом месте строки, и зарезервированное слово Rem вместо апострофа.
1. Оператор Dimпредназначен для объявления типов переменных.
1. Dim A As Integer – переменная A объявляется как целое, т.е. в ней будут храниться только целые величины.
2. Dim D As Date – объявляется переменная D для хранения дат.
3. Dim Фамилия, Наименование As String – объявлютсяпеременные. Фамилия и Наименование, предназначеные для хранения текста.
4. Dim B(12) As Integer – объявляется одномерный массив (вектор), состоящий из 12 целых чисел, причем по умолчанию первый элемент массива будет B(0), а последний B(12).
5. Dim B(3,3) As Single – объявляется двумерный массив 3х3 (матрица), состоящий из действительных чисел.
Если не указан тип переменной, то по умолчанию используется тип Variant. Однако указание конкретного типа переменной делает программу надежнее и убыстряет ее работу, т.к. VBA не требуется тратить время на распознавание необъявленной переменной при каждом обращении к ней.
Если размер массива M заранее не известен и определяется в ходе программы, то при описании массива число элементов не указывается, и массив определяется так:
Dim M() As Integer
После определения числа элементов массива, например, N, необходимо записать оператор
2. Оператор присваивания предназначен для присваивания переменной какого-либо значения.
Переменная (или свойство объекта) = выражение.
1. а=5 – переменной А присвоить значение 5;
2. b=«Менеджер» – переменной b присвоить значение «Менеджер»;
· Адрес=Sheets(«Организации»).Cells(2,2) – переменной Адрес присвоить содержимое ячейки B2, которая находится на листе Организации в текущей рабочей книге;
· Фамилия=UserForm1.TextBox1.Text – переменнойФамилия присвоить содержимое поля TextBox1 пользовательской формы UserForm1.
o Оператор With/End withизбавляет программиста от большого количества повторений имени одного и того же объекта.
Например, вместо последовательности операторов
Операторы управления VBA Программирование VBA в СУБД Access 2003
Управление выполнением программы в VBA
Если в исполняемом коде программы отсутствуют управляющие operators, то при запуске программы она выполняется линейно. Другими словами operators выражений будут выполняться интерпретатором последовательно от первого до последнего. В некоторых случаях необходимо изменить порядок выполнения инструкций. Для этого в VBA служат operators управления или управляющие конструкции. К операторам управления относятся operators условного перехода и циклов.
Operators условного перехода — это инструкции, которые определяют ход выполнения других операторов программы в зависимости от результатов анализа некоторых условий. Управляющие operators позволяют выполнять или пропускать определенные operators выражений. К операторам условного перехода относятся operators ветвления IF. Then и выбора Select Case. Существует краткая (IF. Then) и полная форма (IF. Then. Else. End If) операторов ветвления. Необходимо отметить, что при записи инструкции в одну строку ключевые слова End If не применяется.
Общий вид краткой формы оператора ветвления и одну строку:
Краткая форма оператора ветвления для блока операторов имеет следующий вид:
IF Then
.
.
End If.
Когда условие истинно (т.е. результатом условия является true), то выполняется инструкция, или группа инструкций, следующая за ключевым словом «Then».
Полная форма оператора условного перехода IF. Then. Else. End If, который имеет две альтернативные ветви процедуры:
IF Then
.
Else
.
End If.
Если условие соблюдается (условие истинно), выполняется инструкция 1 (operator или группа операторов), расположенная между ключевыми словами Then и Else, а если условие не соблюдается (ложно), то выполняется альтернативная инструкция 2, расположенная между ключевыми словами Else и End if.
Необходимо отметить, что operators могут быть вложенными. Если требуется проверить условие2 при выполненном (истинном) условии1, то следует применять вложенные operators, т.е. внутри оператора IF. Then. End If надо поместить IF. Then. Else. End If.
Синтаксис оператора условного перехода IF. Then. End If, который имеет вложенный operator IF. Then. Else. End If имеет вид:
IF Then
. IF Then
. .
. Else
.
. End If
End If.
Первый operator IF проверяет условие1. Если условие1 истинно, то выполняется второй operator IF. Если условие2 истинно, то выполняется оператор1, если ложно — оператор2. В этой конструкции проверяется условие2 при выполненном условии1, если условие1 ложно, выполняется operator, следующий за ключевым словом End If.
Если выбирается одно из нескольких значений, то проверяется не одно, а несколько условий. В этом случае следует применить конструкции с несколькими операторами IF. Then. ElseIF, т.е. внутри оператора IF. Then. Else. End If поместить ветви операторов ElseIf. Then.
Форма условного перехода IF. Then. ElseIF имеет следующий синтаксис:
IF Then
.
. ElseIf Then
.
. ElseIf Then
.
.
Else
End If.
Если условие1 истинно, то выполняется оператор1, а затем первый, из операторов следующий за ключевым словом End if. Если условие1 ложно, то выполняются операторы ElseIf в порядке их следования, чтобы проверить их условия. Если обнаружится, что одно из условий имеет значение True, то выполняется operator, который следуют непосредственно за соответствующим ключевым словом Then.
Если все условия ложны, то выполняется альтернативный «операторМ», следующий за ключевым словом Else. Таким образом, если первое условие ложно, операторы ElseIf обеспечивают проверку дополнительных условий с целью выбора одного из нескольких значений.
В VBA применяется еще один operator условного перехода типа Select Case. Этот operator позволяет осуществить выбор альтернативного варианта, сравнивая значение с различными выражениями.
Синтаксис оператора условного перехода Select Case имеет вид:
Select Case значение
. Case
. .
. Case
.
В этом условном операторе значение переменной сравнивается с каждым из значений, которые хранятся в выражениях каждого из условий. Если значение переменной удовлетворяет одному из значений условия, будут выполняться operators, следующие за этим условием. Затем будет выполняться operator, следующий за ключевым словом End Select. Если значение переменной не удовлетворяет ни одному из значений условий, то выполняется «операторМ», следующий за оператором Case Else.
Copyright
© Обучение в интернет, .
Обратная связь
Программирование на VBA в СУБД MS Access
VBA (Visual Basic for Application) играет важную роль при разработке баз данных MS Access. С помощью VBA в MS Access можно настроить формы и отчеты, запустить макросы, извлечь данные и т.д.
Модули VBA
VBA может использоваться для выполнения любых действий в ходе работы приложения. Для создания процедур VBA в MS Access используется Построитель программ. Программный код создается в Окне модуля. В зависимости от технологии создания можно различить несколько типов модулей:
1. Стандартный модуль. Для его открытия нужно распахнуть список Макрос, расположенный в группе Другие вкладки Создание ленты инструментов, и нажать кнопку Модуль.
2. Модуль формы или отчета. Для открытия модуля формы или отчета нужно открыть форму или отчет в режиме Конструктора и выбрать кнопку Просмотреть код в группе Сервис контекстного меню Инструменты конструктора форм/отчетов — Конструктор ленты инструментов. MS Access позволяет открыть одновременно и форму/отчет и ее модуль. Модули формы/отчета сохраняются одновременно с формой/отчетом и не перечисляются во вкладке Модули области переходов.
3. Независимый модуль класса. Открывается щелчком мыши по кнопке Модуль класса, появляющейся в распахивающемся списке кнопки Макрос, расположенной в группе Другие вкладки Создание ленты инструментов. После сохранения такого модуля его имя будет находиться на вкладке Модули области переходов вместе со стандартными модулями. Для обозначения стандартных модулей и независимых модулей VBA используются разные пиктограммы (рис. 10.8):
Элементы языка VBA
Коды программы VBA состоят из выражений (statements). В каждой строке кода располагается одно отдельное выражение. Но данное правило имеет исключения:
· несколько выражений могут быть расположены в одной строке и разделены двоеточием;
· использование символа продолжения строки (пробел, за которым следует символ подчеркивания) позволяет создавать выражение, занимающее несколько строк. Не допускается использовать символ продолжения строки только внутри заключенных в кавычки строк. Рекомендуется продолжение каждой строки выделять отступом.
Алфавит языка VBA составляют следующие элементы:
· прописные и строчные буквы латинского алфавита (А – Z);
· прописные и строчные буквы кириллицы (А – Я);
· цифры от 0 до 9;
· символ подчеркивания «_»;
При написании кода VBA следует знать некоторые соглашения, которых следует придерживаться, чтобы избежать ошибок выполнения кода. Первое соглашение – это соглашение по именам. В VBA именуются переменные, константы, процедуры, функции, объекты и т.д. Определим правила, которым следует следовать при выборе имен:
1. Длина имен не должна превышать 255 символов, но VBA учитывает только первые 31 символ от начала имени.
2. Имена должны начинаться с буквы и могут содержать комбинацию букв, цифр и символов.
3. Имена не должны совпадать со стандартными именами VBA.
4. Имена не должны включать точек, пробелов и следующих символов: ! @ # $ %. Символ пробела можно заменить символом подчеркивания _.
Регистр букв в именах не имеет значения. Например, имена PRICE, Price и price эквивалентны.
Типы данных языка VBA
В языке VBA типы данных делятся на простые (или базовые) и структурированные.
К простым типам относятся:
· вещественный (Single, Double, Currency, Decimal);
· логический (Boolean).
К стандартным структурированным типам относятся:
· массив;
· строка;
· тип, определяемый пользователем.
Таким образом,VBA использует 12 встроенных типов данных, представленных в таблице 10.1.
Операторы vba access
Для изменения порядка выполнения инструкций исполняемого кода программы VBA служат операторы управления или управляющие конструкции. К операторам управления относятся операторы условного перехода и циклов.
К операторам условного перехода относятся операторы ветвления IF. Then и выбора Select Case. Существует краткая (IF. Then) и полная форма (IF. Then. Else. End If) операторов ветвления. Необходимо отметить, что при записи инструкции в одну строку ключевые слова End If не применяется.
Краткая форма оператора ветвления для блока операторов имеет следующий вид:
Когда условие истинно (т.е. результатом условия является true), то выполняется инструкция, или группа инструкций, следующая за ключевым словом «Then».
Полная форма оператора условного перехода IF. Then. Else. End If, который имеет две альтернативные ветви процедуры:
IF Then
.
Else
.
End If.
Если условие соблюдается (условие истинно), выполняется инструкция 1 (operator или группа операторов), расположенная между ключевыми словами Then и Else, а если условие не соблюдается (ложно), то выполняется альтернативная инструкция 2, расположенная между ключевыми словами Else и End if.
Необходимо отметить, что операторы могут быть вложенными. Если требуется проверить условие 2 при выполненном (истинном) условии 1, то следует применять вложенные операторы, т.е. внутри оператора IF. Then. End If надо поместить IF. Then. Else. End If.
Синтаксис оператора условного перехода IF. Then. End If, который имеет вложенный оператор IF. Then. Else. End If имеет вид:
IF Then
. IF Then
. .
. Else
.
. End If
End If.
Первый operator IF проверяет условие 1. Если условие 1 истинно, то выполняется второй оператор IF. Если условие 2 истинно, то выполняется оператор 1, если ложно — оператор 2. В этой конструкции проверяется условие 2 при выполненном условии 1, если условие 1 ложно, выполняется оператор, следующий за ключевым словом End If.
Если выбирается одно из нескольких значений, то проверяется не одно, а несколько условий. В этом случае следует применить конструкции с несколькими операторами IF. Then. ElseIF, т.е. внутри оператора IF. Then. Else. End If поместить ветви операторов ElseIf. Then.
Форма условного перехода IF. Then. ElseIF имеет следующий синтаксис:
IF Then
.
. ElseIf Then
.
. ElseIf Then
.
.
Else
End If.
Если условие 1 истинно, то выполняется оператор 1, а затем первый, из операторов следующий за ключевым словом End if. Если условие1 ложно, то выполняются операторы ElseIf в порядке их следования, чтобы проверить их условия. Если обнаружится, что одно из условий имеет значение True, то выполняется operator, который следуют непосредственно за соответствующим ключевым словом Then.
Если все условия ложны, то выполняется альтернативный «оператор М», следующий за ключевым словом Else. Таким образом, если первое условие ложно, операторы ElseIf обеспечивают проверку дополнительных условий с целью выбора одного из нескольких значений.
В VBA применяется еще один оператор условного перехода типа Select Case. Этот оператор позволяет осуществить выбор альтернативного варианта, сравнивая значение с различными выражениями.
Синтаксис оператора условного перехода Select Case имеет вид:
Select Case значение
. Case
. .
. Case
.
В этом условном операторе значение переменной сравнивается с каждым из значений, которые хранятся в выражениях каждого из условий. Если значение переменной удовлетворяет одному из значений условия, будут выполняться operators, следующие за этим условием. Затем будет выполняться operator, следующий за ключевым словом End Select. Если значение переменной не удовлетворяет ни одному из значений условий, то выполняется «операторМ», следующий за оператором Case Else.
Обучение в интернет информатике, основам компьютерных сетей и телекоммуникаций
Программирование на VBA Access 2003 – Встроенные функции
Пришло время поговорить и о программировании на VBA Access, так как мы с Вами рассматривали уже достаточно много примеров реализации тех или иных задач в Access 2003, но мы не затрагивали основы VBA, и сегодня мы начнем со встроенных функций. Рассмотрим часто используемые функции и конечно разберем примеры их использования, для лучшего освоения языка программирования VBA для Access.
Если говорить о том, что именно мы уже рассматривали в Access 2003 то, например это Загрузка данных из текстового файла на VBA Access или Выгрузка данных из Access в шаблон Word и Excel. А сегодня мы будем рассматривать именно основы VBA и как уже сказалось выше встроенные функции.
Встроенные функции VBA Access
Если Вы уже немного знакомы с какими-нибудь языками программирования, например, Вы, знаете основы JavaScript или основы Visual Basic, то Вы должны понимать что такое встроенные функции, а если нет то я могу привести свое определение данного термина.
Встроенные функции – это функции, которые уже встроены в среду программирования. Они уже написаны до Вас и созданы именно для того, чтобы облегчить Вам написание той или иной программы, другими словами в них заложены все часто используемые операции над теми или иными данными. Они условно подразделяются на несколько типов, например: математические, строковые, функции преобразования и другие. В разных языках их количество отличается и также отличается синтаксис, но иногда как название, так и синтаксис совпадает даже в разных языках программирования, так как я уже сказал, что эти функции выполняют за Вас определенную узкую задачу, например, преобразование одного типа данных в другой, а как Вы понимаете такие задачи встречаются во всех языках программирования.
И так хватит теории, давайте приступим к рассмотрению встроенных функций VBA Access.
Для начала создадим форму, добавим на нее элемент управления «Кнопка» затем откроем, обработчик события «Нажатие кнопки», где мы и будем программировать на VBA, а конкретней пробовать использование встроенных функции.
Функция msgbox – простая функция для отображения сообщения на экране в виде диалогового окна.
И теперь сохраните, откройте форму и нажмите на нашу кнопку и у Вас отобразится это сообщение:
У данной функции один обязательный параметр и несколько необязательных. Как Вы понимаете обязательный параметр это строковое выражение для вывода сообщения, с помощью необязательных параметров вы можете задавать вид отображения этого диалогового окна, заголовок или указать файл справки. Пример чуть посложней:
Примечание! Далее я буду писать все примеры без указания начала процедуры и ее конца т.е. без Private Sub Кнопка1_Click() и End Sub, подразумевается что все примеры мы будем писать в обработчике одной кнопки, Вы просто вставляйте код ниже между этим строками.
Примечание! Более подробно об описании и значениях констант можете прочитать во встроенной автономной справке Access 2003. Тоже относится и к остальным встроенным функциям и любым другим возникающим вопросам, так как в этой справке есть все, всем советую ей пользоваться.
Функция Mid – данная функция относится к строковым функциям Access и она вырезает указанное число знаков строки. Имеет три параметра, первый это собственно сама строка, второй это начальная позиция, и третий это число символов.
Здесь мы просто указали строку, из которой необходимо вырезать, и с какого символа нужно начинать, третий параметр мы не указывали (поэтому вырезалось все, начиная с 7 символа), а если захотели, то код был бы таким (абсолютно равнозначный):
Функция Len – также относится к строковым функциям и она просто считает количество символов в строке. Давайте объединим предыдущий пример с функцией len, так как порой неизвестно (да и не удобно) сколько символов необходимо вырезать.
И результат будет таким же, как и предыдущем примере.
Функция LCase – строковая функция vba которая преобразует все буквы строки в строчные. Для закрепления давайте рассмотрим все на том же примере, только сейчас обрамим наше выражение еще и функцией LCase.
И результат будет таким же, как и раньше, но все заглавные буквы станут строчными, в нашем случае это первая буква «Н», результат:
Функции left и right – это строковые функции vba, которые вырезают указанное количеств символов слева и справа соответственно. Принцип такой же, как и, например, в Excel функциях левсимв и правсимв.
Функция right работает аналогично, только вырезает символы справа.
Функции date, time, now – это функции, с помощью которых можно получить текущую дату и время. По названию я думаю понятно, какая функция для чего нужна, если нет то date текущая дата, time текущее время, now текущая дата и время. Данные функции запускаются без параметров.
Здесь мы просто через конкатенацию вывели результаты выполнения сразу всех функций.
Функции hour, minute, second – эти функции возвращают соответственно часы, минуты и секунды. Принимают один параметр это текущее время.
Функция isnull – проверяет значение на NULL.
Программно задать значение NULL, для того чтобы данная функция вернула TRUE нельзя, поэтому применяйте эту функцию к переменным или полям, которые формируются на основе данных формы или источника данных.
Функция Nz — данная функция возвращает значение не NULL. Принимает один обязательный параметр с типом variant и один не обязательный. Она работает следующим образом, если входящий параметр NULL она преобразует его в другое значение, для предотвращения использования NULL значений в выражении. Также если указан второй параметр, то в случае если первый параметр NULL то она вернет его, т.е. второй параметр.
Пример предотвращения NULL значения в выражении:
Т.е. если бы мы не использовали данную функцию, то тогда у нас была ошибка, так как сложить число со значением NULL нельзя, но мы это предвидели и предотвратили.
Пример возвращения значения, если входящий параметр равен NULL:
Здесь просто мы смотрим если первый параметр NULL, то возвращаем второй в виде строки.
Приведу несколько функций для работы с числами.
Функции Int, Fix, Abs – функции которые работают с числами, все они принимают один параметр и делают следующее:
- Int – принимает значение типа Double и возвращает число меньшее или равное исходному числу, в случае если число отрицательное;
- Fix — принимает значение типа Double и возвращает число большее или равное исходному числу, в случае если число отрицательное;
- Abs – возвращает абсолютное значение числа переданное во входящем параметре.
Примечание! Для перевода на новую строку мы использовали константу vbNewLine.
Пока это все, надеюсь, данные простые примеры помогут Вам освоить и понять что такое встроенные функции, а мы с Вами продолжим изучать VBA Access в следующих статьях. Удачи!