Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - Группировка по выражению

Ответить
Настройки темы
2010 - Группировка по выражению

Пользователь


Сообщения: 107
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте, нужна помощь по созданию отчёта в MS Access 2010. Идея очень простая есть таблица клиенты и покупки, и надо группировать клиентов по количеству покупок (группировка по выражению). Например, 5 покупок клиент 1., 5., 6., и.т.д. Как это сделать? Спасибо.

Отправлено: 23:31, 23-03-2012

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


veter48, суть, как я понимаю, сводится не к отчёту, а к построению правильного запроса.

На примере идущей в поставке базы данных «Борей» (я не знаю, включена ли она в поставку Office 2010, у меня — Office 2003; потому буду приводить скриншоты) требуемый запрос вида «Клиенты-Заказы» будет выглядеть примерно так:



что соответствует запросу:
Код: Выделить весь код
SELECT Клиенты.Название AS Клиент, Count(Заказы.КодЗаказа) AS [Количество заказов]
FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента = Заказы.КодКлиента
GROUP BY Клиенты.Название
ORDER BY Count(Заказы.КодЗаказа) DESC;
который приводит к следующим результатам:



Оно?

Отправлено: 00:14, 24-03-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 107
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ну как сделать запрос я знаю. Меня интересует именно отчет мне надо сделать такой отчет:
1 покупка
клиент
клиент
клиент
2 покупки
клиент
клиент
клиент

3 покупки
клиент
клиент
клиент
Надо группировать клиентов по Count()

Отправлено: 11:49, 24-03-2012 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата veter48:
Ну как сделать запрос я знаю. Меня интересует именно отчет мне надо сделать такой отчет: »
Отлично. Теперь Вам надо, воспользовавшись конструктором, построить отчёт на основе созданного запроса:



После того, как отчёт будет открыт в конструкторе отчётов, Вам нужно будет добавить группировку по полю «Количество заказов» (из предыдущего примера):



(как это сделать — для Вашей версии смотрите здесь: Общие сведения об отчетах - Access - Office.com: Добавление группировки, сортировки и итогов). Не забудьте в этом же окне указать создание в отчёте раздела заголовка для указанной группы (нижний красный овал на скриншоте).

После этого осталось лишь добавить в отчёт в нужные разделы потребные поля и добавить «шашечки» в виде оформления:



В итоге Вы должны получить примерно такой вид отчёта:



Естественно, можно не создавать отдельный запрос, а использовать его текст в свойстве «Источник записей» самого отчёта.

Отправлено: 12:57, 24-03-2012 | #4


Пользователь


Сообщения: 107
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата:
Естественно, можно не создавать отдельный запрос, а использовать его текст в свойстве «Источник записей» самого отчёта.
Именно так мне и надо, только как то не получается.

Отправлено: 18:29, 24-03-2012 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата veter48:
как то не получается. »
veter48, что именно не получается?

Отправлено: 18:44, 24-03-2012 | #6


Пользователь


Сообщения: 107
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо, с этим я разобрался. Теперь есть следующий вопрос. Я хочу, чтоб под каждым клиентом показывались даты покупок, я создал text box и в contorl source пишу запрос:
Код: Выделить весь код
= SELECT [Orders].[OrderDate] FROM [Orders] Where [Orders].[ClientID] = [ClientIDtxt]
([ClientIDtxt] text box где хранится ИД пользователя)
Но выкидывают ошибку.

Отправлено: 20:16, 24-03-2012 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата veter48:
Спасибо, с этим я разобрался. »
Отлично! Правда, Вы по-прежнему молчите, есть ли в Office 2010 такой пример, как база данных «Борей». Жду ответа.

Цитата veter48:
Я хочу, чтоб под каждым клиентом показывались даты покупок, я создал text box и в contorl source пишу запрос: »
Результат запроса не может быть отображён в данном элементе управления.

Вам потребуется создать Отчёт/Форму и вставить его в область данных текущего отчёта как элемент управления «Подчинённый отчёт/форма», связав его с данными текущего отчёта по нужному полю.


Итак, первым делом нам нужно изменить исходный запрос так, чтобы он включал поле будущей связи «КодКлиента» из таблицы «Клиенты»:
читать дальше »


(или соответствующим же образом добавить это поле в запрос, содержащийся в свойстве «Источник данных» самого отчёта).


Затем мы создаём подчинённый отчёт в текущем отчёте при помощи элемента управления «Подчинённый отчёт/форма», вставляя его в область данных:


Проходя по страницам Мастера, мы указываем следующее:


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


Не забываем задать в свойствах полученного элемента управления «Подчинённый отчёт» свойство «Расширение» равным «Да»:


После этого сохраняем и закрываем текущий отчёт, открываем подчинённый отчёт в Конструкторе отчётов и приводим его к следующему виду:

оставляя единственное поле «ДатаИсполнения» в области данных. Всё прочее удаляем, сохраняем и закрываем отчёт.

Готово!
Это сообщение посчитали полезным следующие участники:

Отправлено: 04:48, 25-03-2012 | #8


Модератор


Moderator


Сообщения: 16831
Благодарности: 3245

Профиль | Сайт | Отправить PM | Цитировать


Цитата Iska:
есть ли в Office 2010 такой пример, как база данных «Борей» »
Iska, есть, в "полноустановленной" версии. Но даже если нет - всегда можно скачать с сайта Office

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:59, 25-03-2012 | #9


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


okshef, спасибо, ясно.

Оно: Download: Access 2000 Tutorial: Northwind Traders Sample Database - Microsoft Download Center - Download Details и более свежий: Download: NorthWind and pubs Sample Databases for SQL Server 2000 - Microsoft Download Center - Download Details [по последней ссылке только базы под SQL]?

Последний раз редактировалось Iska, 25-03-2012 в 19:54. Причина: Зачёркнута последняя ссылка


Отправлено: 19:50, 25-03-2012 | #10



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - Группировка по выражению

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - группировка окон fngidiotdonk Microsoft Windows 7 0 18-01-2011 22:25
Интерфейс - Сбрасывается группировка в папках V1P3RS Microsoft Windows 7 5 15-09-2010 18:15
[решено] Вопрос по регулярному выражению в preg_split (PHP) ANR Вебмастеру 1 01-09-2010 14:58
Разное - Группировка строк в экселе pva Программирование и базы данных 6 16-04-2009 12:41
MySQL - индекс по выражению. 3kLiN Программирование и базы данных 10 23-12-2007 01:00




 
Переход