powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Максимальная дата и не только........
12 сообщений из 12, страница 1 из 1
Максимальная дата и не только........
    #32353204
АндрейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Табличная подч.форма: 2 поля (условно): №этапа и дата.
Хочу в главной форме вывести в поле самую старшую дату из всего набора (если у всех этапов дата проставлена) или что-то вроде сообщения "Не всё" (если даты у каких-то этапов нет).
Каждый этап имеет характеристику "Важность", этапы с важностью = 0 или =1 не учитываются (на наличие даты наплевать).
Создаю в примечании подч.формы поле, данные которого равны:
IIf([Дата] Is Not Null And ([Важность]<>0 OR [Важность]<>1);Max([Дата]);"Не всё!")
В главной форме в поле указываю ссылку на ....(ну как сумму вычисляют)

Вроде всё работает, но если в подч.форме щёлкнуть на этапе без даты, но с учитываемой важностью, возникает сообщение "Не всё!". Стоит перейти на любую строку полностью соответствующую условию - всё нормально.
Что-то я либо упустил, либо перемудрил.
...
Рейтинг: 0 / 0
Максимальная дата и не только........
    #32353208
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
авторIIf([Дата] Is Not Null And ([Важность]<>0 OR [Важность]<>1);Max([Дата]);"Не всё!")
Такая формула берет значения полей [Дата] и [Важность] из текущей записи. А текущая запись, судя по описанию, ни на что влиять не должна.
...
Рейтинг: 0 / 0
Максимальная дата и не только........
    #32353482
АндрейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То-то и оно, что влияет.
Ситуация: Дата = Null и Важность = 3 не попадает "под условие" и, соответственно, выводится "Не все".
Т.е., в отличии от вычисления суммы, когда переход по записям действительно ни на что не влияет(там же нет условия), у меня всё портит ф-ция IIf.
А как обойти?
...
Рейтинг: 0 / 0
Максимальная дата и не только........
    #32353491
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
фигню ты написал (о чем тебе намекнули). И удивляешься, что "влияет". Тебе ж русским языком говорят - напиши то, на что влиять не будет (ибо в постановке задачи "влиять не должна", а отнюдь не в той лабуде, что ты тут привел). Тьфу на тебя. Нешто настолько трудно головой подумать. ТЫ по набору считать собрался? тогда какого хрена у тебя это все в текущей записи подчиненной формы располагается (и для нее одной и считается)? Или я чего-то в твоих описаловах не понимаю?
...
Рейтинг: 0 / 0
Максимальная дата и не только........
    #32353497
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А, уфидел:
Max вынеси наружу (IIf - внутре). Фсе.
...
Рейтинг: 0 / 0
Максимальная дата и не только........
    #32353518
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
т.е., с учетом всех пожеланий как-то так:

IIf(Max(IIf([Дата] Is Not Null And ([Важность]<>0 OR [Важность]<>1);[Дата];IIf([Важность]<>0 OR [Важность]<>1);{некое до хера};0))={некое до хера}; "не фсе";Max(IIf([Дата] Is Not Null And ([Важность]<>0 OR [Важность]<>1);[Дата];0))

а вапще максимум от "свитча" покороче путет (варианта-то три)
...
Рейтинг: 0 / 0
Максимальная дата и не только........
    #32353674
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, может быть я что-то не понимаю, но скажите, а зачем здесь
[Важность]<>0 OR [Важность]<>1 ????
Я бы еще понял, если бы было [Важность]<>0 AND [Важность]<>1. Ведь первый вариант вернет все записи, какая бы Важность там ни стояла. Или я все же чего-то не знаю или не понимаю????
...
Рейтинг: 0 / 0
Максимальная дата и не только........
    #32353785
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[Важность]<>0 OR [Важность]<>1 - это, как я понял, условие учета в подсчетах. Пусть {ВАЖНО}==[Важность]<>0 OR [Важность]<>1. тогда видимо хочется что-то наподобие (т.к. True<False):


=Switch(Min([Дата] Is Null And {ВАЖНО})=True;"Не все";True;Max(IIf({ВАЖНО};[Дата];0)))


действительно,в предлагаемом автором выражении, в условии переключения стоят значения ТУКУЩЕЙ записи. чтобы стояли результаты по всей выборке, надо взять какой-то агрегат:

IIf(Min([Дата] Is Null And ([Важность]<>0 OR [Важность]<>1))=0;Max([Дата]);"Не всё!")

но, к тому же, и вместо Max([Дата]), наскоко я понял автора, нужно брать не все, а только Max(IIf({ВАЖНО};[Дата];0)).
...
Рейтинг: 0 / 0
Максимальная дата и не только........
    #32353990
АндрейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то я не въезжаю:
[Важность]<>0 OR [Важность]<>1 - это, действительно, исключение из учёта записей, т.е. если [Важность] равна 0 или 1, то значение [Дата] этой записи не учитывается.
Min([Дата] Is Null And ([Важность]<>0 OR [Важность]<>1))=0 будет равняться 0, когда [Дата] будет равна Null при этом значение выражения в скобках будет не важно: 0 And <любое> =0
...
Рейтинг: 0 / 0
Максимальная дата и не только........
    #32354066
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То АндрейК:
Именно так. Если тебе надо исключить то, где Важность равна 0 или 1, то вместо OR надо юзать AND иначе условие всегда остается верным!
...
Рейтинг: 0 / 0
Максимальная дата и не только........
    #32354189
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторкогда [Дата] будет равна Null при этом значение выражения в скобках будет не важно: 0 And <любое> =0 с каких это пор True =0???

Я фуею, дорогая редакция!
авторкогда [Дата] будет равна Null,тогда ([Дата] Is Null) =-1, бубеныть!!!, а соответственно проверяем, а важно ли нам это.

Если же [Дата] будет равна (гы!) NOT Null, тогда ([Дата] Is Null) =0 , и нам не важно, "важно" ли нам это при вычислении факта "всякий ли датый, который пустой, есть не важный" .
...
Рейтинг: 0 / 0
Максимальная дата и не только........
    #32356150
АндрейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо!
Использовал оба совета - заменил в выражении "от фыыф" все Or на And.
Всё работает!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Максимальная дата и не только........
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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