|
|
|
| Access 2003
Делаю отчет по платежам. Основание отчета - таблица "ДеньгиДвижение". Поля:
[КодДвиж] (счётчик),[ДатаДвиж], [Сумма].
Как сделать с нарастанием по строкам сумму долга в области данных - "допёр" сам. Сделал поле "Сумма с нарастанием" и в данных к ней указал -
=DSum("[Сумма]";"ДеньгиДвижение";"[КодДвиж]<=" & Nz([КодДвиж];0))
|
А проблема такая: Хочу выводить не весь отчет (с первого дня), а только с определенной даты. Сделал в заголовке группы поле. В нем в данных написал -
=Format(Nz(DSum("[Сумма]";"ДеньгиДвижение";"Val([ДатаДвижения])<" & Val([От какой даты считаем]));0);"Денежный").
|
Так вот - когда сделал - он (Аccess) у меня эту формулу "на Ура" считал (перед тем, правда, пришлось помучиться с переводом дат в Val([дата]) для вычисления разницы <>).
Отчет сохранил. На следующий день открываю - в области данных всё считает по-прежнему, а в заголовке вместо данных - "Ошибка".
Что не так? Почему сначала считал?
Какая ошибка - ума не дать. Даты он вычитывает - проверял. Val([Дата]) - тоже считает - тоже проверял. DSum() в области данных считает - значит с синтаксисом всё верно.
?!?
Подскажите - может сталкивался с проблемой такой кто.
Или, может, в принципе не тем путём иду??? | |
|
| |
|
|
|
|
...;"Val([ДатаДвижения])<" & Val([От какой даты считаем])...
|
Что такое [От какой даты считаем]? Если поле, то какого типа и где находится. Может ошибка из-за того, что там Null?
Попробуйте: Val(NZ([От какой даты считаем];1))
ЗЫ. Не вижу необходимости в Val. Должно работать и так:
...;"[ДатаДвижения]<" & CDate(NZ([От какой даты считаем];1))... | |
|
| |
|
|
|
| Анатолий, спасибо за быстрый отклик.
[От какой даты считаем] - это в условии отбора в запросе - источнике данных отчета (я когда решил не все данные выводить - источник данных переделал с таблицы на запрос, где в поле [ДатаДвижения] - условие >[От какой даты считаем]). Оно же и здесь в - формуле звучит.
Nz([];1) - ну, наверное да. Почему бы и нет.
У меня сначала просто [Откакой даты считаем] было - так ошибку выдавало - пока Val() не начал вычислять.
А вот насчет CDate() - это не подумал вообще.
Пойду пробовать как-то. | |
|
| |
|
|
|
| Нифига не понимаю.
Попробовал по-Вашему, Анатолий - (с CDate(), Nz()) - неизменно выдаёт ошибку.
Самое прикольное, что после того, как покопался с формулой - всё переделал как было на Val() - всё опять заработало. Всё считает.
Полтергейст какой-то.
Барабашки.
Надолго заработало - нет - не знаю. Может опять до следующего открытия.
Надо разбираться.
А может Access чего-нить "глючит"????? | |
|
| |
|
|
|
| Дело оказалось до безобразия простым.
Открывал отчет при разной раскладке клавиатуры (Английкая - Русская).
При вводе даты от которой считаю - соответственно получал или 10/09/09, или 10.09.09.
Так вот, при Английской версии (со слешем) - всё работает. При Русской - фигу.
Вышел из положения Format-ом:
...<" & Val(Nz(Format([От какой даты считаем];"dd""'/""mm""'/""yy");1))...
|
Во блин - надо отдыхать побольше.....
Анатолий - спасибо большущее - это с Вашей подачи стал вглядываться что из поля ввода параметра при открытии в формулу попадает... | |
|
| |
|
|