Light-electric.com

IT Журнал
4 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Access if then else

ШКОЛА ПРОГРАММИРОВАНИЯ

Вы здесь

Сообщение об ошибке

Работа с условием If в VBA

Условный оператор IF является основной частью любого языка программирования. Без него не обойтись при написании даже небольшой программы, в которой необходимо принять некоторое решение. Синтаксис конструкции If следующий:

If условие Then [Команда 1] [Else Команда 2]

Если перевести, то получается: Если условие Тогда Команда 1 Иначе Команда 2

Т.е. если условие истинно тогда выполняется некоторая Команда (Команды) иначе выполняются другие Команды.В этом варианте конструкции IF будет выполнено только одна Команда. Else можно пропустить.

Примечание: При такой форме условия в Visual Basic после ключевого слова Then обязательно должна идти команда, а так же слова Then и Else должны находиться на той же строке что и IF, иначе интерпретатор выдаст ошибку. Если для удобства восприятия необходимо Команду 1 перенести на новую строку, то необходимо воспользоваться символом «_» после Then.

If условие Then _
[Команда 1] _
[Else Команда 2]

При таком варианте использования условия будет выполнено только одно действие. Если необходимо выполнить множество действий после Then или Else, то воспользуйтесь следующим вариантом написания условия:

If условие Then
[Команда 1]
[Команда 2]
.
[Else]
[Команда 3]
[Команда 4]
End If

Ключевое слово Else можно так же, как и в первом варианте не использовать, если нет необходимости.

И третий вариант конструкции, при котором происходит проверка условия, если первое условие не выполнено

