(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Введение в программирование на Visual Basic

miit.bsu.edu

В качестве языка программирования будем использовать Visual Basic, а точнее - Visual Basic for Applications (VBA), встроенный в среду MS Access. Причинами этого выбора являются:

  • для использования языка не требуется установки компилятора на компьютере пользователя - VBA встроен в среду MS Access;
  • в VBA реализованы основные концепции процедурного и объектно-ориентированного программирования;
  • VBA для MS Access является мощным инструментом без которого трудно обойтись при разработке сложных СУБД.

Следует также заметить, что в рамках курса информатики мы рассматриваем лишь основы программирования на Visual Basic. На этом уровне изучения приводимые коды программ не требуют никакой коррекции при их использовании в среде универсальной версии Visual Basic, например, VB 6.0.

Среда разработки программ

Для открытия окна интегрированной среды разработки программ в MS Access необходимо в окне БД выбрать пункт Модули и нажать кнопку Создать. Фрагмент окна интегрированной среды показан на рисунке.

Основными пунктами меню, необходимыми для запуска и отладки программы являются:

  • Run/Run Sub - запуск программы;
  • Run/Break - приостановка выполнения программы;
  • Run/Reset - прерывание выполнения программы;
  • Debug/Step Into - выполнить очередной оператор программы;
  • Debug/Step Over - выполнить оператор программы без входа в процедуры;
  • Debug/Toggle BreakPoint - установить точку прерывания;
  • Debug/Clear All BreakPoints - очистить все точки прерывания;

Текст (код) программы набирают в окне редактора. После набора программу следует запустить на выполнение командой Run/Run Sub. Если в программе обнаружены ошибки, то используются команды отладки, перечисленные выше.>

Структура программного кода

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

Порядок записи процедур и функций безразличен, однако должен существовать главный объект, с которого начинается выполнение программы. В большинстве случаев таким объектом является процедура Main().

Программы на языке Visual Basic в среде Access хранятся в модулях. Mодуль является структурой, сохраняющей некоторый набор описаний и процедур, или способом организации процедур.

Модули подразделяются на стандартные и модули форм и отчетов.

Стандартные модули. Стандартные модули являются отдельными объектами Access и представлены в окне БД. В них хранятся процедуры, доступные из любых других объектов базы данных. Вызов этих процедур может осуществляться из процедур обработки событий, процедур других стандартных модулей, макросов и просто из выражений.

Модули форм и отчетов. Любая форма и любой отчет базы данных содержит встроенный модуль. Модуль формы или отчета создается автоматически при создании формы или отчета и является частью их описания. Модуль существует пока существует форма или отчет, копируется и удаляется вместе с ними. Процедуры модулей связываются с событиями этих объектов.

Процедуры и функции

Процедуры имеют следующий синтаксис:

[Private / Public] Sub <Имя>(<Формальные аргументы>)
<Тело процедуры>
End Sub

Здесь и далее угловые скобки ( < и > ) содержат пояснения, на место которых должны быть подставлены реальные текстовые конструкции, соответствующие синтаксическим правилам языка. Квадратные скобки означают необязательность применения записанных в них служебных слов. Вертикальная черта означает возможность выбора одного из служебных слов.

Вызов процедуры общего назначения выполняется по имени:

<Имя>(<Фактические аргументы>)

При вызове процедуры фактические аргументы подставляются на место формальных и управление выполнением передается процедуре. Аргументы могут быть входными, выходными или модифицируемыми. Через входные аргументы процедура получает данные при обращении к ней. Выходные аргументы возвращают результаты выполнения процедуры. Модифицируемые аргументы являются одновременно входными и выходными.

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

[Private / Public] Function <Имя>(<Аргументы>)<Описание функции>
<Тело функции>
End Function

Для того, чтобы функция возвращала результат через имя, в теле функции должна присутствовать хотя бы одна команда присваивания типа

<Имя>=<выражение>

Служебные слова Private и Public задают область видимости процедур и функций. Private делает объект доступным только внутри данного модуля. Public делает объект дос-тупным из другого модуля.

Описание переменных

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

Основной инструкцией для явного описания переменных является инструкция Dim. При размещении инструкции описания в разделе описаний модуля создается переменная, которая может использоваться внутри модуля. При размещении инструкции описания внутри процедуры создается переменная, которая может использоваться только внутри процедуры. При определении переменной для нее указывается тип данных.

Формат инструкции описания переменной:

Dim <Имя переменной> [As <Тип данных>]

Следующая инструкция создает переменную X и указывает для нее текстовый (строковый) тип данных String:

Dim X As String

Если разместить данную инструкцию внутри процедуры, то переменная X может быть использована только внутри этой процедуры. Если поместить данную инструкцию в раздел описаний модуля, то переменная X будет доступна для любых процедур в данном модуле, но недоступна для процедур в других модулях. Для того чтобы сделать данную переменную доступной для всех процедур в базе данных, следует описать ее как общую с помощью инструкции Public:

Public X As String

В языке Visual Basic действуют следующие соглашения на имена процедур, переменных и констант:

  • должны начинаться с буквы;
  • могут включать буквы, цифры и символы подчеркивания;
  • не должны включать знаки препинания или пробелы;
  • не должны совпадать с ключевыми словами языка Visual Basic.

Основными типами данных, используемыми при описании переменных, являются:

  • Integer - целое число (2 байта);
  • Long - длинное целое число (4 байта);
  • Single - десятичное число одинарной точности (4 байта);
  • Double - десятичное число двойной точности (8 байтов);
  • Currency - десятичное число с фиксированной точкой (8 байтов);
  • String - строка текста (до 65400 символов);
  • Byte - целое от 0 до 255 (1 байт);
  • Boolean - логическое значение True или False (2 байта);
  • Date - дата и время (8 байтов);
  • Object - экземпляр класса (4 байта);
  • Variant - любой из перечисленных выше типов (16 байтов + 1 байт/символ).

Указание типа данных в инструкции описания не является обязательным. Если тип данных не указан, по умолчанию переменная получит тип Variant.

Данные этого типа интерпретируются в Visual Basic в зависимости от операции, в которой они используются, т.е. их тип может меняться. При этом производится преобразование одного типа данных в другой. Использование типа данных Variant вместо любого типа данных обеспечивает большую гибкость при обработке. Однако это порождает некоторые трудности и может приводить к возникновению ошибок.

Допускается описание нескольких переменных в одной инструкции. Если требуется явно описать тип данных, то необходимо включить описание типа данных для каждой переменной. В следующей инструкции переменные X, Y и Z описываются с типом данных Integer:

Dim X As Integer, Y As Integer, Z As Integer

В следующей инструкции переменные X и Y описываются с типом данных Variant; а переменная Z с типом данных Integer:

Dim X, Y, Z As Integer

Для того чтобы запретить неявное описание переменных в Visual Basic, следует поместить в раздел описания модуля инструкцию Option Explicit. Эта инструкция требует явного описания всех переменных, используемых в модуле. Если в модуль включена инструкция Option Explicit, то Visual Basic генерирует ошибку при компиляции, если обнаруживается имя переменной, которая не была описана ранее.

Операторы управления выполнением программы

Оператор присваивания

Присваивание значений переменным осуществляется с помощью оператора присваивания. В этом операторе слева стоит имя переменной, а справа присваиваемое значение или выражение. Например:

Х=200*0.8/70
Y="Петров Семен Иванович"
Z=X/80+30
Y=Forms![СТУДЕНТ]![ФИО]

Оператор ветвления

Оператор ветвления предназначен для изменения порядка выполнения программы по некоторому условию. Синтаксис оператора:

If <условие1> Then
<Блок 1>
[ ElseIf <условие2> Then
<Блок 2>
· · ·]
[Else
<Блок N>]
End If

Оператор работает следующим образом: если (If) выполняется <условие 1>, то (Then) будет выполнена последовательность операторов <Блок 1>, иначе, если (ElseIf) выполняется <условие 2>, то будет выполнен <Блок 2> и т.д., иначе (Else) - <Блок N> .

Допустима форма записи оператора ветвления в одну строку:

If <условие1> Then <Оператор 1>: <Оператор 2>: . . . : <Оператор N>

В этом случае не указывается конец оператора (End If) как в первом варианте.

Оператор цикла For . . . Next

Синтаксис:

For <i>=<i0> To <iN> [Step <ih>]
<Блок>
Next [<i>]

Значения <i>, <i0>, <iN>, <ih> соответственно означают:

  • <i> - параметр цикла;
  • <i0>, <iN> - начальное и конечное значения параметра цикла;
  • <ih> - шаг изменения параметра цикла.

Обычно перечисленные величины являются целыми числовыми. Если шаг не указан, то он по умолчанию принимается равным 1.

Для досрочного выхода из цикла используется команда Exit For.

Цикл Do с предусловием

Синтаксис:

Do [While/Until] <условие>
<Блок>
Loop

Если выбрано служебное слово While, то цикл продолжается, пока выполняется условие; если Until - то прекращается, когда условие выполняется.

Цикл Do с постусловием

Синтаксис:

Do
<Блок>
Loop [{While/Until}] <условие>

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

В обоих циклах Do для досрочного выхода из цикла используется команда Exit Do.

Операторы ввода-вывода

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

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

InputBox("<Текст подсказки>")

Например, при выполнении команды присваивания

S = InputBox("Введите А")

будет выведено стандартное окно:

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

Следует иметь в виду, что функция InputBox() возвращает текстовое значение. Поэтому при необходимости ввести число, следует преобразовать возвращаемое значение в требуемый числовой тип. Для преобразования в основные числовые типы используются функции:

  • CInt() - для преобразования в целый тип Integer;

  • CSng() - для преобразования в вещественный тип Single.

Таким образом, для ввода целого значения N следует записать:

N = CInt(InputBox("Введите N"))

При преобразовании текстовых значений в вещественные с помощью функции CSng(), в окне InputBox в качестве разделителя целой и десятичной частей числа должна быть введена запятая (в выражениях разделителем является точка!). Если введен текст, не соответствующий образу числа, то функции CInt() и CSng() выдают сообщение об ошибке.

Для вывода результатов вычислений можно использовать процедуру MsgBox():

MsgBox (<текст>)

Выводимое значение должно иметь текстовый тип. Для преобразования числа любо-го типа в текст используется функция

CStr(<числовая переменная>)

Если в одном окне MsgBox требуется вывести несколько чисел, каждое из них сле-дует преобразовать в текстовый тип и "склеить" оператором +, например, при выполнении фрагмента программы:

N = 5
Pi = 3.14
MsgBox(CStr(N)+" "+CStr(Pi))

будет выведено следующее окно:

Обратите внимание, что функция CStr(Pi) возвратила значение, разделенное запятой, несмотря на то, что в программе разделителем в числе 3.14 является точка.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 16.08.2012 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office для дома и учебы 2019 (лицензия ESD)
Microsoft 365 Business Standard (corporate)
Microsoft Office 365 Профессиональный Плюс. Подписка на 1 рабочее место на 1 год
Microsoft 365 Apps for business (corporate)
Microsoft 365 Business Basic (corporate)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Новости мира 3D-ускорителей
ЕRP-Форум. Творческие дискуссии о системах автоматизации
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100