powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с DCount
6 сообщений из 6, страница 1 из 1
Проблема с DCount
    #32359134
Rimbombo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написал запрос:

Код: plaintext
1.
2.
3.
SELECT Count( 1 ) AS Cnt, Простынь1.Выехал, Простынь1.Счетчики
FROM Простынь1
WHERE (((Простынь1.ОбследПроведено)=- 1 ))
GROUP BY Простынь1.Выехал, Простынь1.Счетчики;




С помощью которого подсчитывается количество проведенных обследований. Часть обследований проходят по категории "Счетчики", т.е это такие специальные обследования: сверка показаний счетчиков. Остальные обследования соот. обычные. Часть абонентов по результатам обследований признаны выбывшими (т.е есть выбывшие и вобследованиях-счетчиках и в обычных). Создал на основе этого запроса отчет, где добавил с пом. мастера уровень группировки по выехавшим и поставил итоговые вычисления. Все отлично считатся: общее количество обследований, общие количества выбывших и тех кто на месте, и сколько обследований-счетчиков и обычных, как среди выехавших, так и среди тех кто на месте.

Вид:
Выехал Обследовано Счетчики
------------------------------------
Да 1 \/
16 []
Всего выехавших 17
------------------------------------
Нет 8 \/
30 []
Всего на месте 38
------------------------------------
ИТОГО обследований 55

Необходимо также просчитать общее количество обследований по счетчикам, т.е поле где бы складывалось вот в данном случае 1+8 и получалось бы 9 и также 16+30 с соот. 46. Добавлять еще один уровень группировки по счетчикам при создании отчета нельзя, так. как отчет преобретает плохой для понимания вид. Эта задача прекрасно решается с помошью:
Код: plaintext
1.
=DCount( "*" ; "[Простынь1]" ; "[Счетчики]" ) 
=DCount( "*" ; "[Простынь1]" ; "Not [Счетчики]" )


Маленькая проблема, это все не работает на периоде . В смысле, конечно, не работают на периоде только 2 последних выражения - они обращаются напрямую к таблице Простынь1 и считают по ВСЕМ записям, а период описан в ЗАПРОСЕ и ессно он по боку этим последним 2-м выражениям. Они подсчитывает по всем записям, даже когда задан период. Подскажите, пожалуйста в каком месте в этих полях поставить Between [Введите начальную дату] And [Введите конечную дату]
...
Рейтинг: 0 / 0
Проблема с DCount
    #32359389
Фотография Serafim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы сделайте по простому - получите в переменные через InputBox "начальная_дата" And "конечная_дата

=DCount("*";"[Простынь1]";"[Счетчики] = -1 AND myData Between " & начальная_дата & " And " конечная_дата)

далее - по аналогии

Удачи! - и заглядывайте в хелп...
...
Рейтинг: 0 / 0
Проблема с DCount
    #32359410
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понял постановку задачи.

А что мешает прямо в отчете сделать поле (на соответствующем уровне группировки) с накоплением и выводить результат?


Пример:
Поля в разделе данные - код, сумма, признак
Поля в разделе группа по признаку - sum(сумма).
Необходимо сделать суммирующее поле в зависимости от значения поля признак.

Делаем невидимое поле [поле1] в разделе данные в источнике которого
=IIF(признак = условие; сумма; 0) поле с накоплением.
В разделе группа по признаку делаем поле с источником =report![поле1]
...
Рейтинг: 0 / 0
Проблема с DCount
    #32359413
Фотография Serafim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ошибочку проглядел, извините

=DCount("*";"[Простынь1]";"[Счетчики] = -1 AND myData Between " & начальная_дата & " And " & конечная_дата)
...
Рейтинг: 0 / 0
Проблема с DCount
    #32359575
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Тут есть одна проблема (из-за которой я не решился ответить на этот вопрос вчера). Функция InputBox может ввести дату очень приблизительно, а именно в том формате, как напишет юзер. И тогда не будет никакого способа распознать программно, какую дату (2 января или 1 февраля) он имел в виду.

В качестве решения (не самого хорошего, но лучшее в голову не приходит) можно вводить по отдельности день, месяц и год и потом запускать DateSerial. Или писать на экране формат и просить вводить именно в нем. Или вводить не через InputBox, а через специально созданную форму с 3 полями для дня, месяца и года.
...
Рейтинг: 0 / 0
Проблема с DCount
    #32359757
Фотография Serafim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть еще вариант - сделать свою формочку ввода дат с календарем, пререключалкой на 2 значения (startdate, enddate), и таскать с собой это по всем проектам... (что и было сделано много лет назад)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с DCount
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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