If условие 1 Then
[Команда 1]
[Команда 2]
.
[ElseIf условие 2 Then
[Команда 3]
[Команда 4]
[Else
[Команда 5]
[Команда 6]
End If

В условиях также можно использовать логическое И (And), ИЛИ(Or) и отрицание НЕ (Not).
Рассмотрим несколько примеров использования выше перечисленных конструкций.

Пример 1

If a=b Then msgbox «а равняется b» Else msgbox «а не равно b»

Пример 2

В этом варианте Else не используем.
If a=b Then msgbox «а равняется b»

Пример 3

Используя «_» для интерпретатора Basic такая запись равносильна записи в Примере 1
If a=b Then _
msgbox «а равняется b» _
Else msgbox «а не равно b»

Пример 4
If a=b Then
msgbox «а равняется b»
a = a+b
Else
msgbox «а неравно b»
c = b
End If

Пример 5
If a=b Then
msgbox «а равняется b»
ElseIf a>b Then
msgbox «а больше b»
Else
msgbox «b больше a»
End If

Решения, условия, алгоритмы if, then, switch в VBA Excel

Принятие решений позволяет программистам контролировать поток выполнения сценария или одного из его разделов. Исполнение управляется одним или несколькими условными операторами.

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

VBA предоставляет следующие типы решений. Нажмите следующие ссылки, чтобы проверить их данные.

If. Then — Если То

Оператор If состоит из логического выражения, за которым следуют одно или несколько операторов. Если условие называется Истинным, выполняются утверждения в условии If (s). Если условие называется False, выполняются инструкции после цикла If.

Синтаксис

Ниже приведен синтаксис оператора If в VBScript.

Диаграмма потока

пример

Для демонстрационной цели давайте найдем самую большую из двух чисел Excel с помощью функции.

Когда приведенный выше код выполняется, он производит следующий результат.

X is Greater than Y

Если заявление состоит из логического выражения следует один или более операторов.

if..else заявление

Оператор If состоит из логического выражения, за которым следуют одно или несколько операторов. Если условие называется Истинным, выполняются утверждения в условии If (s). Если условие называется False, выполняются утверждения в разделе Else Part.

Синтаксис

Ниже приведен синтаксис оператора If Else в VBScript.

Диаграмма потока

пример

Для демонстрационной цели давайте найдем самую большую из двух чисел Excel с помощью функции.

Когда приведенный выше код выполняется, он производит следующий результат.

Y is Greater than X

Если иное утверждение состоит из логического выражения следует один или более операторов. Если условие равно True, выполняются инструкции в операторах If . Если условие ложно, выполняется Else часть скрипта.

Читать еще:  Режимы работы в субд access

if . elseif..else statement

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

Синтаксис

Ниже приведен синтаксис оператора If Elseif-Else в VBScript.

Диаграмма потока

пример

Для демонстрационной цели давайте найдем самую большую из двух чисел Excel с помощью функции.

Когда приведенный выше код выполняется, он производит следующий результат.

X and Y are EQUAL

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

вложенные операторы if

Оператор If или ElseIf внутри другого оператора If или ElseIf. Внутренние операторы If выполняются на основе внешних операторов If. Это позволяет VBScript легко справляться с сложными условиями.

Синтаксис

Ниже приведен синтаксис инструкции Nested If в VBScript.

пример

Для демонстрационной цели найдем тип положительного числа с помощью функции.

Когда приведенный выше код выполняется, он производит следующий результат.

The Number is a POSITIVE Number The Number is NOT 0,1,2 or 3

Если или ElseIf заявление внутри другого, если или ELSEIF заявление.

инструкция switch

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

Case Else — необязательный оператор в Select Case, однако для хорошей практики программирования всегда есть оператор Case Else.

Синтаксис

Ниже приведен синтаксис оператора Switch в VBScript.

пример

Для демонстрационной цели найдем тип целого с помощью функции.

Когда приведенный выше код выполняется, он производит следующий результат.

The Number is the Least Composite Number

Переключатель заявление позволяет переменной быть проверены на равенство в отношении списка значений.

Функция IIf

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

Возвращает одну из двух частей в зависимости от оценки выражение.

Вы можете использовать функцию IIf везде, где можно использовать выражения. IIf используется для определения, является ли другое выражение истиной или ложью. Если выражение истинно, IIf возвращает одно значение; если оно ложно, IIf возвращает другое значение. Значения, возвращаемые IIf, устанавливаете вы.

Функция IIf имеет аргументы, указанные ниже.

Обязательный аргумент. Выражение, которое требуется оценить.

Обязательный аргумент. Значение или выражение, возвращаемое, если значение аргумента выражение является истинным.

Обязательный аргумент. Значение или выражение, возвращаемое, если значение аргумента выражение является ложным.

IIf всегда оценивает обе части если_истина и если_ложь, хотя и возвращает только одну из частей. Обратите на это внимание, чтобы избежать нежелательных последствий. Например, если при оценивании части если_ложь приходится делить на ноль, возникает ошибка, даже если выражение является истинным.

Примеры

Использование IIf в форме или отчете Предположим, что у вас есть таблица клиентов, который содержит поле с именем Страна или регион. В форме нужно указывают, является ли итальянский язык первый контакт. Можно добавить элемент управления и использование функции IIf в свойстве Control Source следующим образом:

=IIf([Страна или регион]=»Италия», «Итальянский», «Другой язык»)

Когда вы открываете форму в режиме формы, элемент управления отображает «Итальянский», если в поле «Страна или регион» указана Италия, и «Другой язык», если в поле «Страна или регион» указано другое значение.

Читать еще:  Docmd openform access синтаксис

Использование IIf в сложных выражениях Любое выражение можно использовать как любой части инструкцию IIf . Можно также «вложить» IIf выражения, позволяя вычисления ряда зависимых выражения. Чтобы продолжить работу в предыдущем примере, может потребоваться для нескольких различных значений Страна или регион, а затем отобразите нужный язык в зависимости от того, что существует значение:

=IIf([Страна или регион]=»Италия», «Итальянский», IIf([Страна или регион]=»Франция», «Французский», IIf([Страна или регион]=»Германия», «Немецкий», «Другой язык»)))

Текст «Другой язык» является аргументом если_ложь внутренней функции IIf. Поскольку каждая вложенная функция IIf является аргументом если_ложь функции IIf, которая ее содержит, текст «Другой язык» возвращается только в случае, если все аргументы выражение всех функций IIf оцениваются как ложные.

Приведем другой пример. Предположим, что вы работаете в библиотеке. В базе данных библиотеки есть таблица под названием «Выданные книги», которая содержит поле «Срок» с датой, когда нужно вернуть определенную книгу. Вы можете создать форму, которая указывает состояние выданной книги в элементе управления, с помощью функции IIf в свойстве Данные, например:

Операторы ветвления VBA: простой выбор

До сих пор рассматривались процедуры и функции, которые VBA выполняет в линейном порядке — VBA начинает выполнение кода с первого оператора после строки объявления процедуры (функции) и продолжает выполнять каждый оператор построчно до тех пор, пока не будет достигнут оператор End Sub (End Function). Такой линейный алгоритм можно представить нижеследующей блок-схемой:

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

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

Простейшими операторами условного перехода являются операторы If..Then; If..Then..Else. Первый оператор позволяет выбирать единственную ветвь процедуры (левая блок-схема), тогда как второй дает возможность выбирать из двух альтернативных ветвей кода процедуры (правая блок-схема) на основе оценки того, является ли условие равным True или False.

Синтаксис If..Then

Вариант 1:
If Condition Then Statements

Вариант 2:
If Condition Then
Statements
End If

Condition — логическое выражение;

Statements — один, несколько или ни одного оператора VBA.

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

Второй вариант позволяет указывать несколько операторов в разных строках.

Логика работы следующая: VBA сначала оценивает логическое выражение, представленное в секции Condition; если это логическое выражение равно True то выполняется оператор (операторы) секции Statements; затем VBA продолжает выполнение кода следующего за строкой If..Then (Вариант 1) или за ключевыми словами End If (Вариант 2). Если же логическое выражение равно False, то операторы секции Statements пропускаются и выполняется код, следующий за этой секцией.

Ниже приведен листинг элементарного использования первого варианта написания If..Then:


А теперь — второй вариант:

Обратите внимание, что операторы секции Statements написаны с использованием отступа (используется табуляция). Это важный момент. Следует сразу приучать себя к подобному оформлению программного кода — это повышает его удобочитаемость и значительно облегчает поиск ошибок.

Синтаксис If..Then..Else

Вариант 1:
If Condition Then Statements Else ElseStatements

Вариант 2:
If Condition Then
Statements
Else
ElseStatements
End If

Condition — логическое выражение;

Statements, ElseStatements — один, несколько или ни одного оператора VBA.

По аналогии с If..Then — первый вариант требует написания оператора в одну строку, при этом в секциях Statements и ElseStatements можно указывать несколько операторов, разделяя их двоеточием.

Второй вариант позволяет указывать несколько операторов в разных строках.

Логика работы следующая: VBA сначала оценивает логическое выражение, представленное в секции Condition; если это логическое выражение равно True то выполняется оператор (операторы) секции Statements; затем VBA продолжает выполнение кода следующего за строкой If..Then (Вариант 1) или за ключевыми словами End If (Вариант 2). Если же логическое выражение равно False, то выполняются операторы секции ElseStatements.

Читать еще:  Count в access

Следует сказать, что блок операторов If..Then..Else (Вариант 2) легче читать и понимать. Поэтому, советую использовать именно этот вариант, даже если в секциях Statements и ElseStatements будет находиться по одному оператору.

В начало страницы

В начало страницы

Проверка условий в VBA, оператор If. Then. Else, вложенные конструкции If.

Операторы условного перехода — одни из самых важных и часто используемых элементов в языках программирования. Общий принцип их работы прост: проверяется соответствие каким-то условиям (истинность или ложность каких-либо выражений) и в зависимости от этого выполнение программы направляется по одной или другой ветви. В VBA предусмотрено два оператора условного перехода: If… Then. Else и Select Case.

Операторы условного и безусловного перехода.

Условный оператор (полная и сокращенная форма)

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

Если условие, указанное в операторе выполняется, то управление передается строке с номером N1 или оператору 1, иначе — строке с номером N2 или оператору 2 — полная форма.

IF THEN — сокращенная форма.

Управляющие операторы if, if-else, if-else-if и switch;

Операторы цикла for, while и do-while.

if (условие) оператор;
else оператор;

При этом, если условие выполняется, то есть оно «истинно», то вслед за этим выполняется оператор (может быть даже составной оператор), следующий непосредственно за условием, то есть записанный за условием в программе.
Если же условие не выполняется, то есть оно принимает значение «ложно», то всегда выполняется оператор, следующий за ключевым словом «else». Однако, если эта часть оператора if отсутствует, то в том случае, когда условие принимает значение «ложно», выполняется следующий оператор программы, который следует за оператором if.

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

Однострочный оператор If:

На языке VBA разветвление можно описать оператором If. Различают строчный (однострочный) и блочный (многострочный) операторы.

Синтаксис однострочного оператора: после If записывается логическое выражение (ЛВ).

If ЛВ Then [ОП_истина] [Else ОП_ложь]

ОП_истина – операторы, которые будут выполнены, если ЛВ — истина (True).

ОП_ложь – операторы, которые будут выполнены, если ЛВ – ложь (False).

Вся конструкция записывается в одной строке.

Многострочный оператор If:

На языке VBA разветвление можно описать оператором If. Различают строчный (однострочный) и блочный (многострочный) операторы.

Синтаксис многострочного оператора: после If записывается логическое выражение (ЛВ).

[ElseIf ЛВ_доп Then

ОП_истина – операторы, которые будут выполнены, если ЛВ — истина (True).

ОП_ложь – операторы, которые будут выполнены, если ни одно из проверяемых условий не является истиной.

ЛВ_доп – дополнительные логические выражения.

ОП_доп_истина – операторы, которые выполняются, если ЛВ_доп – истина.

Вся конструкция записывается в несколько строк.

40.

Вложенные циклы – это циклы, в состав которых входят другие циклы. Число вложений теоретически не ограничено.

Принципы организации вложенных циклов:

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

Настройка циклов должна производиться в порядке их вложенности: вначале настраивается внешний цикл, затем внутренний (каждый отдельными блоками).

Внутренний цикл всегда выполняется от начала до конца для каждого повторения внешнего цикла.

Это значит, что обновление данных для внешнего цикла следует осуществлять после выхода из внутреннего. Нельзя завершить внешний цикл, не завершив внутренний.

Ссылка на основную публикацию
Adblock
detector