powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Пора-пора-порадуемся iif'у глючному ;)))
12 сообщений из 12, страница 1 из 1
Пора-пора-порадуемся iif'у глючному ;)))
    #32213459
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ!
Полюбуйтесь, что пишет всеми любимая компания про свою функцию
и глюки в ней.
ЭТО ВАЖНО!!!


http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnacbk02/html/odc_4009c15.asp

topic: Test 17: watch out for IIf—it doesn't short-circuit

...Beyond any optimization considerations, IIf is very dangerous when dealing with numeric values and division. If this was your expression:

dblNew = IIf(intY = 0, 0, intX/intY)

it would appear that you had appropriately covered your bases. Your code checks to make sure intY isn't 0 and returns an appropriate value if it is, rather than attempting to divide by 0. Unfortunately, if y is 0, this statement will still cause a runtime error. Because VBA will evaluate both portions of the IIf expression, the division by 0 will occur and will trigger an error. In this case, you need to either trap for the error or use the If . . . Then . . . Else statement. (See Test17a/b for the full test procedures.)

Note: The IIf function used in Access queries, forms, or reports doesn't have this same behavior—that is, it works as you'd expect it to in those places. It's only in VBA code, in a module, where you need to avoid IIf because of its overzealous evaluation tendencies.
...
Рейтинг: 0 / 0
Пора-пора-порадуемся iif'у глючному ;)))
    #32213475
JQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JQ
Гость
А по русски можно?
...
Рейтинг: 0 / 0
Пора-пора-порадуемся iif'у глючному ;)))
    #32213484
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, как вы хэлп-то читаете без энгл?!
А-а-а-а! Ведь есть форум ;)))

Кратко смысл:
НЕ ЮЗАЙТЕ iif( ) в коде VBA -
глюпый васик вычисляет оба возвращаемых выражения
(и истину, и ложь), что
а) замедляет работу проги ;)))))
б) может приводить к ошибкам - типа как в примере выше деление на 0
- вместо нее юзайте нормальный

If Then
Else
End if


А далее примечание:
"А вот в запросах / формах / отчетах у нас все работает!!!"

Ну чем не кони?
;))))))))))))))))))))
...
Рейтинг: 0 / 0
Пора-пора-порадуемся iif'у глючному ;)))
    #32213503
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давно известная фича :)
Switch'а вроде тоже касается.
...
Рейтинг: 0 / 0
Пора-пора-порадуемся iif'у глючному ;)))
    #32213504
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что конкретно тебя так обрадовало? То, что IIf обе части вычисляет? Ну так порадуйся еще и на Switch и на Choose.
Это нормально. Даже в хелпе описано. Все гут.
В запросах, кстати, еще веселее. Можно, например, третий аргумент опустить (несмотря на то что он обязательный)
...
Рейтинг: 0 / 0
Пора-пора-порадуемся iif'у глючному ;)))
    #32213505
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пункт б) может приводить к ошибкам - типа как в примере выше деление на 0
я 2 года назад это выяснила (что именно в модуле глючит а в репорте нет
у меня как раз был случай деление на 0 )- доооолго понять не могла почему в репорте работает , а в коде нет

только я думала что уже все знают про iif'

в общем всё как всегда- век живи, век учись, дураком помрёшь
...
Рейтинг: 0 / 0
Пора-пора-порадуемся iif'у глючному ;)))
    #32213511
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синтерс в книжке "Отладка на VB" прямо советует не использовать этот IIF
...
Рейтинг: 0 / 0
Пора-пора-порадуемся iif'у глючному ;)))
    #32213517
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и Гетц тоже советует. И майкрософт советует. Все, в общем, советуют, но все равно все пользуются.
...
Рейтинг: 0 / 0
Пора-пора-порадуемся iif'у глючному ;)))
    #32213574
JQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JQ
Гость
Пользуемся, в запросах без него никак.
...
Рейтинг: 0 / 0
Пора-пора-порадуемся iif'у глючному ;)))
    #32213584
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в запросах с ним все нормально
...
Рейтинг: 0 / 0
Пора-пора-порадуемся iif'у глючному ;)))
    #32213632
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Пользуемся, в запросах без него никак.

Вот вам лишнее подтверждение *читаемости* ответов
;)))
...
Рейтинг: 0 / 0
Пора-пора-порадуемся iif'у глючному ;)))
    #32213907
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>давно известная фича :)

Кому известная? Ко-ри-фе-ям ;)
А форум, как выясняется, для тех, кто просит перевод из англ. хэлпа...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Пора-пора-порадуемся iif'у глючному ;)))
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]