Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Ошибка с функцией DCount  [new]
pan0691
Member

Откуда:
Сообщений: 9
Всем доброго времени! Вот всё бьюсь с отчётом, где функция DCount постоянно выдаёт ошибку. В чём дело, никак не могу понять. Менял и кавычки, ставил скобки, добавлял таблицу, но всегда - #ошибка!
Вот формула, которую вставляю в поле отчёта: =DCount("[КодПосетителя]";"Посетители";"[Пол] = 'мужской'")
Менял на: =DCount("[КодПосетителя]";"[Посетители]";"[Пол] = 'мужской'")
Менял на такую: =DCount("[Посетители]![КодПосетителя]";"Посетители";"[Посетители]![Пол] = 'мужской'")
удалял кавычки: =DCount("[Посетители]![КодПосетителя]";"Посетители";"[Посетители]![Пол] = мужской")
Всё одно - #ошибка. Что делать?
1 июн 18, 12:20    [21460698]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 18768
Что есть [Посетители] и что есть в нём [КодПосетителя]? Таблица и поле в ней?
1 июн 18, 12:30    [21460757]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4835
pan0691
Всем доброго времени! Вот всё бьюсь с отчётом, где функция DCount постоянно выдаёт ошибку. В чём дело, никак не могу понять. Менял и кавычки, ставил скобки, добавлял таблицу, но всегда - #ошибка!
Вот формула, которую вставляю в поле отчёта: =DCount("[КодПосетителя]";"Посетители";"[Пол] = 'мужской'")
Менял на: =DCount("[КодПосетителя]";"[Посетители]";"[Пол] = 'мужской'")
Менял на такую: =DCount("[Посетители]![КодПосетителя]";"Посетители";"[Посетители]![Пол] = 'мужской'")
удалял кавычки: =DCount("[Посетители]![КодПосетителя]";"Посетители";"[Посетители]![Пол] = мужской")
Всё одно - #ошибка. Что делать?


Попробуй вот здесь убрать квадратные скобки в первом и втором параметрах
 =DCount("[КодПосетителя]";"[Посетители]";"[Пол] = 'мужской'")
Вот так
 =DCount("КодПосетителя";"Посетители";"[Пол] = 'мужской'")
Или вот так
 =DCount("[КодПосетителя]";"Посетители";"[Пол] = 'мужской'")
Иногда квадратные скобки во вред.
1 июн 18, 13:12    [21460975]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5669
Akina
Что есть [Посетители] и что есть в нём [КодПосетителя]? Таблица и поле в ней?
а еще лучше покажте БД
1 июн 18, 13:17    [21461007]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 210
Попробуйте выполнить функцию в окне отладки или в процедуре:
пример
DCount("[КодПосетителя]","Посетители","[Пол] = 'мужской'")

У вас поле "Пол" в таблице точно текстовое?
В каком разделе отчета ваше поле?
1 июн 18, 13:54    [21461247]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
pan0691
Member

Откуда:
Сообщений: 9
Пол - логическое поле. Ставил и "0" для женского пола, и "-1" для мужского.

К сообщению приложен файл. Размер - 77Kb
5 июн 18, 22:38    [21471276]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5046
Кривцов Анатолий
Попробуйте выполнить функцию в окне отладки или в процедуре:
пример
DCount("[КодПосетителя]","Посетители","[Пол] = 'мужской'")

У вас поле "Пол" в таблице точно текстовое?
В каком разделе отчета ваше поле?


таки бинго . Пол - логическое поле?О-о
5 июн 18, 22:50    [21471290]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4835
Озверин
таки бинго . Пол - логическое поле?О-о


Таки замечание не в тему. Сейчас за бугром много разговоров про третий пол... А вдруг это и нас коснётся? И что тогда? Программу переделывать?
Видел тут недавно в сети фотки. Стоит ОНО с плакатом "Я не мальчик и не девочка. И где мне писать?"

P.S. У меня пол то же boolean
6 июн 18, 09:05    [21471628]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5046
Joss
Озверин
таки бинго . Пол - логическое поле?О-о


Таки замечание не в тему. Сейчас за бугром много разговоров про третий пол... А вдруг это и нас коснётся? И что тогда? Программу переделывать?
Видел тут недавно в сети фотки. Стоит ОНО с плакатом "Я не мальчик и не девочка. И где мне писать?"

P.S. У меня пол то же boolean


Разработчикам надо быть готовым ко всему. Слышал, что там насчитали уже 32 пола, так что boolean - не поможет.
6 июн 18, 09:12    [21471649]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
__Michelle
Member

Откуда:
Сообщений: 3019
Joss
... Программу переделывать....
P.S. У меня пол то же boolean
Так это же хорошо. Без работы не останемся.

У меня тоже boolean.
6 июн 18, 10:03    [21471777]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
Прогер_самоучка
Member

Откуда:
Сообщений: 67398
__Michelle
Так это же хорошо. Без работы не останемся.
6 июн 18, 10:06    [21471784]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
MrShin
Member

Откуда:
Сообщений: 1203
Joss
Сейчас за бугром много разговоров про третий пол...

Почему только разговоры? Давно уже в софте несколько полов используется, лично принимал участие в правке старого софта, где пол не ограничивается М-Ж :)
6 июн 18, 10:20    [21471806]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4835
MrShin
Joss
Сейчас за бугром много разговоров про третий пол...

Почему только разговоры? Давно уже в софте несколько полов используется, лично принимал участие в правке старого софта, где пол не ограничивается М-Ж :)
Сочувствую...
6 июн 18, 10:21    [21471811]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5669
pan0691
....Вот формула, которую вставляю в поле отчёта: =DCount("[КодПосетителя]";"Посетители";"[Пол] = 'мужской'").....
....а в поле [пол] только 0 или 1 или какая другая цифра по числу полов
6 июн 18, 12:00    [21472159]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
pan0691
Member

