Семенова
И.И. Программирование в MS
Access. Часть 2. -
Программирование в ms Access. Часть 2. Инструкция If...Then...Else
Задает выполнение определенных групп инструкций в зависимости от значения выражения.
IfусловиеThen[инструкции] [Elseинструкции_else]
Допускается также использование блоковой формы синтаксиса:
IfусловиеThen
[инструкции]
[ElseIfусловие-nThen
[инструкции_elseif] ...
[Else
[инструкции_else]]
EndIf
Пример.Генерирует случайное число от 0 до 3 и по полученному значению из условия выводит соответствующее сообщение.
Private Sub If_Else()
Dim I As Integer
I = Int((3 * Rnd) + 1)
If I = 1 Then
MsgBox "Выполнено 1-ое условие", vbOKOnly
ElseIf I = 2 Then
MsgBox " Выполнено 2-ое условие", vbOKOnly
Else
MsgBox " Выполнено 3-ое условие", vbOKOnly
End If
End Sub
Задание.В модуле создать новую частную процедуру с именемSimple2_1, создать переменную логического типа и присвоить ей значениеTrue. Сделать условие, которое бы выводило сообщение «Переменная = ИСТИНА» или «Переменная = ЛОЖЬ» по соответственному значению объявленной логической переменной.
Инструкция Do...Loop
Повторяет выполнение набора инструкций, пока условие имеет значение Trueили пока оно не примет значениеTrue.
Do [{While | Until} условие]
[инструкции]
[Exit Do]
[инструкции]
Loop
Пример: Вывод в цикле сообщений. Причем, если значение переменной I = 6, то происходит принудительный выход из цикла.
Private Sub DoWhile()
Dim I As Integer
I = 1
Do While I < 10
MsgBox "Cообщение = " + CStr(I), vbOKOnly
I = I + 1
If I = 6 Then
Exit Do
End If
Loop
End Sub
Задание. В модуле создать новую частную процедуру с именемSimple2_2. Объявить переменную типа длинное целое и присвоить ей значение 3. В процедуре создать цикл, в котором бы переменная умножалась на случайное число в диапазоне от 0 до 30. Результат умножения сохранять в той же переменной. Цикл прекращает работу, когда значение переменной станет больше 10 000.
Инструкция While...Wend
Выполняет последовательность инструкций, пока заданное условие имеет значение True.
Whileусловие
[инструкции]
Wend
Инструкция For...Next
Повторяет выполнение группы инструкций указанное число раз.
Forсчетчик = началоToконец [Stepшаг]
[инструкции]
[ExitFor]
[инструкции]
Next[счетчик]
Пример. Создается массив для хранения целых чисел и заполняется произведениями номера строки на номер столбца с выводом значения каждого элемента массива на экран
PRIVATE For_Next ( )
Dim array_1(3, 4) As Integer
Dim i, k As Integer
For i = 1 To 3
For k = 1 To 4
array_1(i, k) = i * k
MsgBox CStr(array_1(i, k)), vbOKOnly
Next
Next
End Sub
Задание:В модуле создать новую частную процедуру с именемSimple2_3. Создать двумерный массив размером 3х5 с названиемArray_Base. Заполнить его в цикле суммой номера строки на номер столбца текущего элемента массива. Вывести сообщения, в которых будут отображены значения элементов каждой строки через точку с запятой: например, 2; 3; 4; 5; 6
3; 4; 5; 6; 7
. . .
Инструкция Select Case
Задает выполнение определенных групп инструкций в зависимости от значения выражения.
SelectCaseвыражение
[CaseсписокВыражений-n
[инструкции-n]] ...
[CaseElse
[инструкции_else]]
EndSelect
Инструкция SelectCaseможет служить альтернативой инструкцииElseIfвIf...Then...Elseпри оценке одного выражения, которое имеет несколько возможных значений. В то время какIf...Then...Elseдля каждой инструкцииElseIfоценивает разные выражения, инструкцияSelectCaseоценивает выражение только один раз, в начале управляющей структуры. Необязательная инструкцияCaseElseвыполняется, еслиSelectCaseне находит подходящего значения ни в одной из инструкцийCase.
Пример.Генерирует случайное число от 0 до 6 и по полученному значению из условия выводит соответствующее сообщение.
Private Sub SelectCase ( )
Dim I As Integer
I = Int((6 * Rnd) + 1)
Select Case I
Case 1 to 3
MsgBox "Выполнено 1-ое условие, где I = (1 или 2 или 3)", vbOKOnly
Case 4, 6
MsgBox " Выполнено 2-ое условие, где I = (4 или 6)", vbOKOnly
Case Else
MsgBox " Выполнено 3-ое условие, где I любое, кроме (1, 2, 3, 4, 6)", vbOKOnly
End Select
End Sub