|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
Доброго времени суток! Задача: распределить 400 детей по группам, в каждой группе по 10 человек. Критерии распределения: возраст, курс, уровень, преподаватель. Все дети содержатся в таблице "клиенты" и в этой же таблице есть столбцы с критериями распределения. Вариант 1: сейчас делаю группировку через отчет по выбранным критериям (если все совпало), но не понимаю как сказать программе отсчитывать следующие 10 детей, когда группа наполнилась. Вариант 2: делать через VBA, не понимаю как запрограммировать. Господа Специалисты, помогите, пожалуйста, решить задачку :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2017, 16:37 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
quickstarсейчас делаю группировку через отчет по выбранным критериям (если все совпало), но не понимаю как сказать программе отсчитывать следующие 10 детей , когда группа наполнилась. получите всех по выбранным критериям в запросе. потом в VBA пройдитесь по всем строкам запроса присваивая нужную группу (т.е. группа набралась, берём следующую) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2017, 18:36 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
наутилус, Вы можете поправить меня? я не программист, учусь по-немногу и вот каким путем пошел - перебрать все возможные варианты, но понимаю,что их будет штук 70! Может есть более простой путь? Покажите, куском кода, пожалуйста. ОЧЕНЬ ХОЧУ НАУЧИТЬСЯ ЭТО ДЕЛАТЬ, Private Sub Кнопка5_Click()Select Case КодКлиента And ФИОребенка And Возраст And Курс And ГодПосещения And Пожелания And Пожелания1 And ПедагогFROM КлиентыDim i rs As RecordsetSet rs = CurrentDb.OpenRecordset("Клиенты")For i = 1 To 10WHERE ((Клиенты.Возраст) BETWEEN "3" and "3.5")WHERE ((Клиенты.Курс) = 1)WHERE ((Клиенты.ГодПосещения) = 1)WHERE ((Клиенты.Пожелания) <> 1)WHERE ((Клиенты.Пожелания1) <> 3)WHERE ((Клиенты.ГодПосещения) = 1)rs![Группа] = 1rs.UpdateIf i < 10 ThenNext iElseFor i = 1 To 10WHERE ((Клиенты.Возраст) BETWEEN "3.5" and "4")WHERE ((Клиенты.Курс) = 1)WHERE ((Клиенты.ГодПосещения) = 1)WHERE ((Клиенты.Пожелания) <> 1)WHERE ((Клиенты.Пожелания1) <> 3)WHERE ((Клиенты.ГодПосещения) = 1)rs![Группа] = 2rs.UpdateIf i < 10 ThenNext iElseEnd Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2017, 18:45 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2017, 18:46 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
quickstar, какая-то каша... О-о... Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2017, 19:19 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
quickstar, т.е. вы сначала в запросе вытаскиваете всех детей, которые подходят по параметрам группе. дальше проходитесь по запросу и присваиваете группу. по достижению 10 человек - номер группы увеличивается, считать начинаем с нуля. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2017, 19:20 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
наутилус, спасибо БОЛЬШОЕ! Еще вопрос: если я буду перебирать все возможные комбинации группы, то у меня получиться порядка 70 вариаций или более. Как можно разом задать параметры перебора, чтобы программно "перебрать" все возможные комбинации и распределить детей по группам? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2017, 19:41 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
параметры перебора: Возраст: от 3 до 8 лет с шагом в 0,5 года. т.е. объединяю детей от 3 до 3,5 лет, от 3,5 до 4 лет и т.д. Курс : три варианта курсов ГодПосещения: три вариант 1, 2 или 3 Пожелания: много вариантов. клиент указывает когда НЕ может посещать занятие, в остальное время можно назначать. Пожелания: второе пожелание. много вариантов. клиент указывает когда НЕ может посещать занятие, в остальное время можно назначать. Педагог: много вариантов, клиент зам заявляет у кого хочет заниматься. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2017, 19:46 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
quickstarКритерии распределения: возраст, курс, уровень, преподаватель. а что такое уровень ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2017, 21:28 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, здравствуйте! уровень - это другими словами год обучения 1-й 2-й или 3-й. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 04:55 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
quickstarДоброго времени суток! Задача: распределить 400 детей по группам, в каждой группе по 10 человек. Критерии распределения: возраст, курс, уровень, преподаватель. Все дети содержатся в таблице "клиенты" и в этой же таблице есть столбцы с критериями распределения. Вариант 1: сейчас делаю группировку через отчет по выбранным критериям (если все совпало), но не понимаю как сказать программе отсчитывать следующие 10 детей, когда группа наполнилась. Вариант 2: делать через VBA, не понимаю как запрограммировать. Господа Специалисты, помогите, пожалуйста, решить задачку :) 1. Разбиваете своих детей на "супер группы" по критериям, и не парясь за количество в супергруппе. 2. Нумеруете детей супергруппе от 0 до N. 3. Номера с одинаковым остатком от деления номера в супергруппе на 10 образуют группу. ЗЫ. VBA не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 08:06 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
aleks222, погуглил и не нашел ответ что такое "супер группы в access. Что Вы имели ввиду? И как в супер группе задать правила распределения? Буду очень признателен. если разок покажите примером, чтобы на научиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 09:01 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
quickstarпогуглил и не нашел ответ что такое "супер группы в access. Что Вы имели ввиду?Достаточно было просто подумать. Например, те же "уровни" - ведь два ребёнка с разными "уровнями" не могут попасть в одну группу ни при каких обстоятельствах, верно? Так вот - сначала всех детей следует разделить на "супергруппы" так, чтобы ЛЮБЫЕ ДВА ребёнка из одной супергруппы теоретически МОГЛИ обучаться в одной группе. И только потом выполнять деление на группы - отдельно в рамках каждой супергруппы. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 09:12 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
Akina, извиняюсь, но я не понимаю как это через код сделать не понимаю. Услышал от вас, что сначала делаем некое глобальное деление (КАК ЕГО СДЕЛАТЬ? через запрос/через VBA), а потом делим внутри супергруппы на группы, но критериев очень много (ШЕСТЬ со своими вариантами), не понимаю как их заложить в некий исполняемый код. С этом прошу помочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 09:59 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
quickstarкритериев очень много (ШЕСТЬ со своими вариантами)Вот и сведите их в таблицу (ИД супергруппы - диапазонный набор определяющих критериев). ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 10:10 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
quickstarВозраст: от 3 до 8 лет с шагом в 0,5 года. т.е. объединяю детей от 3 до 3,5 лет, от 3,5 до 4 лет и т.д. Курс : три варианта курсов ГодПосещения: три вариант 1, 2 или 3 3 курса, например рисование, лепка, танцы 3 года итого получается 9 типов групп,в среднем по 40 детей или 4 группы на тип возрастов намного больше(особенно если делить по полгода) поэтому --собрать заявления, в какой из 9 типов желает родитель поместить дитенка --получится потребность в группах определенного типа --определить преподавателей групп например на танцы1 надо 10 груп, а на лепку3 --только 1группа, в которую попадут дети и 5 лет и 8 танцы1 можно поделить более мелко, но шансов, что не будет групп разного возраста -- нет ведь надо учесть еще и наличие мальчиков, их всегда мало а что делать, если лепка1=6, лепка2=4,лепка3=2 итого 12 детей --сколько это групп -- одна или три или 2 по 6 детей ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 10:11 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, фактически 450 детей. и когда руками разносим по группам, родители начинают спорить "это хочу, это не хочу". Поэтому нужно программно задать распределение. В этом прошу помощи. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 15:09 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
quickstarкогда руками разносим по группам, родители начинают спорить "это хочу, это не хочу". Поэтому нужно программно задать распределениеТо есть Вы делите их по группам, а родители стоят за плечом и хотят-спорят? и успокоить их может только автоматизированное распределение? ну так втихую раскидайте, а потом на компе просто выведите готовый список, а им скажете, что, мол, это только что тулза вот насчитала... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 15:46 |
|
Распределение детей по группам
|
|||
---|---|---|---|
#18+
Akina, хороший вариант и в тоже время 450 детей раскидывать по 6 параметрам, да еще и в каждом параметре по несколько вариантов, ух... задачка на недельку. родители говорят когда точно они н могут водить детей и мы уже вставляем в пожелания. В коде заложу, проверку поиск вариантов кроме этих и великий Access сам все распределеит... кхм... ну всё! помечтал, а теперь КАК ЭТО СДЕЛАТЬ? наутилус, добрый человек, пол задачки помог решить. осталось понять как сюда вписать критерии отбора: Возраст: от 3 до 8 лет с шагом в 0,5 года. т.е. объединяю детей от 3 до 3,5 лет, от 3,5 до 4 лет и т.д. Курс : три варианта курсов ГодПосещения: три вариант 1, 2 или 3 Пожелания: много вариантов. клиент указывает когда НЕ может посещать занятие, в остальное время можно назначать. Пожелания: второе пожелание. много вариантов. клиент указывает когда НЕ может посещать занятие, в остальное время можно назначать. Педагог: много вариантов, клиент зам заявляет у кого хочет заниматься. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 16:00 |
|
|
start [/forum/topic.php?fid=45&msg=39498600&tid=1612214]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 138ms |
0 / 0 |