powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / функция If в access?
65 сообщений из 65, показаны все 3 страниц
функция If в access?
    #32925281
olga_asg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста, можно ли в поле запроса а акцесс вставить формулу "If [поле 1]-[поле 2]>=0,[поле 1],[поле 2]. Или это только в exel возможно?
...
Рейтинг: 0 / 0
функция If в access?
    #32925284
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно, только функция называется IIF:
iif([поле 1]-[поле 2]>=0;[поле 1];[поле 2])
...
Рейтинг: 0 / 0
функция If в access?
    #32925314
olga_asg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexander!!! Что-то не получается. Я написала в поле запроса:
iif([DAILY SALES FROM TRUCKS.FANTA 0,25] - [RETURN F 24 pc/case] ) >=0,( [DAILY SALES FROM TRUCKS.FANTA 0,25] - [RETURN F 24 pc/case] ),[DAILY SALES FROM TRUCKS.FANTA 0,25]
Проверьте пожалуйста, вышло сообщение "wrong number of arguments".
...
Рейтинг: 0 / 0
функция If в access?
    #32925327
Как назывется таблица и какие названия у полей?
...
Рейтинг: 0 / 0
функция If в access?
    #32925334
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если точку с запятой ";" между аргументами ? Вместо обычной запятой.
...
Рейтинг: 0 / 0
функция If в access?
    #32925340
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это имена полей? Ну, слов нет ...
Кстати:
Соглашения об именах полей, элементов управления и объектов
В Microsoft Access действуют следующие ограничения на имена полей, элементов управления и объектов:

имя должно содержать не более 64 знаков;
имя может включать любую комбинацию букв, цифр, пробелов и специальных знаков за исключением точки (.), восклицательного знака (!), надстрочного знака (`) и квадратных скобок ([ ]);
Непонятно. Можно запрос целиком?
...
Рейтинг: 0 / 0
функция If в access?
    #32925344
olga_asg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблица называется "DAILY SALES FROM TRUCKS". Поле "FANTA 0,25", и "RETURN F 24 pc/case". В смысле продано 3, вернуто пустой тары -2. Если 3-2 >=0, то 3-2., если < 0, то 0 (один блок продан по полной стоимости, два - только стоимость напитка, тара на возврат).
...
Рейтинг: 0 / 0
функция If в access?
    #32925345
Я тоже сначала не поверил. Неужели это такие названия у полей.
...
Рейтинг: 0 / 0
функция If в access?
    #32925357
olga_asg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это не точка, это запятая в имени FANTA 0,25. Продукции то много видов, есть еще FANTA 0,5 ; FANTA 1,5; COLA, SPRITE, BONAQUA etc. мне нужны понятные имена. не больше же 64 знаков и точек и скобок нет. Мой запрос:
Продано: F 0,25 - 3 БЛОКА
клиент вернул - 2 ящика с бутылками , 1 пустой ящик
Нужно посчитать: сколько ушло по полной стоимости(напиток + бутылка), сколько только напиток, сколько принято ящиков, сколько бутылок.
В exele легко, а хочется в акцессе. Поэтому мне надо:
iif([DAILY SALES FROM TRUCKS.FANTA 0,25] - [RETURN F 24 pc/case] ) >=0,( [DAILY SALES FROM TRUCKS.FANTA 0,25] - [RETURN F 24 pc/case] ),[DAILY SALES FROM TRUCKS.FANTA 0,25]
...
Рейтинг: 0 / 0
функция If в access?
    #32925360
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а это что?
TRUCKS . FANTA
...
Рейтинг: 0 / 0
функция If в access?
    #32925368
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В конструкторе запросов МЕЖДУ агрументами iif надо ставить ТОЧКУ с ЗАПЯТОЙ.

То что за такие имена надо сразу убивать - само собой...
...
Рейтинг: 0 / 0
функция If в access?
    #32925370
Попробуй так:

Код: plaintext
1.
2.
IIf(([DAILY SALES FROM TRUCKS]![FANTA  0 , 25 ]-[DAILY SALES FROM TRUCKS]![RETURN F  24  pc/case])>= 0 ;
[DAILY SALES FROM TRUCKS]![FANTA  0 , 25 ]-[DAILY SALES FROM TRUCKS]![RETURN F  24  pc/case];
[DAILY SALES FROM TRUCKS]![FANTA  0 , 25 ])
...
Рейтинг: 0 / 0
функция If в access?
    #32925371
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olga_asgAlexander!!! Что-то не получается. Я написала в поле запроса:
iif([DAILY SALES FROM TRUCKS.FANTA 0,25] - [RETURN F 24 pc/case] ) >=0,( [DAILY SALES FROM TRUCKS.FANTA 0,25] - [RETURN F 24 pc/case] ),[DAILY SALES FROM TRUCKS.FANTA 0,25]
Проверьте пожалуйста, вышло сообщение "wrong number of arguments".
Пишем:
([DAILY SALES FROM TRUCKS]![FANTA 0,25] -[DAILY SALES FROM TRUCKS]![RETURN F 24 pc/case]) ...
...
Рейтинг: 0 / 0
функция If в access?
    #32925375
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
телепаты, однако :)
...
Рейтинг: 0 / 0
функция If в access?
    #32925405
olga_asg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну не получается. Программисту-любителю: точка с запятой между аргументами тоже не помогает, я попробовала. ну что сделать?
...
Рейтинг: 0 / 0
функция If в access?
    #32925407
Фотография Daf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовать изменить имена полей .... :)
...
Рейтинг: 0 / 0
функция If в access?
    #32925413
Фотография Daf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что Access говорит? Что значит не получается?
...
Рейтинг: 0 / 0
функция If в access?
    #32925417
Как так не получается?

Я у себя попробовал -- все работает!
...
Рейтинг: 0 / 0
функция If в access?
    #32925444
olga_asg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот еще раз попробовала, точно как Guest сказал: IIf(( [DAILY SALES FROM TRUCKS]![FANTA 0,25] -[DAILY SALES FROM TRUCKS]![RETURN F 24 pc/case] ) > =0; [DAILY SALES FROM TRUCKS]![FANTA 0,25] -[DAILY SALES FROM TRUCKS.RETURN F 24 pc/case];[DAILY SALES FROM TRUCKS]![FANTA 0,25]) Выходит сообщение: The expression you entered contains invalid syntax. You may entered a comma w/o a preceding value or identifier.
...
Рейтинг: 0 / 0
функция If в access?
    #32925460
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.Меня терзают смутные сомнения.... Дело случайно не в adp происходит?
2.Еще раз - можно текст запроса целиком?
...
Рейтинг: 0 / 0
функция If в access?
    #32925461
olga_asg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А там впереди еще нужно SELECT написать и в конце EXPRESSION? сейчас добавлю. это все пишется в expression builder-e?
...
Рейтинг: 0 / 0
функция If в access?
    #32925483
olga_asg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я вообще то хочу это в query акцесса сделать. я не знаю что такое adp. В query есть expression builder где можно поставить формулу,я там If не нашла. Может, я вообще все не так делаю. А как открыть приложенный файл, может, я скопирую оттуда?
...
Рейтинг: 0 / 0
функция If в access?
    #32925509
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тяжелый случай....в принципе, это делается так
...
Рейтинг: 0 / 0
функция If в access?
    #32925520
olga_asg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Guest! Пришли этот файл на мой е-email пожалуйста, я посмотрю как надо сделать. olgagalyasnaya@mail.ru или запрос нельзя послать?
...
Рейтинг: 0 / 0
функция If в access?
    #32925531
olga_asg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexander G! Спасибо! Спасибо! Скачался! правда, работает! попробую также нарисовать в своем запросе.
...
Рейтинг: 0 / 0
функция If в access?
    #32925533
Alexander G тебе уже выложил примерчик.

Если хочешь, могу и я выложить. :)
...
Рейтинг: 0 / 0
функция If в access?
    #32925569
olga_asg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
РАБОТАЕТ!! ДАЖЕ НЕ ВЕРИТСЯ! ALEXANDER YOU ARE GREAT! СПАСИБО ВСЕМ ОГРОМНОЕ!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
функция If в access?
    #35457198
P-VN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, а не подскажите как сделать в отчете так, чтобы в отчете паказывало так:- если поле равно дапустим 643 - Россия. Как так сделать?
...
Рейтинг: 0 / 0
функция If в access?
    #35457293
P-VN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправил
Народ, а не подскажите как сделать в отчете так, чтобы в отчете паказывало так:- если поле равно дапустим 643 то в поле вместо 643 ставится Россия. Как так сделать?

Тоесть если поле = 643 то в это поле = Россия.
...
Рейтинг: 0 / 0
функция If в access?
    #35457377
Karfaqen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если поле равно дапустим 643 - РоссияЕсли вариантов много, то лучше записать соответствие чисел и слов в отдельную таблицу и делать отчет на запросе с участием этой таблицы.
...
Рейтинг: 0 / 0
функция If в access?
    #35457669
P-VN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант только один. Ты не могбы написать пример как это сделать без запроса?
...
Рейтинг: 0 / 0
функция If в access?
    #35457684
P-VN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как будет выглядеть выражение?
...
Рейтинг: 0 / 0
функция If в access?
    #35457697
Karfaqen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так если вариант один, то зачем вам IF? Пишите постоянно "Россия" да и все.

Или все-таки не один? А в таком случае вы как минимум должны указать, что недо написать, если поле НЕ равно 643. Например - "Берег Слоновой Кости", или исходное значение этого поля, или пусто. И тогда в элемент управления в отчете (в его свойство "данные") пишете соотвественно выражение вида:
Код: plaintext
1.
2.
3.
4.
5.
=IIF([поле]= 643 ;"Россия";"Берег Слоновой Кости")
'или
=IIF([поле]= 643 ;"Россия";[поле])
'или
=IIF([поле]= 643 ;"Россия";"")
...
Рейтинг: 0 / 0
функция If в access?
    #35457740
P-VN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОГРОМНОЕ ТЕБЕ СПАСИБО!!!! ТЫ меня спас! :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
функция If в access?
    #39319780
drklimov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
приветствую!
подскажите пожалуйста если поле не цифровое, а текстовое?
пишу в процедуре обработке событий для поля2036 так:

iif([поле7576]=ЭКГ,1,0)

т.е. если в поле7576 имеется текст "ЭКГ", то в поле2036 ставится "1", если нет, то "0"
но что-то не выходит.
в каком месте прописывать процедуру обработки событий? до обновления, после обновления или куда еще??
спасибо!!
...
Рейтинг: 0 / 0
функция If в access?
    #39319816
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
iif([поле7576] Like "*ЭКГ*",1,0)
...
Рейтинг: 0 / 0
функция If в access?
    #39319831
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если IIF-это конструктор и должно быть так:
Код: vbnet
1.
iif([поле7576]="ЭКГ";1;0)
...
Рейтинг: 0 / 0
функция If в access?
    #39319836
или так
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
=-([поле7576] Like "*ЭКГ*")
...
Рейтинг: 0 / 0
функция If в access?
    #39319874
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите:если требуется полное соответствие условию зачем применять Like (и то и другое даст верный результат,но может есть подводные камни и я чего-то не знаю)
...
Рейтинг: 0 / 0
функция If в access?
    #39319881
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuесли требуется полное соответствие условию зачем применять Like
Если полное соответствие, то конечно незачем. Но из формулировки ТЗ этого явно не следует. Вполне можно понять, что "ЭКГ" всего лишь часть текста. Именно так я и понял :-)
drklimovесли в поле7576 имеется текст "ЭКГ"
...
Рейтинг: 0 / 0
функция If в access?
    #39319895
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mds_world,
Спасибо-я так и знал (если хотите расскажу на лестнице этот анекдот)
...
Рейтинг: 0 / 0
функция If в access?
    #39319957
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем меня спрашивать? Рассказывайте.
...
Рейтинг: 0 / 0
функция If в access?
    #39320070
drklimov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!! Текст "ЭКГ" - полное соответствие, не часть текста.
...
Рейтинг: 0 / 0
функция If в access?
    #39320082
drklimov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблемка все-таки:
пишу:

iif([Поле7579] = "*ЭКГ*", 1, 0)

выдает ошибку при переходе на другую строку:

expected: =
...
Рейтинг: 0 / 0
функция If в access?
    #39320107
nikolay_magagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Знак = только для цифр. Для всего остального like.
...
Рейтинг: 0 / 0
функция If в access?
    #39320114
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikolay_magaginЗнак = только для цифр. Для всего остального like.Это с чегойто?
...
Рейтинг: 0 / 0
функция If в access?
    #39320115
drklimov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все равно пишет:
Compile error
Expected: =

Хочет так:
iif([Поле7579]like"*ЭКГ*", 1, 0)=
но не работает.

расскажу смысл всего:
есть поле7579 с выпадающим списком строгих значений н-р: "ЭКГ", "ЭКГАД" и т.д.
есть поле8002, в котором прописываю процедуру обработки событий:
если ЭКГ, то ставится "1", если не равно ЭКГ, то ставится "0"

может ошибка в том где писать: до обновления, после обновления или какой другой вариант.
Спасибо заранее
...
Рейтинг: 0 / 0
функция If в access?
    #39320117
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikolay_magagin,

Текст тоже можно сравнивать, причем не только на =, но и на < или >.

Если надо сравнить текст на точное соответствие, уберите звездочки
...
Рейтинг: 0 / 0
функция If в access?
    #39320120
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drklimovExpected: =

а что за равно после iif ??? По идее

ПолеРезультата = iif(....)
...
Рейтинг: 0 / 0
функция If в access?
    #39320126
nikolay_magagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вместо запятой, всегда ;
...
Рейтинг: 0 / 0
функция If в access?
    #39320130
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что вы все носитесь с этими IIf-ами?
Показала ведь уже.
Мой излюбленный стиль.
Код: sql
1.
 =-([поле7576]="ЭКГ") 
...
Рейтинг: 0 / 0
функция If в access?
    #39320134
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikolay_magaginВместо запятой, всегда ;

Не всегда. Зависит от места (код VBA или запрос, например) и региональных настроек - должен ставиться национальный разделитель списков. Для России это, насколько помню, ";"
...
Рейтинг: 0 / 0
функция If в access?
    #39320141
drklimov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот скриншот. все-таки что-то не то...
...
Рейтинг: 0 / 0
функция If в access?
    #39320148
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drklimovвот скриншот. все-таки что-то не то...Да абсолютно все не то.
1. Результат выполнения должен чему-то присваиваться, а не висеть в воздухе.
2. Мое выражение предназначено для свойства Данные соответствующего поля.
...
Рейтинг: 0 / 0
функция If в access?
    #39320149
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drklimov,

Конечно будет ругаться. Куда значение iif() присваиваете? Оно не может висеть в воздухе.
...
Рейтинг: 0 / 0
функция If в access?
    #39320155
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drklimov,

кто бы мог подумать (кроме меня) что всё так запущено....
...
Рейтинг: 0 / 0
функция If в access?
    #39320233
drklimov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста как правильно сделать?
...
Рейтинг: 0 / 0
функция If в access?
    #39320240
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drklimov,

Код: vbnet
1.
[поле2036]=-([поле7576]="ЭКГ") 



Это именно в обработчике AfterUpdate
...
Рейтинг: 0 / 0
функция If в access?
    #39320245
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Какое поле должно стать 0 или 1?
2. Какое поле проверяется на наличие текста "ЭКГ"?

То есть, нужны их названия.
Из приведенного кода выяснить это не представляется возможным,
там фигурируют три разных имени - Поле7656, Поле7579, Поле7576.
...
Рейтинг: 0 / 0
функция If в access?
    #39320271
drklimov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

[поле2036] меняется на "0" или "1"
[поле7576] проверяется на наличие нужного текста, н-р "ЭКГ"
...
Рейтинг: 0 / 0
функция If в access?
    #39320283
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drklimov__Michelle,

[поле2036] меняется на "0" или "1"
[поле7576] проверяется на наличие нужного текста, н-р "ЭКГ"Можно обойтись вообще без кода.
Сделайте в форме поле [поле2036] вычисляемым, задав ему в конструкторе свойство Данные (ControlSource) так:
Код: sql
1.
=-([поле7576]="ЭКГ")

Даже Requery не потребуется для [поле2036] - ни в AfterUpdate [поле7576], ни в OnCurrent для формы.
Все само будет принимать нужное значение.
...
Рейтинг: 0 / 0
функция If в access?
    #39320318
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drklimov,
- в VBA нет функции IIF есть IF в конструкторе есть IIF нет IF разделители в конструкторе ";" в VBA "," и везде свой синтаксис:
- при знаке равенства *(звездочка) не используется
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
If поле7576="ЭКГ" then     'для VBA
поле2036=1
else
поле2036=0
end if
'или
поле2036=-(поле7576="ЭКГ")
поле2036:IIF(поле7576="ЭКГ";1;0)  'в конструкторе, поле2036 свободное(не имеющее данных)

А вообще прислушайтесь к __Michelle
...
Рейтинг: 0 / 0
функция If в access?
    #39320325
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku...в VBA нет функции IIF есть IF... )))
Вы решили подшутить над ТС?
Есть в VBA такая функция.
Вот работают они немного по-разному.
В функции для VBA вычисляются обе части независимо от результата проверки выражения.
А в функции для SQL вторая часть вычисляется только если выражение дает False.
...
Рейтинг: 0 / 0
функция If в access?
    #39320457
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle,
даже не могу объяснить почему смешал в кучу инструкцию и функцию-прошу пардону (наверно день какой-то не мой)
...
Рейтинг: 0 / 0
функция If в access?
    #39321845
drklimov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
!!! =-([поле7576]="ЭКГ") !!!
ПОЛУЧИЛОСЬ !
Спасибо!!!
...
Рейтинг: 0 / 0
65 сообщений из 65, показаны все 3 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / функция If в access?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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