Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: номер курса
 
 автор: Григорий   (24.12.2009 в 19:45)   личное сообщение
 
 

таблица: Ключь; № группы; дата набора.
Как создать запрос, что бы в каждый момент времени знать какие группы на каком курсе учатся?
Пробовал

курс:Year([текущая дата])-Year([дата набора])
получил курс 0
Пробовал курс:

Year([текущая дата])-Year([дата набора])+1 
получил курс 6

Ещё я не могу вспомнить арифметику. Как составить запрос на извлечение записей с датой, отстоящей от текущей в прошлое не менее чем на Х месяцев? (прошлый год, позапрошлый год и так далее)

  Ответить  
 
 автор: Denis V.   (24.12.2009 в 23:44)   личное сообщение
 
 

Для расчёта интервалов между датами есть функция DateDiff.

  Ответить  
 
 автор: kot_k_k   (25.12.2009 в 09:16)   личное сообщение
 
 

исчо функция
DateSerial(year, month, day) и TimeSerial(hour, minute, second)

  Ответить  
 
 автор: Grigoriu   (25.12.2009 в 10:37)   личное сообщение
 
 

Добрый день, не побоюсь этого слова, коллега ! Похоже, что мы работаем над схожими проблемами, я тоже пытаюсь создать базу студентов. До работы с датами еще не дошел, но, предчувствую, засады там те еще. Полагаю, надо как-то поддерживать связь, делиться идеями ? Взаимовыгодно сотрудничать. Если Вам интересно, я могу прикрепить свой файл, но, конечно, все еще далеко до совершенства. С Новым Годом, творческих успехов !

  Ответить  
 
 автор: Lukas   (25.12.2009 в 18:31)   личное сообщение
34 Кб.
 
 


...засады там те еще...


Мои соображения:
Сама по себе задача описания учебного процесса учебного заведения далеко не "детская", и
требует не только отменного знания предметной области, но и хорошей подготовки в
проектировании БД.
Поскольку ни тем, ни другим похвастаться не могу, попытался "выдавить" из себя что-нибудь
минимально необходимое схематичное, с многочисленными упрощениями.
Разбил задачу упрощенно на три:
1. Описание "административной" структуры УЗ
2. Описание структуры групп на учебный год
3. Описание перемещений студентов по группам
Пока даже без учета административного и преподавательского состава УЗ и прочего, а мосх уже кипит.
Получилось как-то так:

  Ответить  
 
 автор: Григорий   (25.12.2009 в 20:00)   личное сообщение
 
 

Спасибо. Мне (слава богу) не ставилась задача описания учебного процесса. Нужно только расчитать номер курса. Закавыка в том, что переход с курса на курс осуществляется в августе, а календарный год начинается в январе.
Может стоит сделать условие на значение текущей даты: с августа по декабрь курс=текущая дата - дата набора, а в остальные дни курс=текущая дата - дата набора+1?

  Ответить  
 
 автор: Lukas   (25.12.2009 в 20:13)   личное сообщение
 
 


...переход с курса на курс осуществляется в августе...


А вот и нет.
Перевод студента с курса на курс осуществляется приказом по учебному заведению.
При этом студент может (и не обязательно в августе):
1. быть отчислен
2. взять академический отпуск
3. перейти на другой факультет в группу ниже
4. быть зачислен из другого учебного заведения
5. перейти на другую форму обучения (дневная/вечерняя/заочная)
6. ... и прочая и прочая ...

Такие вот они, студенты.

Это я к тому, что курс не должен быть расчетной величиной.

  Ответить  
 
 автор: Григорий   (25.12.2009 в 20:52)   личное сообщение
 
 

В моей задаче речь не касается студентов. Интерес представляют только группы целиком. Предполагается, что роспуска и доборов групп не будет - так сказал заказчик. Каждый год создаётся разное количество групп, и группы, которые в ноябре 2001 были на 1 курсе, только в августе 2002 перейдут на 2 курс.

Если номер курса не делать расчётной величиной, то как создавать запросы на прошедшее время?

  Ответить  
 
 автор: Lukas   (25.12.2009 в 21:02)   личное сообщение
 
 

Я предлагаю на каждый учебный год формировать группы (см. скрин), где и указывать курс группы.
В вашем случае, к примеру, если вы будете "поднимать" историю с расчетным номером курса по дате, то лет через 10 у Вас может оказаться, что студенты оказывается уже на 10 курсе, при 6 летнем (к примеру) сроке обучения.

  Ответить  
 
 автор: Explorer   (25.12.2009 в 21:07)   личное сообщение
 
 


Я предлагаю на каждый учебный год формировать группы (см. скрин), где и указывать курс группы



+1 но скрин оторвался

  Ответить  
 
 автор: Lukas   (25.12.2009 в 21:14)   личное сообщение
 
 

Я про этот скрин:
http://www.hiprog.com/forum/files/6422-20091225183138.GIF

  Ответить  
 
 автор: Григорий   (25.12.2009 в 22:28)   личное сообщение
 
 

То есть каждый год стирать и заново записывать таблицу группы. Тогда как, опять же, смотреть прошлое?

Можно в запросе поставить ограничение на значение номера курса не более 6.

  Ответить  
 
 автор: Explorer   (25.12.2009 в 22:44)   личное сообщение
 
 

понятие "группа" существует в двух ипостасях

группа как организационная единица (может содержать NULL студентов)
или, например, как группа персон (студентов) посещающих занятия.

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

  Ответить  
 
 автор: Григорий   (25.12.2009 в 22:47)   личное сообщение
 
 

В данном случае группа - организационная единица

  Ответить  
 
 автор: Explorer   (25.12.2009 в 23:00)   личное сообщение
 
 

tblGroups - научные группы

GroupID - код группы (счетчик)
GroupCode - условный код группы
GroupName - название группы
GroupDescription - описание группы

tblStudents - студенты ВУЗа

StudentID - идентификатор студента
PersonID - идентификатор персоны
EnrolmentDate - дата поступления в ВУЗ
DischargeDate - дата отчисления из ВУЗа

tblAssignments набор студентов в группы

AssignmentID - код назначения в группу
StudentID - код студента
GroupID - код группы
AssignmentDate - дата зачисления
DismissalDate - дата исключения

это не самый развернутый вариант - просто на скорую руку

  Ответить  
 
 автор: Explorer   (25.12.2009 в 22:46)   личное сообщение
 
 

номер курса это не число а стринг, вообще то

  Ответить  
 
 автор: Григорий   (25.12.2009 в 22:50)   личное сообщение
 
 

??? Как так? В вузе раз в году набирается один первый курс, а остальные переводятся на более старший. Номер курса, на котором сформированна научная группа определяется текущей датой и датой (точнее годом) набора.

  Ответить  
 
 автор: Explorer   (25.12.2009 в 23:02)   личное сообщение
 
 


??? Как так?



а вот так :)))

в следующий раз если захочешь проверить число или стринг - попробуй просто сложить значения.

если к первому курсу прибавить второй курс - получится третий? нет? значит стринг.

  Ответить  
 
 автор: Lukas   (25.12.2009 в 23:03)   личное сообщение
 
 


...каждый год стирать и заново записывать...


А просто добавить группы нельзя?
Что бы не "стирать" историю.

  Ответить  
 
 автор: Explorer   (25.12.2009 в 21:06)   личное сообщение
 
 


Предполагается, что роспуска и доборов групп не будет - так сказал заказчик



в смысле - так написано в методичке или препод на консультации посоветовал?

  Ответить  
 
 автор: Григорий   (25.12.2009 в 22:24)   личное сообщение
 
 

Есть курс студентов. В год поступления среди них выбирают умных и образуют несколько научных групп. Каждая группа прикрепляется к какому либо начальнику кафедры, который ставит коньяк начальникам исследовательских лабораторий, что бы этих оболтусов записали соисполнителями НИР. Если в процессе обучения выявляются ещё один умный студент, его зачисляют в уже существующую группу того курса, на котором он учиться.

  Ответить  
 
 автор: Denis V.   (25.12.2009 в 22:30)   личное сообщение
 
 

Вы хотели сказать:


"...на котором он утиться."


"..будет в дальнейшем." А то мысль, кажется не законченной.
Хотя не понятно, что вообще у Вас там со студентами просходит. То они студенты, то они научные сотрудники, то, если самые-самые умные, опять студенты, да ещё и на второй год оставленные...

  Ответить  
 
 автор: Григорий   (25.12.2009 в 22:40)   личное сообщение
 
 

Научные группы - формирования, не имеющие никакого отношения к учебному процессу. Научная группа образуется при поступлении студентов на первый курс (наборе курса) и распускается при выпуске.

  Ответить  
 
 автор: Lukas   (25.12.2009 в 22:55)   личное сообщение
 
 

Может описать табличку история группы?:
КодИстории
КодГруппы
ДатаНачалаИнтервала
ДатаОкончанияИнтервала
Курс

И раз в год ее актуализировать (добавлять интервалы).
(Или сразу заполнить на весь период обучения?)

Тогда на любую дату можно определить:
валидность группы
курс группы

  Ответить  
 
 автор: Explorer   (25.12.2009 в 23:23)   личное сообщение
 
 


Может описать табличку история группы?:



а какая может быть история группы?
там только дата образования и дата расформирования - все.

после расформирования формируется новая группа
в принципе время существования группы не ограничено посещеним группы студентами. Студенты сами по себе группа сама по себе - группе-то что хоть сто лет существуй

остальное это история записи студетов в группы

  Ответить  
 
 автор: Lukas   (25.12.2009 в 23:31)   личное сообщение
 
 