Откуда:
Сообщений: 9
Благодарю за подсказку! Полов будет только "мужской" и женский". Посетители - это пенсионеры, которым пол менять уже поздно: с чем родились, с тем и пришли. Ну, а если о функции, то исправил: DCount("[КодПосетителя]";"Посетители";"[Пол] = 'мужской'").
Теперь другой вопрос: как подсчитать среднее значение возраста для "Посетителей" "Мужского" пола и "женского" по отдельности?
В функции: Round(DAvg("[Возраст]";"зПосетители")) как только добавляю фильтр по полу: ..."[Пол] = 'мужской'" выдаётся ОШИБКА.
Подскажите, пожалуйста!
8 июн 18, 15:19    [21479473]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 210
pan0691
В 1-м посте:
Вот формула, которую вставляю в поле отчёта: =DCount("[КодПосетителя]";"Посетители";"[Пол] = 'мужской'")
Сейчас:
исправил: DCount("[КодПосетителя]";"Посетители";"[Пол] = 'мужской'")
И заработало? Что же вы исправили? Отличий не вижу, если не считать "=".
Вы не ответили - у вас точно поле текстовое с вариантами "мужской" и "женский"?
Или оно числовое/логическое с подстановкой значения из списка вариантов, где,например, при выборе "мужской" в поле пишется 1?
8 июн 18, 16:07    [21479609]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
pan0691
Member

Откуда:
Сообщений: 9
Сам не понял, в чём отличие, а в поле "мужской" записано "-1".
Сам не могу понять, в чём разница!
8 июн 18, 17:10    [21479781]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5669
pan0691
Сам не понял, в чём отличие, а в поле "мужской" записано "-1".
А что есть такое поле? Да покажите уже БД-надоело блуждать в 3 соснах (ванговать)
8 июн 18, 18:47    [21479992]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5669
может сделаете так и посчитаете
DCount("*";"[Посетители]";"[Пол] = 'М'")
DCount("*";"[Посетители]";"[Пол] = 'Ж'")

К сообщению приложен файл (tmp.rar - 13Kb) cкачать
8 июн 18, 19:16    [21480029]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
pan0691
Member

Откуда:
Сообщений: 9
Благодарю! Подсчитал. Теперь другая проблема с вычислением среднего возраста.
8 июн 18, 21:06    [21480163]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
pan0691
Member

Откуда:
Сообщений: 9
Причём тут база? Или я что-то не понимаю?!
Есть поля таблицы ПОСЕТИТЕЛИ, в которой необходимые данные о посетителях филиала):
КодПосетителя
ДатаРождения
Пол
и.т.д.

Есть запрос: зПосетители (включены все поля)

Есть форма ввода данных.

Создаю отчёт, в котором нужно вывести информацию (основные сведения) о посетителях:
Количество мужчин
Количество женщин
Средний возраст мужчин, посещающих филиал
Средний возраст женщин, посещающих филиал
Средний возраст посетителей филиала.

Отчёт создал в виде таблицы.

Пытаюсь рассчитать данные.

К сожалению, особых навыков и умений в работе с ACCESS не имею (уровень любителя, которому лень ежемесячно составлять отчёт и подсчитывать вручную, но есть желание создать базу).

Заранее благодарен!

К сообщению приложен файл. Размер - 128Kb
8 июн 18, 21:07    [21480165]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5669
pan0691,
я торопился и в списке "М" набрана по английски (прописная М на русской и английской раскладках выглядят одинаково, исправьте). Возраст считайте так (в примере добавьте в таблицу поле [возраст]-числового типа):
SELECT tbl.ctl1, Avg(tbl.возраст) AS [Avg-возраст]
FROM tbl
GROUP BY tbl.ctl1;
8 июн 18, 23:38    [21480569]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 210
Ну, наконец-то. Итак, поле логическое с подстановкой. Вот еще один пример того, что подстановки в таблицах - зло и часто сбивает с толку будущих профи.
Для логического поля условие должно быть для мужчин "[Пол] = True" или "[Пол] <> 0", для женщин - наоборот (False или =0) .


pan0691
Создаю отчёт, в котором нужно вывести информацию (основные сведения) о посетителях:
Количество мужчин
Количество женщин
Средний возраст мужчин, посещающих филиал
Средний возраст женщин, посещающих филиал
Средний возраст посетителей филиала.
Отчет по одному филиалу или по всем с группировкой по каждому? Е сли первое, то "Количество мужчин" и "Количество женщин" во всех филиалах или "посещающих филиал", по которому отчет? Это я к тому, что если перечисленное, это все, что нужно получить в отчете, то зачем вам DCount, DAvg? В разделах заголовок или примечание группы или отчета можно получить нужный результат функциями Sum, Count, Avg. Например кол-во мужчин: =Sum(IIF([Пол] = True;1;0))

И еще. У вас упоминается поле "Возраст" - видимо вычисляемое в запросе кол-во лет. Интересно, какая у вас формула? Если функция DatePart, то учтите, что между 31.12.17 и 01.01.18 - 1 год.
11 июн 18, 09:56    [21484337]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с функцией DCount  [new]
pan0691
Member

Откуда:
Сообщений: 9
Благодарю всех, кто помогал в создании вычислений. Правда говорят, "пробуй, ошибайся и найдёшь". Всё получилось. Сделал отчёт, теперь можно считать показатели, которые требуются.
18 июл 18, 23:07    [21582900]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить