Проблема при фильтрации в форме

Александр
Дата: 25.11.2001 10:45:13
В Access 97 я строил обычные ленточные формы. Например, список накладных с суммами.
В примечании формы размещал окно, где записывал =sum([что-то]). Все прекрасно работало,
суммы вычислялись для любых фильтров.

При переносе базы на SQL-2000 и построении проекта Access эта конструкция перестала работать.
Т.е. при открытии формы сумма вычисляется, но при наложении фильтра обновления суммы не происходит,
как будто форма продолжает работать с базовым набором данных а не с его подмножеством.

Что это? Можно ли с этим бороться?

Буду благодарен за совет.
V. Motchulsky
Дата: 25.11.2001 12:38:42
У меня в примечании тоже раньше было sum([что-то]), но потом решил, что оно никчему - для этого есть отчеты.
Когда убрал это поле - никто из пользователей и не заметил... В общем при переходе на SQL пришлось немного поменять идеологию програмирования.
Александр
Дата: 25.11.2001 19:31:04
Конечно, это выход.
Второй способ - рассчитывать необходимые суммы самостоятельно.
Но, может быть, есть способ получать результат автоматически?
Например, можно применять серверный фильтр, но это получается долго.
Как бы делать это рациональней?

Отказываться от такого свойства экранных форм не хротелось бы, поскольку это
удобно при оперативной (относительно быстрой) работе.

У меня были мысли, что мой дистрибутив "битый" или поставился криво.
Интересно знать, как дела у широкой публики.
ДиД.
Дата: 26.11.2001 07:03:25
Sum будет работать только по столбцу в запросе. т.е. если у вас есть столбцы в запросе Цена, Количество и раньше писали Sum([Количество]*[Цена]), то в adp это не пройдет. Включите в запрос новый столбец Сумма:[Количество]*[Цена] и тогда Sum([Сумма]) сработает.
Александр
Дата: 26.11.2001 08:10:34
Да, это я понимаю и таким образом сумму я получаю. Отрабатывает и конструкция Count([Накладная ID]), позволяющая видеть в форме количество документов. Неприятность лежит чуть дальше. Если я применяю, например, <Фильтр по выделенному> из контекстного меню, то мои суммы не изменяются. Похоже, Access обрабатывает не Forms![...].RecordSetClone, а исходный View, предоставленный сервером. Как ему объяснить, что мне нужно обработать именно RecordSetClone, который я вижу на экране?

Ситуация неприятная, поскольку RecordSetClone будет себя вести так же и в других ситуациях, связанных с выполнением над ним "заэкранных" операций.

Да, а при подключении по ODBC все работает. Но это не ADP.

Может, я что-то не так делаю?
ДиД.
Дата: 26.11.2001 11:10:54
Можно создать собственную систему фильтров (поля со списками) или есть еще серверный фильтр в формах, только он немного своеобразный.
Александр
Дата: 26.11.2001 20:29:50
Спасибо за внимание к моей проблеме. Буду пробовать.
Какой-нибудь выход будет найден. Если для кого-либо эта тема представляет интерес, смогу написать, как это развивалось.
Чумаков А.
Дата: 14.08.2003 11:22:08
Чем в итоге закончилась борьба с фильтром по выделенному в ADP ?