Несомненно так.
Но, коль, в данном случае, на студентов "на@рать", их в расчет не берут, то мне показался этот
вариант достаточным для определения курса групп(ы) на даты.

  Ответить  
 
 автор: Explorer   (25.12.2009 в 23:34)   личное сообщение
 
 


Но, коль, в данном случае, на студентов



тогда нужно каждый год новый ВУЗ создавать, а старый стирать

  Ответить  
 
 автор: Lukas   (25.12.2009 в 23:37)   личное сообщение
 
 

Увы, и такое в современной России не редкость.

  Ответить  
 
 автор: Гоблин   (26.12.2009 в 10:43)   личное сообщение
17 Кб.
 
 

Вмешаюсь ни с децил.
Допустим есть таблица учета студентов. (2-3 подтаблицы не важно) Попробуй сделать так: На экране только текущие действующие данные. При их изменении ( в строке разумеется) старые данные автоматически вносятся в таблицу "Архив" вот и все. Вернее там 2 запроса будет. Один - отвечает за то, что уже есть в архиве по контрольным полям, а другой на добавление - в котором табла и запрос контролирующий. Пример
Иванов Иван Иванович паспорт 11 11 111111 изменил паспорт. Стираем 11 11 111111 и ставим новый 22 22 222222 по нажатии Enter или по закрытии формы или на кнопку как угодно срабатывает запрос и добавляет этого иванова с новым паспортом. Если он снова изменится - добавит новый. Добавляет только один раз соответственно.

  Ответить  
 
 автор: Grigoriu   (26.12.2009 в 12:42)   личное сообщение
37 Кб.
 
 

Точно, задача не из легких...Самая главная проблема, как мне представляется - это старые записи, т.е. отчисленные студенты. Здесь надо массово отчислять группы, вернее, курсы, по окончанию их обучения. Такая операция возможна запросом на изменение и выполнятся по определенному условию и, конечно же, массово, и , конечно же, страшно...Вот моя схема, где Payment - сведения об оплате(контрактники и гос.заказ - главный вопрос в вузе) Privileg - льготы (надо постоянно контролировать контингент таких студентов) ChangName сюда я пишу девичьи фамилии (универ небольшой, а замуж девки скачут, заявления на изменения фамилии каждую неделю несут пачками ))) Vacation - академотпуск (этих надо помнить обязательно, чтоб не потерялись) SpecBac - специальности бакалавра и лицензия SpecMag - специальности магистра и т.д и т.п...Коллеги, призываю к сотрудничеству !!! Одиночке - энтузиасту, у которого появилось немного свободного времени это не по силам ! Всех с Новым Годом !

  Ответить  
 
 автор: Гоблин   (26.12.2009 в 15:07)   личное сообщение
 
 

Блин. Все на английском и не все поля таблиц видны.
А собственно в чем проблема? Упрости все раза в два и дело в шляпе. Тут подход конкретный нужен. Длительное сотрудничество с пацанами необходимо. А если все это в сеть надо, то уууу! Проще баблосы отслюнявить, заказ накропалить, техзадачу сваганить. Амбец полный.

  Ответить  
 
 автор: Григорий   (26.12.2009 в 16:52)   личное сообщение
9 Кб.
 
 

Вот что получилось. Нет ли где ошибки?

  Ответить  
 
 автор: Denis V.   (26.12.2009 в 17:20)   личное сообщение
 
 

Grigoriu, зачем Вам справочник мужских и женских имён? И зачем при этом нужен ещё и справочник полов? По-моему, полов всего два у людей. Или Вы на будущее планируете, что появятся официально ещё несколько?..

  Ответить  
 
 автор: Гоблин   (26.12.2009 в 17:44)   личное сообщение
 
 

Че-то я в Григориях запутался совсем. Кто что спрашивает? Что происходит. Кто чего хочет. Давайте по порядку.

  Ответить  
 
 автор: Гоблин   (26.12.2009 в 17:56)   личное сообщение
 
 

Поглядел схему внимательнее. На беглый взбляд напрашивается вывод.
По схеме:
Таблица sex точно лишняя. Это встроенная в таблу(форму) инфа для поля со списком
Имя - следует вводить 1 раз и уже от него плясать.
Группы - слабо представляю что это и для чего. Но скорей всего следует сделать индексированным в справочнике
Список факультетов - почему в нем указан город. Типа филиалы что ли?
Может в подчиненную форму? Факультет один. Городов много.
Stud_Group - это что?Дата начала и конца понятно. А что там дальше?
Таблицы Payment, Vacation для чего? Почти одинаковы.
Проще ТЗ выложить хотя бы в элементарном виде. Тут умных людей масса. Накидают черновик и дальше дело техники.

  Ответить  
 
 автор: Grigoriu   (28.12.2009 в 09:33)   личное сообщение
 
 

Отправьте меня лучше к похожим (связанными с учетом студентов) проектам куда-нибудь, если знаете

  Ответить  
 
 автор: Lukas   (28.12.2009 в 16:38)   личное сообщение
 
 

<Ищите на букву S>

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList