Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание DBGrid'a из нескольких таблиц, проблема в запросе или в руках? 
:(
    Опции темы
ParaNO1k
  Дата 14.6.2009, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.5.2009
Где: Россия)

Репутация: нет
Всего: нет



Доброго времени суток, Уважаемые Формучане!
Использую базу Acceess 2003.
Доступ через ADO.
Проблему немогу решить уже долгое время, есть несколько связанных таблиц, рисунок БД прилагается.
Необхомо в DBGrid'е вывести список всех учащихся (но желательно определенного класса (хотя это уже решил)) и поля для выбора даты (выбирается отдельно и заносится для всех учащихся), номера уроков (так же выбираются отдельно и заносятся для всей группы), предметов (аналогия с ранее сказанным) и оценок (необходимо сделать для всех учащихся отдельно).
Суть проблемы в том, что не получается сделать весь список класса, с пустыми полями для оценок. Получалось либо повторение данных, либо только те учащиеся, которые уже есть в таблице "jurnal".
Заранее Спасибо!

Это сообщение отредактировал(а) ParaNO1k - 14.6.2009, 18:35

Присоединённый файл ( Кол-во скачиваний: 20 )
Присоединённый файл  __.JPG 17,10 Kb
PM MAIL ICQ   Вверх
Keeper89
Дата 14.6.2009, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 1
Всего: 58



Покажите формат вывода данных, т.е. в каком виде вы хотите видеть "весь список класса, с пустыми полями для оценок".


--------------------
PM MAIL WWW   Вверх
ParaNO1k
Дата 14.6.2009, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.5.2009
Где: Россия)

Репутация: нет
Всего: нет



Планировал выводить все в DBGrid'е или DBGridEh'е, выглядеть это должно вот так:

Фамилия      |    Имя          | Оценка  |
---------------------------------------------- |
Сидоров      |  Алексей      |       3      |
Иванив         |  Иван          |               |
Любых         |  Настя          |               |
и тд.
По хорошему поле "Оценка" LookUp поле из таблицы.
PM MAIL ICQ   Вверх
Romikgy
Дата 14.6.2009, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



а оценка одна же на предмет или усредненая нужна?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ParaNO1k
Дата 14.6.2009, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.5.2009
Где: Россия)

Репутация: нет
Всего: нет



Оценка идет 1, на предмет, на урок и на конкретный день для учащегося.
Это сдаланно для того чтобы после, можно было сделать распечатку отчета, в котором будут указываться промежутки дат, предметы и оценки за это время для класса.
PM MAIL ICQ   Вверх
Romikgy
Дата 14.6.2009, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



возможно что то типа такого 
Код

select uch.fam , uch.name, ocenka.ocenka
from jurnal, uch, ocenka
where uch.id_uch=jurnal.id_uch and jurnal.ocenka=ocenka.id;

а вообще БД саму прикрепи ...

Это сообщение отредактировал(а) Romikgy - 14.6.2009, 19:25


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ParaNO1k
Дата 14.6.2009, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.5.2009
Где: Россия)

Репутация: нет
Всего: нет



Цитата(Romikgy)

возможно что то типа такого

Идия то хорошая и мною разобранная вдоль и поперек, но... главная проблема, что мне необходимо выбирать учеников конкретного класса...:(
Ученики ссылаются на класс при помощи поля id_node в таблице uch и если пытаться сортировать учащихся по классу, то остаются только те поля которые заполнены в таблице jurnal...
В БД, в запросах можешь посмотреть кое какие попытки решить эту проблему...
Отвечаю заранее на вопрос, почему имеется такой код
Код

uch.id_node=1 (или 3)

Это сделанно потому что в Delphi  программно будет указываться номер класса, чтобы выбирались учащиеся этого класса, а не все учащиеся.

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  jurnal.rar 34,07 Kb
PM MAIL ICQ   Вверх
Romikgy
Дата 14.6.2009, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



еще раз , как хочется получить результат , можешь показать ?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ParaNO1k
Дата 14.6.2009, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.5.2009
Где: Россия)

