Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: 

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Хочу все же разобраться в IIF
 
 автор: Аленка   (14.10.2008 в 20:45)   личное сообщение
 
 

Вот из справки Аксесс:

Выражение Описание 
=IIf([Подтверждение] = "Да", "Заказ подтвержден", "Заказ не подтвержден") Отображается сообщение «Заказ подтвержден», если поле «Подтверждение» имеет значение «Да». В противном случае отображается сообщение «Заказ не подтвержден» 
=IIf(IsNull([Страна])," ", [Страна]) Отображается пустая строка, если поле «Страна» имеет значение Null (Null. Значение, которое можно ввести в поле или использовать в выражениях и запросах для указания отсутствующих или неизвестных данных. В Visual Basic ключевое слово Null указывает значение Null. Некоторые поля, такие как поля первичного ключа, не могут содержать значения Null.). В противном случае отображается значение поля «Страна». 
=IIf(IsNull([Область]),[Город]&" "& [Индекс], [Город]&" "&[Область]&" " &[Индекс]) Если поле «Область» имеет значение Null, отображаются значения полей «Город» и «Индекс». В противном случае отображаются значения полей «Город», «Область» и «Индекс». 
=IIf(IsNull([ДатаНазначения] - [ДатаИсполнения]), "Проверьте отсутствующую дату", [ДатаНазначения] - [ДатаИсполнения]) Отображается сообщение «Проверьте отсутствующую дату», если результат вычитания значения поля «ДатаИсполнения» из значения поля «ДатаНазначения» равен пустому значению (Null). В противном случае отображается разность значений полей «ДатаНазначения» и «ДатаИсполнения». 



Добавление выражения в запрос
В области переходов щелкните правой клавишей мыши запрос, который необходимо изменить, и выберите в контекстном меню команду Конструктор.
Выберите пустую ячейку в строке Поле бланка запроса и введите следующее выражение:
=IIf([Имя_поля]<=#01.04.2003#, [Имя_поля], "Дата после 1 Апреля 2003 г.")


Все выражения из этой справки не работают. Постоянно пишет: НЕСООТВЕТСТВИЕ ТИПОВ ДАННЫХ.
В чем дело?
Формат даты не тот?

У меня просьба к вам большая. Можете ли вы сделать примерчик, где эти выражения будут работать? Мне ну очень интересно. Я пока не разберусь, не успокоюсь.
Плиз, очень прошу.

  Ответить  
 
 автор: Гамлет   (14.10.2008 в 22:37)   личное сообщение
 
 

Попробуй везде "," заменить на ";"

  Ответить  
 
 автор: Аленка   (14.10.2008 в 22:54)   личное сообщение
 
 

Да это понятно. Аксесс и сам сообщает, где запятую нужно заменить на точку с запятой. В 2003 работает с запятой, в 2007 уже запятую не принимает и просит изменить на точку с запятой. Не в этом дело.
Дело в том, что все время пишет о несоответствии типов данных.

Неужели никто не может сделать это? Ребят.
Может это и просто. Но могли бы вы показать, что это реально работает? Я уже не верю просто. Это же не долго и не сложно Вам!
Спасибо

  Ответить  
 
 автор: Гамлет   (14.10.2008 в 23:05)   личное сообщение
7 Кб.
 
 

См.аттач

  Ответить  
 
 автор: Кабан   (15.10.2008 в 08:46)   личное сообщение
 
 

>>=IIf([Имя_поля]<=#01.04.2003#, [Имя_поля], "Дата после 1 Апреля 2003 г.")
дело в том, что Аксесс полюбасу пытается выполнить оба выражения.
т.е. и [Имя_поля] и "Дата после 1 Апреля 2003 г." независимо от исхода условия.

попробуй так

=IIf([Имя_поля]<=#01.04.2003#, cstr([Имя_поля]), "Дата после 1 Апреля 2003 г.") 


з.ы. но это же Болталка :( ну что вы прям... эх...

  Ответить  
 
 автор: Аленка   (16.10.2008 в 09:13)   личное сообщение
 
 

Я поняля все свои ошибки и почему у меня раньше не получалось.
Спасибо всем!!!!!!!
И поняла, почему у меня в прошлую субботу все получилось, а через неделю - нет.
Не туда пихала я эти выражения, вот и вся премудрость.
А вообще я считаю преступлением со стороны гейтса подсовывать в Аксесе 2007 справку от 97. Неужели нельзя ее поменять? Все и так понятно, в принципе. Но для такой большой компании несолидно просто. Можно подумать, сложно какого-нибудь одного сотрудника посадить, чтобы тот сделал нормальную справку.
Ну ладно, это я так, надо же на них поругаться

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList