powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Автоматическая отправка данных в таблицу
21 сообщений из 21, страница 1 из 1
Автоматическая отправка данных в таблицу
    #32417673
Skeef123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Помогите пожалуйста решить мне одну проблемку.
В моей базе данных 4 таблицы: Дисциплины, Группы, Студенты и Оценки.
Дисциплины связаны с Группы через поле "Семестр" а с "Оценки" через "Код дисциплины". Группы связаны со Студенты через "Код группы". Студенты связаны с Оценки через "Код студента".
Таким образом получается кольцевая схема данных, где в таблице "Оценки" данные через поля подстановки поступают из 2 таблиц: Дисциплины и Студенты.
Не могли бы Вы мне подсказать, как сделать так, чтобы при вводе данных о студентах (форма Группа и подчиненная форма Студенты) и данные о дисциплинах (форма Дисциплины, пока без подчиненных) автоматически попадали в таблицу Оценки. То есть, чтобы в этой таблице для каждого студента были дисциплины которые изучает он (а точнее его группа) в данном семестре. Чтобы в таблицу нужно было ввести только оценки.
Заранее очень благодарен за помощь.
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32417690
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Структуру данных сам придумал или так делать сказали?

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32417836
Skeef123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Структру посоветовали. А что, есть предложения по ее изменению в лучшую сторону?
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32417847
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Думаю, что со структурой все в порядке. Только не надо ее рассматривать как кольцевую. Тот факт, что код семестра находится в двух таблицах, не значит, что они связаны через него.

На исходный вопрос предлагаю такой ответ: при добавлении студента и при добавлении дисциплины запускать такой код:

currentdb.execute "INSERT INTO оценки ( кодстудента, коддисциплины ) SELECT студенты.кодстудента, дисциплины.коддисциплины FROM студенты, дисциплины;"

При этом те сочетания студента и дисциплины, которые уже есть, просто не добавятся.
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32417909
Skeef123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не могли бы Вы уточнить, куда именно вставлять данный код.
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32417910
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
В событие AfterInsert двух форм, в которых показываются соответственно студенты и дисциплины.
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32417912
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Можно этот код оптимизировать и сделать так:

в студентах:

currentdb.execute "INSERT INTO оценки ( кодстудента, коддисциплины ) SELECT " & cstr(me!кодстудента) & ", коддисциплины FROM дисциплины;"

в дисциплинах:

currentdb.execute "INSERT INTO оценки ( кодстудента, коддисциплины ) SELECT кодстудента, " & cstr(me!коддисциплины) & " FROM студенты;"
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32417920
Skeef123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо, я попробую :-))
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32418213
Skeef123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При использовании первого варианта в таблицу "Оценки" добавляются каждый раз все записи из форм. Т.е. если есть студент Иванов, то при добавлении студента Петрова, добавляется опять сочетание Иванов + все его дисциплины. Как уйти от такого эффекта?
При использовании второго варианта, в форме Студенты ACCESS ругается, что где-то или ! или . или () неправильно стоят. Что мне подправить?
Помогите пожалуйста!
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32418314
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно увидеть точный код???
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32418341
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
По поводу первой проблемы могу предположить, что в таблице оценок неверно задан (или совсем не задан) первичный ключ.
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32418620
sv80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну полное решение не подскажу, но вот автозаполнение по группе или факультету если у них одинаковы дисциплины можно сделать. Создаешь Запрос1 где вытягивается группа(факультет) и дисциплины(фильтруется с формы по выбранному полю Группа(Факультет)). и Запрос2 где вытягиваются группа(Факультет) и студенты (фильтруется все с тойже формы по выбранному полю Группа(Факультет)). И Запрос3 (добавление данных) где в источники добавляешь Запрос1 и Запрос2 но без связи между ними, тогда запрос для каждой дисциплины создаст записи с студентами(или наоброт) и другие поля какие захочешь, который укажешь в Запросе3.(Семестр; оценка)
Вот твоя база как бы готова, единственное нужно проверить, не заполнялась ли она уже а то задвоение будет. И не добавлялись ли новые студ и т.д. У меня в Запросе3 Была еще проверка с Таблицей добавления на их уже существование.

Для полного заполнения нужно будет просто заставить на форме Фильтрации подставлять в это поле значения групп(факультета) и выполнить запрос3 и так пока не будет получена последняя группа(факультет) Вот это сам не смог реализовать, но великие гуру могут я так думаю. Кстати есть у кого примерчик: автопробежки в форме в поле со списком, по всем значениям и запуском запроса или чего либо. (Хитро думаешь хреново пишешь, так обо мне сказал препод физики, читая контрольную.):):):)
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32418624
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А чем это отличается от моего неоптимизированного варианта от 21 фев 04, 19:54?
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32418667
sv80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир Саныч
В принципе только оптимизацией и отличается, и маленьким практическим изучением этой проблемы. Ну и не знанием, языка SQL так как Вы :( :):):). Будем жить - будем учиться.
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32418671
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Тогда чем это отличается от моего оптимизированного варианта от 21 фев 04, 22:27?

P.S. Мне было бы проще на "ты", если можно.
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32418707
Skeef123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Владимир Саныч
А где, по Вашему, должен стоять "первичный ключ"?
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32418713
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
На сочетании полей кодстудента + коддисциплины.
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32420049
Skeef123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как же ключ поставить на сочетание полей. Или что ты имеешь ввиду?
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32420114
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ооо... Совсем плохо. Будем учиться создавать ключи. :^)\r
\r
/topic/68597
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32421646
Skeef123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё почти ОК. С ключами я разрулил. Только осталась одна штука. В этой таблице "Оценки" теперь для каждого студента формируется список всех-всех предметов, которые есть для всех семестров. А неплохо бы, чтоб было только по данному семестру ибо база увеличиться неоправданно. Подскажите пожалуйста.
...
Рейтинг: 0 / 0
Автоматическая отправка данных в таблицу
    #32421680
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Тогда так (даю поправки для обоих предложенных мной выше вариантов):

currentdb.execute "INSERT INTO оценки ( кодстудента, коддисциплины ) SELECT студенты.кодстудента, дисциплины.коддисциплины FROM студенты, дисциплины WHERE семестр=" & cstr(me!семестр) & ";"

currentdb.execute "INSERT INTO оценки ( кодстудента, коддисциплины ) SELECT " & cstr(me!кодстудента) & ", коддисциплины FROM дисциплины WHERE семестр=" & cstr(me!семестр) & ";"
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Автоматическая отправка данных в таблицу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]