Репутация: нет
Всего: нет



Я уже писал%)

|Фамилия      |    Имя          | Оценка |
|----------------------------------------------|
|Сидоров      |  Алексей     |       3      |
|Иванов        |  Иван          |               |
|Любых         |  Настя         |               |
|и тд.

По хорошему поле "Оценка" LookUp поле из таблицы.
Как ещё это изобразить на форуме я не знаю...
З.Ы. Отображать нужно учащихся определенного класса, который будет выделен!

Чтото пришла такая мысль: а что если выводить всех учащихся, но перед тем как они появятся, в гриде скрывать тех кто не относится в выбранному классу...
Тогда пролбема получается как скрывать строки с ненужными учащимися  smile 

Это сообщение отредактировал(а) ParaNO1k - 14.6.2009, 19:50
PM MAIL ICQ   Вверх
Romikgy
Дата 14.6.2009, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



Цитата(ParaNO1k @  14.6.2009,  18:19 Найти цитируемый пост)
что мне необходимо выбирать учеников конкретного класса.

тогда это к чему?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ParaNO1k
Дата 14.6.2009, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.5.2009
Где: Россия)

Репутация: нет
Всего: нет



Эм... такая система, в Delphi  есть TreeView в котором отображается список класса, при выделении какого-либо класса, берется его ID.
После выделении класса отображается DBGrid с таблицей, в которой должны отображатся список класса и выбор оценок для каждого учащегося.
Отдельно имеются кнопки для выбора предмета, номера урока и даты.
PM MAIL ICQ   Вверх
Romikgy
Дата 14.6.2009, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



Код

SELECT uch.fam, uch.name, ocenka.ocenka
FROM uch, jurnal, ocenka
where
jurnal.id_uch=uch.id_uch and jurnal.ocenka=ocenka.id
order by uch.fam
;


так ?

Добавлено через 2 минуты и 35 секунд
или
Код

SELECT uch.fam, uch.name, ocenka.ocenka
FROM uch, jurnal, ocenka
where
jurnal.id_uch=uch.id_uch and jurnal.ocenka=ocenka.id 
and uch.id_node=2
order by uch.fam
;


and uch.id_node=2 это для выбора по классу


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ParaNO1k
Дата 14.6.2009, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.5.2009
Где: Россия)

Репутация: нет
Всего: нет



Сорри, но не то :(
Он все равно делает выборку из тех учащихся которые занесены в таблицу jurnal, а нужно чтобы он брал учащихся из класса, а потом уже заносил в эту таблицу, когда проставлены оценки.
PM MAIL ICQ   Вверх
Romikgy
Дата 14.6.2009, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



Цитата(ParaNO1k @  14.6.2009,  19:28 Найти цитируемый пост)
Он все равно делает выборку из тех учащихся которые занесены в таблицу jurnal, а нужно чтобы он брал учащихся из класса, а потом уже заносил в эту таблицу, когда проставлены оценки.

не понял ((


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ParaNO1k
Дата 14.6.2009, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.5.2009
Где: Россия)

Репутация: нет
Всего: нет



Эх... почему мозги у меня не так работают?! :(
Ладно, поробую тогда так: в ДБГрид, надо сделать список класса, класс формируется по значению ид_ноде в таблице уч. Так же напротив каждого учащегося надо сделать выпадающий список с оценкой, которой он получил(ит).
Может быть станет понятнее, если увидишь форму...
На кнопки добавить день и урок, не обращая внимания, толку от них пока все равно ни какого...
В зависимости от выбранного дня формируется подобная форма, на ней отображаются номера уроков, предмет который был выбран в соответствии с уроком, в ДИБГрид появляется список ВСЕХ учащихся ЭТОГО КЛАССА. Нужно чтобы ещё справа от списка учащихся появлялось ЛукАп поле с выбором оценки учащемуся, при нажатии кнопки сохранить, данные сохранялись в таблицу jurnal.
Пока для вывода списка использую:
Код

SELECT id_uch, fam, name
FROM uch;


Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  ________________.JPG 58,25 Kb
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1261 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.