|
Подсчет уникальных значений в ленточной форме (Access)
|
|||
---|---|---|---|
#18+
Добрый день! Помогите, пожалуйста, решить задачку! Есть ленточные формы, в которые ежедневно заводятся данные для логистики - куда поедет водитель и что он должен отвезти-забрать. Сделал такую форму с двумя подчиненными ленточными, которую заполняют менеджеры: В каждой форме подсчитывается количество записей по полю со списком "Пункт назначения", результат выводится в поле "Всего записей" а суммарное количество этих пунктов по двум формам выводится в главной форме в поле "Всего пунктов". На данном примере программа насчитала 8 пунктов, все верно. Но у водителя фактически получается 6 поездок, т.к. два адреса во второй форме повторяются (эти пункты заводили либо разные менеджеры, либо было два задания на этом адресе). Я перелопатил кучу форумов, включаю англоязычные, в поисках решения этой задачи. Пробовал с DCount что-то мутить - не получается! В основном предлагается сделать два запроса - один с группировкой по полю "Пункт назначения", а второй - на основе первого запроса, с подсчетом уже сгруппированных "Пунктов назначения". Теория понятна... как сделать и куда повесить эти два запроса? Или можно объединить их в один? Помогите решить! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2017, 11:58 |
|
Подсчет уникальных значений в ленточной форме (Access)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2017, 13:45 |
|
Подсчет уникальных значений в ленточной форме (Access)
|
|||
---|---|---|---|
#18+
HandKotа как Вы получили значение в поле "всего записей" ? Тупо =Count([Пункт назначения]) Модератор: Тема перенесена из форума "Microsoft Office". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2017, 14:30 |
|
Подсчет уникальных значений в ленточной форме (Access)
|
|||
---|---|---|---|
#18+
В тырнете нашел пример, создал свой отчет, в котором указал, что данные нужно считать только за дату, указанную в главной форме: SELECT Count([Пункт назначения]) AS УникальныеПоездки FROM (SELECT [Пункт назначения] FROM [Логистика Клиенты Подробно] WHERE ([Логистика Клиенты Подробно].[Дата] = Forms![Логистика].[Дата]) GROUP BY [Логистика Клиенты Подробно].[Пункт назначения]) AS t2; Отчет исправно работает, запрашивая при запуске дату, или если форма открыта, то сразу открывается и считает за нужную дату уникальные записи (пока отрабатываю на первой подчиненной форме "Логистика Клиенты Подробно"). Сделал функцию func1 в модуле: Public Function func1() func1 = CurrentProject.Connection.Execute("SELECT Count([Пункт назначения]) AS УникальныеПоездки FROM (SELECT [Пункт назначения] FROM [Логистика Клиенты Подробно] WHERE ([Логистика Клиенты Подробно].[Дата] = Forms![Логистика].[Дата]) GROUP BY [Логистика Клиенты Подробно].[Пункт назначения]) AS t2;").Fields(0) End Function На поле в форме, где должны считаться уникальные значения, в данных указал = func1() При запуске формы возникает ошибка: "Отсутствует значение одного или нескольких требуемых параметров Это я так понимаю, что функции неоткуда взять дату, т.к. она выставляется в форме (текущая) естесственно, после ее открытия.) Куда копать дальше? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2017, 15:10 |
|
Подсчет уникальных значений в ленточной форме (Access)
|
|||
---|---|---|---|
#18+
Создаете запрос, который возвращает всго одно значение - Count(*) с группировкой по нужному полю , а в поле формы пишете функцию DLookup, которая читает это значение. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2017, 15:12 |
|
Подсчет уникальных значений в ленточной форме (Access)
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2017, 15:52 |
|
Подсчет уникальных значений в ленточной форме (Access)
|
|||
---|---|---|---|
#18+
Большое спасибо всем откликнувшимся! Сегодня не было возможности попробовать предложенные аарианты. Завтра обязательно отпишусь! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2017, 21:18 |
|
Подсчет уникальных значений в ленточной форме (Access)
|
|||
---|---|---|---|
#18+
merkushHandKotа как Вы получили значение в поле "всего записей" ? Тупо =Count([Пункт назначения]) Модератор: Тема перенесена из форума "Microsoft Office". Если есть ключевое поле, то можно так Код: sql 1.
но по мне быстрее и лучше будет сделать отдельный запрос с подсчетом уникальных значения и его привязать к полю Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2017, 07:49 |
|
Подсчет уникальных значений в ленточной форме (Access)
|
|||
---|---|---|---|
#18+
__Michelle, Все-таки оно заработало! Огромное вам спасибо за помощь! Воткнул ваш код, ругнулась при запуске формы: "Expected function or variable". Засунул запрос из вашего кода в тот вариант, который сам мастырил: Public Function func3() func3 = CurrentProject.Connection.Execute("SELECT Count(*) " & _ "FROM (SELECT DISTINCT [Пункт назначения] " & _ "FROM [Логистика Клиенты Подробно] " & _ IIf(IsNull(Forms![Логистика].[Дата]), "", "WHERE [Дата] = " & Format(Forms![Логистика].[Дата], "\#mm\/dd\/yyyy\#")) & ")""").Fields(0) End Function И ВСЁ ЗАРАБОТАЛО!!!! Почему ругалась в исходном виде так и не понял, но без вашей помощи еще долго бы бился. В VBA пока на уровне Шарикова). P.S. Какую бы литературу почитать именно про VBA? Посоветуйте!) В общем, мой вопрос решен! Всех со Старым Новым Годом! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2017, 13:57 |
|
Подсчет уникальных значений в ленточной форме (Access)
|
|||
---|---|---|---|
#18+
merkushКакую бы литературу почитать именно про VBA? У меня такая книга: В.И.Король. Visual Basic 6.0, Visual Basic for Applications 6.0. Язык программирования. Справочник с примерами. М.: Издательство КУДИЦ, 2000. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2017, 15:18 |
|
Подсчет уникальных значений в ленточной форме (Access)
|
|||
---|---|---|---|
#18+
Спасибо, посмотрю. Хотя это наверное для продвинутых пользователей уже. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2017, 16:25 |
|
Подсчет уникальных значений в ленточной форме (Access)
|
|||
---|---|---|---|
#18+
Не для пользователей, а для разработчиков. Хотя, уровни "пользования" условны. Разработчик БД сам при этом является пользователем ПК и ОС, и т. д. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2017, 16:46 |
|
|
start [/forum/topic.php?fid=45&msg=39384598&tid=1612812]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 159ms |
0 / 0 |