Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2009, 11:13   #1
jiura
 
Регистрация: 12.02.2009
Сообщений: 5
По умолчанию Access – как сделать универсальную Группировку?

Доброе время суток!
Пишем программу на Access-е: два файла – оболочка и БД.
В оболочку загружается некоторая таблица – например с данными по персоналу из БД. Но персонала много и хочется чтобы пользователь мог группировать данных по 1-му или двум столбцам. Т.е. он вызывает менюшку: и в ней выбирает первый столбец группировки (любой столбец из таблицы персонал, например: по возрасту, полу, подразделению и.т.д.), а затем при необходимости второй. Вопрос: как это можно реализовать это на Access?

ВАЖНО! Многие путают группировку и фильтрацию…..а это не одно и тоже. Разницу покажу на примере:
Например группируем по столбцу «Пол» – тогда организуется иерархия с одним уровнем вложенности. На первом уровне: «Мужчины», «Женщины», На втором конкретные люди. Причем в итоговой строке (которая образуется после группировки), которая называется «Мужчины», например по столбцу «Численность», стоит суммарная численность мужчин, по столбцу «дата приема на работу», минимальная дата приема, по столбцу возраст – минимальный (или максимальный в зависимости от настройки) возраст и.т.д…..тоже самое в итоговой строке женщин.
При фильтрации же мы:
А. Получаем либо только мужчины, либо женщины либо все вместе (не структурировано)
Б. Фильтрация не дает итоги по каждому из столбцов!!!
jiura вне форума Ответить с цитированием
Старый 12.02.2009, 11:22   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Насколько я помню группировка происходит именно в том порядке в каком перечисленны в Group BY поля.
Попробуй менять местами поля в этом разделе
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.02.2009, 12:59   #3
VVlad69
Пользователь
 
Регистрация: 19.02.2009
Сообщений: 18
По умолчанию

Код:
Dim mdb As ADODB.Connection, rst As ADODB.Recordset
Set mdb = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open "SELECT Sum(b.Scost) as Scost,Sum(b.Sdox) as Sdox " _
& "From tbDisCBuy inner join " _
& "(select Mov_ID,[Ammount price]-[Ammount cost] as Sdox,[Ammount price] as Scost from Movies " _
& "union all " _
& "select Mov_ID,[Ammount price]-[Ammount cost] as Sdox,[Ammount price] as Scost from arx_Movies)b " _
& "on tbDisCBuy.MovDet_ID=b.Mov_ID where DisC_ID=" & TMP_DISCONT_ID, mdb

With rst
    Me.SumCost = .Fields("Scost")
    Me.SumDox = .Fields("Sdox")
End With
rst.Close
привел образец использования recordset в процедуре своей базы
главная прелесть в том что recordset обычная переменная типа string, с которой мона делать обычные текстовые операции
примеч. Me.SumCost - поле на форме, TMP_DISCONT_ID - переменная.
VVlad69 вне форума Ответить с цитированием
Старый 26.02.2009, 22:10   #4
Sparxy
Пользователь
 
Регистрация: 26.01.2009
Сообщений: 29
По умолчанию

зачем использовать ADODB если DAO включает в себя ADODB и проще в использовании.
Не стоит чинить то, что еще не сломалось...
Sparxy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста сделать поиск по базе данных в форме! Access 2003 LilijaSt Microsoft Office Access 19 25.12.2010 10:13
Как поставить оповещение в Access? xruss Microsoft Office Access 11 05.12.2008 10:27
Как сделать сортировку (поиск) Delphi+Access Toska БД в Delphi 6 28.08.2008 22:32
запрос в Access помогите сделать ijacknick Помощь студентам 7 25.04.2008 16:36
Как связать C++ и Access? demon-189 Общие вопросы C/C++ 1 23.04.2008 19:49