Логические операторы

Логические (булевы) операторы используются для объединения результатов двух или более выражений сравнения в единое целое:

Они могут состоять только из выражений, возвращающих логические значения True, False или Null. В противном случае выполняется побитовое сравнение. Логические операторы всегда требуют двух операндов, за исключением Not — логического эквивалента унарного минуса.

В табл. 4.4—4.6 приведены результаты логических операторов Access в зависимости от значения операндов.

Таблица 4.4. Зависимость значения логических операторов от значения операндов

 A=True B=FalseA=True B=TrueA=False B=FalseA=False B=True
A And ВFalseTrueFalseFalse
A Or ВTrueTrueFalseTrue
Not AFalseFalseTrueTrue
А Хог ВTrueFalseFalseTrue
A Eqv ВFalseTrueTrueFalse
A Imp ВFalseTrueTrueTrue

Для всех логических операторов, кроме Imp, значение одного из операндов Null приводит к значению результата Null.


 A=Null B=FalseA=Null B=TrueA=False B=NullA=True B=NullA=Null B=Null
A Imp ВNullTrueTrueNullNull

Таблица 4.5. Значения оператора Imp с Null-операндами

В случае если сравниваются два выражения и, по крайней мере, одно из них не является константой из множества (True, False, Null), логические операторы приводят к побитовому сравнению выражений-операндов (табл. 4.6).


Значения соответствующего бита результатабитА=1 бит В=06итА=1 битВ=1битА=0 бит В=0бит А=0 бит В=1
A And В0100
A Or В1101
Not A0011
А Хог В1001
A Eqv В0110
A Imp В0111

Таблица 4.6. Значения логических операторов для однобитовых операндов