| Главная » Статьи » Microsoft Access » Microsoft Access | [ Добавить статью ] |
Основы программирования на Visual Basic
Основы программирования на Visual BasicОсновой программы на Visual Basic является процедуры, состоящие из инструкций, которые выполняют необходимые действия и вычисления. Процедуры хранятся в модулях. Модули подразделяются на стандартные и модули форм и отчетов. Стандартные модули представлены в окне базы данных. Вызов этих процедур может осуществляться из процедур обработки событий, процедур других стандартных модулей, макросов и просто из выражений. Модули форм и отчетов создается автоматически при создании формы или отчета и является частью их описания. Стандартный модуль состоит из раздела описаний и процедур: Общая область Раздел описаний Процедура 1 ... ... ... Процедура N В стандартном модуле могут храниться обычные процедуры типа Sub и Function. Sub-процедура - это подпрограмма, которая не возвращает значения. Function - процедура-функция, которая возвращает значение. При объявлении требуется соблюдать правила описания процедур. Формат описания для процедуры Sub Sub имя ([ аргумент]) инструкции end sub Необязательный аргумент позволяет передавать в процедуру требуемые значения. Процедура Sub вызывается инструкцией: Call имя. Синтаксис описания функции очень похож на синтаксис процедуры Sub, но есть и отличия: Function имя ([ аргумент]) [ as тип] инструкции имя = выражение end function Параметр as тип позволяет явно задать тип данных, который возвращает функция. Если он опущен, то по умолчанию возвращается значение типа Variant. Если в разделе описания модуля помещена инструкция Option Explicit, то неявное описание запрещено. Функцию можно вызвать из выражения. Константы и переменные могут бать описаны как в разделе описания модуля, тогда они доступны во всех процедурах модуля, так и внутри процедур, тогда они действуют только в ее пределах. Формат описания переменных: Dim Имя переменной [ as тип данных] Основные типы данных, которые используются при описании: Boolean, Byte, Integer, Long, Currency, Single, Double, Date, String, Variant, Object. Если тип данных не указан, по умолчанию переменная получает тип Variant. Данные этого типа интерпретируются в зависимости от операции, в которой они используются, т.е. тип может меняться. Формат описания констант: Const Имя константы = значение Константы может определять пользователь и можно использовать стандартные константы , определенные системой. Первые две буквы в имени встроенных констант являются префиксом. Константы из библиотеки VBA имеет префикс "vb". Константы библиотеки Access имеют префикс "as". В выражениях могут использоваться стандартные функции языка. Перечислим некоторые из них: математические: Sin(x), Sqr(x), Exp(x), Log(x), Tan(x), Int(x) и пр.; преобразования: Str(s), Chr(x), Val(s); системные функции: InputBox- функция ввода данных через системное окно, MsgBox - функция выдачи сообщений в системное окно. Эти функции удобны для организации ввода - вывода в процессе работы программы. Формат функции ввода: Переменная=InputBox(Приглашение[, заголовок][, начальное значение]) Функция InputBox возвращает значение типа String. Например: Dim c as string Dim g as integer c=InputBox("Введи наименование товара:") g=Val(InputBox("Введи его цену:",,0) Формат функции вывода сообщений: [Переменная=]MsgBox(Текст[,опция][,Заголовок]) Опция ОР определяет внешний вид окна. Значение ОР=ОР1 + ОР2 ОР1-определяет вид пиктограммы выводимой в окне. Значения этой опции приведена в следующей таблице: Константа Значение Описание VbCritical 16 Используется значок Критическое сообщение VbQuestion 32 Используется значок Предупреждающий запрос VbExclamation 48 Используется значок Предупреждение VbInformation 64 Используется значок Информационное сообщение Например: x=MsgBox("Возможна ошибка!",VbExclamation) или x=MsgBox("Возможна ошибка!",48) OP2 - опция определяет набор кнопок выводимых в окне. Значения этой опции приводится в следующей таблице: Константа Значение Описание VbOKOnly 0 Отображается только кнопка OK VbOKCancel 1 Отображаются кнопки ОК и Отмена VbAbortRetryIgnore 2 Отображаются кнопки Прервать,Повторить и Пропустить VbYesNoCancel 3 Отображаются кнопки Да, Нет и Отмена VbYesNo 4 Отображаются кнопки Да, Нет VbRetryCancel 5 Отображаются кнопки Повторить и отмена Например: x=Msgbox("Функция="+str(f),VbOKOnly,"Результаты расчета") x=MsgBox("Будете еще вводить?, VbYesNo+VbQuestion, "Запрос") или x=MsgBox("Будете еще вводить?,36,"Запрос") Функция MsgBox возвращает значение, которое зависит от того, какая кнопка была нажата в окне. Значения, возвращаемые функцией приведены в следующей таблице: Константа Значение Описание VbOk 1 Ok VbCancel 2 Отмена VbAbort 3 Прервать VbRetry 4 Повторить VbIgnore 5 Пропустить VbYes 6 Да VbNo 7 Нет Например: x=MsgBox("Распечатать документ?,36) if x=6 then Call PrintRep Каждая инструкция в процедуре записывается с новой строки. Чтобы записать несколько инструкций в одной строке их надо разделять символом двоеточие. Если инструкция слишком длинна, то в конце строки вводят символ продолжения строки - подчеркивание ( _ ) - ф затем нажимают клавишу <Enter> и придолжают инструкцию на следующей строке. В языке Visual Basic Имеется целый набор инструкций, управляющих порядком выполнения команд. Рассмотрим некоторые из них. 1) Инструкция If ...Then ... Else Формат: if условие Then [инструкции] [else инструкции] End if Например, разработаем процедуру вычисления функции f=y/c, где y=5, а с- вводится с клавиатуры. Если будет введено с=0, должно выводиться сообщение. Sub prim() Dim f,c As Single Dim y As Integer y=5 c=Val(InputBox("Введи С:")) if c=0 Then MsgBox("Функция не существует!") else f=y/c MsgBox("функция="+str(f)) end if end sub 2) Инструкция Select Case Формат: Select Case выражение Case списокВыражений-1 инструкции . . . Case списокВыражений-n инструкции [Case else инструкции] End Select Например, необходимо определить значение скидки, обработав значение переменной UnOrder следующим образом: Select Case UnOrder Case 1 Discount=0 Case 2, 3 Discount=0.1 Case 4 To 6 Discount=0.2 Case Is>6 Discount=0.5 End Select 3) Цикл For ...Next Формат: For счетчик=начало То конец [Step шаг] инструкции Next Счетчик - любая числовая переменная. Например, вычислим функцию f=a*x2,где а=3,а переменная х =[1,5], шаг=1 Sub prim2() Dim a,x,f As Integer a=3 For x=1 To 5 f=a*x^2 MsgBox("X="+str(x)+" F="+str(f)) Next End Sub 4) Цикл While ... Wend Формат: While условие инструкции Wend Реализуем предыдущий пример, но таблица выводится по-другому: Tabvivoda="" ' Переменная, в которой формируется таблица для вывода x=1 While x<=5 f=a*x^2 Tabvivoda=Tabvivoda+"X="+str(x)+" F="+str(f))+Chr(13) x=x+1 Wend R=MsgBox(Tabvivoda, 0, "ТAБЛИЦА РАСЧЕТОВ") 5) Цикл Do ... Loop Эта инструкция имеет четыре варианта синтаксиса: ? Синтаксис 1: Do While условие нахождения в цикле инструкции Loop ? Синтаксис 2: Do Until условие выхода из цикла инструкции Loop ? Синтаксис 3: Do инструкции Loop While условие нахождения в цикле ? Синтаксис 4: Do инструкции Loop Until условие выхода из цикла Инструкция применяется аналогично While ...Wend. Например, вычислим сумму значений последовательности, вводимой с клавиатуры: Sub Prim3() Dim a,s As Single ' a- элемент последовательности,_ s- вычисляемая сумма Dim rez As Integer s=0 Do a=Val(InputBox("Введи элемент последовательности:")) s=s+a rez=MsgBox("Будешь ещё вводить?", VbYesNo, "Нажми кнопку") Loop Until rez=VbNo rez=MsgBox("Сумма="+Str(s) , 0 , "Результаты расчета") End Sub Порядок выполнения: 1. Откройте базу данных. 2. Создайте в модуле процедуру Sub для вычисления таблицы значений функции F=a.|x3|+a2.x для а=3, х изменяется на интервале от -4 до 4 с шагом 2. Для этого: ? в окне базы данных перейти в закладку Модули и шелкнуть кнопку Создать. Ассess откроет окно проектирования модуля. ? Вызовите команду процедура из меню Вставка. В появившемся диалоговом окне нажмите селективную кнопку Подпрограмма и введите имя создаваемой процедуры. Введите текст программы для решения поставленной задачи. ? проведите компиляцию загруженного модуля. Если при компиляции будут выявлены ошибки, то их надо исправить. ? После успешной компиляции выполните созданную процедуру и просмотрите результаты. 3. Подключите созданную процедуру к кнопке в форме. Для этого: ? перейдите в закладку Формы и создайте в режиме Конструктор новую форму. ? В ней создайте кнопку. В окне создания кнопки не выбирайте действий, связанных с ее нажатием, щелкните кнопку Отмена . ? В свойствах для созданной кнопки перейдите в закладку События и для опции Нажатие кнопки выберите значение Процедура обработки событий. ? В текст процедуры обработки событий вставьте вызов процедуры Sub. ? проверьте действие кнопки. 4. Скорректируйте созданную процедуру для расчета трех таблиц значений функции f при разных параметрах а=-2,4,7. Для этого организуйте внешний цикл ввода параметра а, отладьте скорректированную процедуру. Рекомендуется вывод таблиц организовать в окно Msgbox в виде таблиц целиком. 5. Создайте в модуле функцию для обработки последовательности вводимой с клавиатуры. Задание выберите в соответствии с вариантом. 6. В созданную ранее форму вставьте поле и организуйте вывод результата созданной функции в это поле. Варианты задания 1. Определить максимальный элемент среди отрицательных. 2. Вычислить среднее арифметическое отрицательных чисел. 3. Определить количество чисел, значение которых кратно 3. 4. Вычислить сумму положительных четных чисел. 5. Определить минимальный элемент среди положительных. 6. Определить количество отрицательных чисел. 7. Определить среднее арифметическое положительных чисел. 8. Определить сколько четных чисел в последовательности. 9. Определить сумму максимального и минимального элементов последовательности. 10. Вычислить сумму чисел, значение которых кратно 5. | |
| Просмотров: 5117 | Теги: | Рейтинг: 5.0/1 |
| Всего комментариев: 0 | |

