Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модули.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
76.29 Кб
Скачать

Оператор Dim

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

Dim имя переменной [As тип данных]

Обратите внимание на то, что имя переменной размещено после оператора Dim. Кроме указания имени переменной, можно использовать необязательную опцию описания As, с помощью которой устанавливается тип данных переменной. Тип данных представляет собой определенную информацию, которая сохраняется вместе с именем переменной и может принимать значения String (текстовый), Integer (целое число), Currency (денежный) и др. По умолчанию назначается тип данных variant. При этом типе данных переменная может содержать любые данные.

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

Логические конструкции VBA

Одна из наиболее важных особенностей использования языков программирования — это возможность создавать программы для автоматического принятия решений, основываясь на заданном условии. Часто происходит ветвление VBA-программ для выполнения различных действий в зависимости от значения некоторой переменной. Если задаваемое программистом условие истинно, программа выполняет одну операцию, а если ложно — другую. Выполнение программы по заданному условию происходит таким образом: программа определяет значение установленной переменной и на его основании выбирает одну из ветвей программного кода.

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

Выполнение программ по условию

Возможность выбирать последовательность выполнения программы по значениям переменных называется выполнением по условию. Visual Basic предлагает два оператора для выполнения программы по условию.

    • If...Then..

. else...

End If

    • Select Case

Оператор If..Then...Else...End If

Операторы If.. .Then.. .End If и If.. .Then.. .Else.. .End If позволяют, основываясь на значениях переменных, выполнять ту или иную операцию. Условие может принимать значения "истина" и "ложь". Если условие истинно, выполняется следующий оператор, а если ложно, программа переходит к выполнению оператора после части Else (если таковая имеется) или после оператора End If.

Оператор Else необязателен. Вы можете использовать его, например, для проверки второго условия, если оператор If возвратил значение "ложь". Когда оператор If возвращает значение "истина", программа выполняет операторы между оператором If и оператором Else. Когда оператор If возвращает значение "ложь", программа переходит к оператору Else (если он существует). Теперь, если оператор Else возвращает значение "истина", выполняется следующий оператор, в противном случае происхдит переход к оператору, следующему за оператором End If.

При использовании множественной вложенной конструкции If.. .Then...Else выражение становится слишком сложным и в таком случае лучше использовать конструкцию Select Case.

Конструкция Select Case...End Select

В дополнение к операторам If...Then Visual Basic предлагает операторы для одновременного контроля целого ряда условий. Для проверки выполнения нескольких условий удобно использовать оператор Select Case с общим синтаксисом:

Select Case тестовое выражение

Case значение 1

операторы программы (результат выражения=значение1)

Case значение 2

операторы программы (результат выражения=значение2)

Case Else

операторы программы (результат выражения не равен ни одному из приводимых значений)

End Select

Синтаксис этого оператора подобен синтаксису оператора If...Then, только в VBA вместо условия для оператора Select Case используется выражение. Затем каждый оператор Case внутри оператора Select Case сравнивает свое значение со значением выражения. Когда эти значения совпадают, программа выполняет следующую строку или строки операторов до следующего оператора Case или End Select. Visual Basic будет выполнять операторы программы, стоящие только за одним оператором Case.

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

Оператор Case Else необязателен. Он, как правило, помещается после всех операторов Case внутри структуры Select Case. Этот оператор используется для выполнения некоторого действия, если ни одно значение операторов Case не совпало со значением выражения оператора Select Case.

Создание процедур типа Function (Функция)

Понятие функции в алгоритмических языках близко понятию функции в математике.

Функция выполняет служебное действие, например вычисление, и возвращает значение.

Процедура типа Function (Функция) представляет собой группу операторов, содержащихся между оператором Function и оператором End Function в стандартном модуле. Операторы в функции обрабатывают текст, управляют входными данными или вычисляют значения.

Типичным примером использования функции является оператор присваивания

Y=Sin(X)

где X – это фактический параметр, передаваемый на обработку функции, Sin - имя стандартной (встроенной функции), Sin(X) - возвращаемый функцией результат.

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

Функция возвращает своё значение, и оно может быть использовано:

  • в операторах присваивания в вычислении выражения: z=Sin(x)+a/b

  • выводе на экран: Text1.Text=Sin(x)

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

Примечание.

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

Синтаксис процедуры типа Function (Функция)

В библиотеке компилятора уже имеются встроенные функции. Пользователь (программист) может сам создать собственную функцию (функцию пользователя).

Основной синтаксис процедуры типа Function (Функция) следующий:

Private Function Имя Функции [(список формальных параметров)] [As тип]

[операторы объявления локальных переменных]

[операторы]

[имя функции=выражение]

End Function

Важными являются следующие элементы синтаксиса.

  • Имя Функции представляет собой имя функции, которую вы создаете в стандартном модуле.

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

  • As тип является опцией, задающей тип данных для возвращаемого функцией значения (по умолчанию используется тип Variant (Вариант)).

  • Операторы представляют собой блок операторов, выполняющих действия функции.

Функции всегда возвращают значение вызвавшей их процедуре в виде имени функции (Имя Функции). По этой причине последний оператор функции часто является оператором присваивания, назначающим окончательный результат вычисления функции описанию Имя Функции. Если имени функции не присвоено никакое значение, то имя функции принимает значение по умолчанию: числовая функция принимает значение 0, строковая функция принимает значение пустой строки нулевой длины.

Список формальных параметров – список входных параметров функции имеет вид:

имя [{}] [As тип] ,имя [{}] [As тип]]…

Этот список не содержит имени переменной, определяющей результат выполнения функции. Эта переменная должна быть описана как локальная.

Вызов процедуры типа Function (Функция)

Вызов функции имеет следующий синтаксис:

Имя функции [(список фактических параметров)]

Это не оператор, а выражение.

Вызов функции осуществляется указанием её имени со списком фактических параметров в операторах присваивания, в качестве операнда выражения в определении значения свойства.

Список фактических параметров может отсутствовать.

Пример: создать функцию пользователя для вычисления среднего балла по экзаменам.

В окне БД выбрать Модуль. В открывшемся окне ввести текст программы:

Private Function SrBall_EKZ (m as integer, i as integer, r as integer ) As integer

Dim SB as inetrger ‘ объявляем переменную, в которой будем вычислять средний балл

SB = (m+i+r)/3 ‘ вычисляем средний балл

SrBall_EKZ = SB ' присваиваем функции вычисленное

End Function

Сохранить, закрыть модуль.

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

Задание: создать функцию пользователя, которая позволит получить информацию о зачислении абитуриентов. Считать, что абитуриент зачислен в случае, если его средний балл за экзамены выше 4,5.