Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.68/73: Рейтинг темы: голосов - 73, средняя оценка - 4.68
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175

Работа с компонентом DBLookupComboBox

10.03.2010, 09:28. Показов 15562. Ответов 96
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос касающийся компонента DBLookupComboBox.

У меня есть таблица DBGrid. Я встаю на какую-нибудь запись и хочу ее отредактировать. Нажимаю на кнопку редактировать и у меня появляется форма с компонентом DBEdit и DBLookupComboBox Эти компоненты связаны с базой. Т.е. при открытии формы DBEdit отображает значение записи на которой я стаю и я могу ее менять, а с DBLookupComboBox так не получается. Мало того что изначально компанент ничего не показывает, а только после выбора из списка, но и при выборе из списка нужного значения и после нажатия кнопки сохранить в базе меняется лишь то поле которое меняла в DBEdit. В чем причина??
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.03.2010, 09:28
Ответы с готовыми решениями:

DBLookupCombobox работа с компонентом
Здравствуйте Форумчане, Имеется таблица со следующими полями: ID, ФИО, Отображение ID ключевое поле. В DBLookupCombobox необходимо...

Работа с БД и компонентом listbox
Подскажите, как в компонент listbox вставить данные из БД? Заранее благодарен.

Работа с компонентом DbEdit
Подскажите как можно запретить вводить пробелы точки, цифры и т. д. в общем все кроме букв при этом сделать так чтобы при вводе 1-й...

96
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175
25.03.2010, 12:00  [ТС]
Студворк — интернет-сервис помощи студентам
Выходит что связи нужно делать через запрос. Вот база, посмотрите что можно сделать с таблицами оценки и поступающие
Вложения
Тип файла: 7z Абитуриенты.7z (795.7 Кб, 26 просмотров)
0
 Аватар для Андрей Борисови
714 / 402 / 33
Регистрация: 04.10.2009
Сообщений: 1,686
25.03.2010, 12:27
Самое смешное то, что создание связей "1 ко многим" в Аксцессе в дельфи не работает...
В Аксцессе вы просто создаете таблицы и формируете (там это просто удобно) запросы, которые потом будете использовать в Дельфи.

Все "Украшательства" в виде сформированных связей, подстановок значений работают только в Аксцессе. Дельфи работает с самими данными...

Добавлено через 3 минуты
Сразу дополнение. Все окна малого размера переведите из режима Sizetable в режим Dialog. Иначе при развороте окна получается некрасиво.

Добавлено через 2 минуты
В ДБГридах сделайте выделение строки и запретите измение ширины столбцов (это просто совет)

Добавлено через 3 минуты
Чем неудобна ваша главная форма, что нельзя снова выбрать пункт меню, если его радиобутон уже включен)

Добавлено через 30 секунд
А теперь вопрос.
С чем у вас проблема? Вроде бы все готово

Добавлено через 1 минуту
А вот и косяк)) Если при запуске программы войти в меню оценки - то форма выводит кучу пустых строк с оценками... А ФИО абитуриента не видно...
0
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175
25.03.2010, 12:37  [ТС]
У меня проблема с таблицами оценки и поступающие. Нужно сделать ввод/изменение/удаление

Добавлено через 4 минуты
Цитата Сообщение от Андрей Борисови Посмотреть сообщение
А вот и косяк)) Если при запуске программы войти в меню оценки - то форма выводит кучу пустых строк с оценками... А ФИО абитуриента не видно...
Если я связываю эту таблицу с запросом то все поля видно. Но не могу добавлять. Я пробовала связать с тейблом, поэтому ничего не видно, потому что данные связаны.
0
 Аватар для Андрей Борисови
714 / 402 / 33
Регистрация: 04.10.2009
Сообщений: 1,686
25.03.2010, 12:52
По оценкам:
У вас выводятся все оценки столбиком, причем непонятно по какому человеку. Вам надо создать 3 запроса. 1-ый будет брать ФИО студента (И его код)а 2-ой запрос - по выбранному коду выводит все предметы, по которым он получил оценки и 3-ий - выводит уже сами оценки...

Напрмер:
//список абитуриентов
-----------------------------------------
Иванов
Петров
Сидоров
-----------------------------------------

// таблица предметов для Петрова (он типо выделен)
--------------------------
Русский
Математика
--------------------------

// список оценок по выделенному предмету для Петрова
------------------
2
3
4
5
------------------

Добавлено через 1 минуту
или надо использовать связи в Дельфи...
0
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175
25.03.2010, 12:59  [ТС]
Вы свяжите дбгрид с запросом ADOAbitOcen. В запросе идет группировка по абитуриентам.

Добавлено через 2 минуты
Вроде бы понятно какой абитуриент по какому предмету что получил

Добавлено через 1 минуту
Цитата Сообщение от Андрей Борисови Посмотреть сообщение
// список оценок по выделенному предмету для Петрова
------------------
2
3
4
5
------------------
А почему вы считаете что нужно несколько оценок для одного предмета?
0
 Аватар для Андрей Борисови
714 / 402 / 33
Регистрация: 04.10.2009
Сообщений: 1,686
25.03.2010, 13:04
Цитата Сообщение от Андрей Борисови Посмотреть сообщение
//список абитуриентов
SQL
1
2
3
SELECT Abiturient.Cod, Svedeniya.FIOAbitur
FROM Svedeniya INNER JOIN Abiturient ON Svedeniya.Cod = Abiturient.CodFIOAbiturSvedeniya
ORDER BY Svedeniya.FIOAbitur

Цитата Сообщение от Андрей Борисови Посмотреть сообщение
// таблица предметов для Петрова (он типо выделен)
SQL
1
2
3
SELECT Predmet.Name
FROM (Svedeniya INNER JOIN Abiturient ON Svedeniya.Cod = Abiturient.CodFIOAbiturSvedeniya) INNER JOIN (Predmet INNER JOIN Ocenki ON Predmet.Cod = Ocenki.CodPredmet) ON Svedeniya.Cod = Ocenki.CodAbitur
WHERE (((Svedeniya.FIOAbitur)="Ванин Иван Иванович"))
Только вы каждый рах вместо "Ванин Иван Иванович" подставляете выбранную фамилию. например так ADOZaprosFIO['FIOAbitur']


Цитата Сообщение от Андрей Борисови Посмотреть сообщение
// список оценок по выделенному предмету для Петрова
SQL
1
2
3
SELECT Ocenki.Ocenka
FROM (Svedeniya INNER JOIN Abiturient ON Svedeniya.Cod = Abiturient.CodFIOAbiturSvedeniya) INNER JOIN (Predmet INNER JOIN Ocenki ON Predmet.Cod = Ocenki.CodPredmet) ON Svedeniya.Cod = Ocenki.CodAbitur
WHERE (((Predmet.Name)="Русский язык") AND ((Svedeniya.FIOAbitur)="Ванин Иван Иванович"))
Сюда также подставляем выбранное ФИО (ADOZaprosFIO['FIOAbitur']) + выделенный Предмет ADOZaprosPredmet['Name'] из прошлого запроса

Добавлено через 2 минуты
Цитата Сообщение от AlenaIvanova Посмотреть сообщение
А почему вы считаете что нужно несколько оценок для одного предмета?
Потому, что человек может получить несколько оценок по одному предмету в течение семестра..

Таблица "Оценки" именно собирает ВСЕ полученные оценки ПО ВСЕМ предметам ДЛЯ КАЖДОГО учащегося. Просто СОБИРАЕТ.
Среднее вычисляется потом.

Добавлено через 51 секунду
Вот такой вот геморой....
0
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175
25.03.2010, 13:06  [ТС]
Вы меня видимо не поняли. У меня оценки это оценки полученные за экзамен при поступлении в ВУЗ. И потом по оценкам сужу проходит он на ту или иную специальность или нет.
0
 Аватар для Андрей Борисови
714 / 402 / 33
Регистрация: 04.10.2009
Сообщений: 1,686
25.03.2010, 13:06
Оппаньки... А я то думал, что Вам надо написать программу, реализующую все действия обыкновенного бумажного классного журнала...
0
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175
25.03.2010, 13:08  [ТС]
Да нет
0
 Аватар для Андрей Борисови
714 / 402 / 33
Регистрация: 04.10.2009
Сообщений: 1,686
25.03.2010, 13:12
Ну.. Тогда ничего кардинально не меняется.
Т.е., еще раз подтвердаю условие, Вам нужно создать программу регистрации абутуриентов и автозачислением их при успешной (не на 2) сдаче экзаменов?
0
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175
25.03.2010, 13:25  [ТС]
Подтверждаю

Добавлено через 3 минуты
Цитата Сообщение от Андрей Борисови Посмотреть сообщение
автозачислением их при успешной (не на 2) сдаче экзаменов?
Вообще я хотела сделать так. Допустим абитуриент сдал экзамены получил n-ое количество баллов и исходя и допустим находим среднее количество по сумме баллов у всех абитуриентов на данном факультете и на данной специальности, затем это n-ое кол баллов сравнивается со среднем и если > либо = то абитуриент зачисляется. Вот так
0
 Аватар для Андрей Борисови
714 / 402 / 33
Регистрация: 04.10.2009
Сообщений: 1,686
25.03.2010, 13:35
тогда смотрите алгоритм:
1. Принять "Поступающего", т.е. сформировать форму ввода его личных данных, привязать его к будущему факультету и специальности.
2. Сформировать для этого поступающего, в зависимости от факультета и специальности, экзамены.
3. Обеспечить ввод оценки за экзамен для "Поступающего". Причем только ЕГО экзаменов
4. Сделать кнопку "Обработка", при нажатии на которую будут просматриваться полученные "Поступающими" оценки за экзамены и, если сумма оценок за экзамены удовлетворяет "Проходной балл" по предмету то пеперенести "Поступающего" в "Зачисленные"
0
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175
25.03.2010, 13:36  [ТС]
Было бы здорово если это все получилось
0
 Аватар для Андрей Борисови
714 / 402 / 33
Регистрация: 04.10.2009
Сообщений: 1,686
25.03.2010, 14:21
Программа изменится.. Но совсем немного.
Основа у вас уже есть.
Есть справочники, есть разделение на "Поступающие" и "Зачисленые".
Вам надо добавить справочник "Проходной балл" для Специальности:

таблица ProhodnoyBall
COD счетчик
COD_Spec число
Ball число

Добавлено через 5 минут
При заходе в меню "Зачесление" программа должна пробежаться по всем "Поступающим" и сравнить их результаты оценок за экзамены с данными в таблице "Проходной балл" (само собой это SQL-запрос) и в таблице "Абитуриент" поставить "галочку" в поле "зачислен". И все

Добавлено через 2 минуты
Можете даже добавить поле "Дата зачисления" в таблицу "Абитуриент". Можно будет тогда в неё записать дату зачисления))
0
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175
26.03.2010, 05:29  [ТС]
Цитата Сообщение от Андрей Борисови Посмотреть сообщение
таблица ProhodnoyBall
COD счетчик
COD_Spec число
Ball число
А зачем забивать "Ball число", разве это не вычисляемое поле?

Добавлено через 1 минуту
А что Вы мне посоветуете с моей проблемой? (со вводом данных в таблицы "оценки" и "поступающие")
0
 Аватар для Андрей Борисови
714 / 402 / 33
Регистрация: 04.10.2009
Сообщений: 1,686
26.03.2010, 06:43
Цитата Сообщение от AlenaIvanova Посмотреть сообщение
А что Вы мне посоветуете с моей проблемой? (со вводом данных в таблицы "оценки" и "поступающие")
Пока ничего... Пока разбираюсь в коде


Цитата Сообщение от AlenaIvanova Посмотреть сообщение
А зачем забивать "Ball число", разве это не вычисляемое поле?
Проходной бал, обычно, константа, изменяемая раз в год
Из этого следут - запихать константу в справочную таблицу
0
9 / 9 / 0
Регистрация: 24.02.2010
Сообщений: 175
26.03.2010, 08:36  [ТС]
Цитата Сообщение от Андрей Борисови Посмотреть сообщение
Проходной бал, обычно, константа, изменяемая раз в год
Разве она изменяется раз в год? Я думала исходя из набранных баллов абитуриенами

Добавлено через 6 минут
Цитата Сообщение от Андрей Борисови Посмотреть сообщение
Цитата:
Сообщение от AlenaIvanova Посмотреть сообщение
А что Вы мне посоветуете с моей проблемой? (со вводом данных в таблицы "оценки" и "поступающие")
Пока ничего... Пока разбираюсь в коде
Я думаю что нужно связывать с тейблом, а потом обновлять тейблом запросом update. Но проблема в том что запросы с updata у меня не работают
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.03.2010, 08:36

Работа с компонентом TDBGrid
Здравствуйте помогите пожалуйста как при нажатии на одну строчку в DBGrid выводились все данные относящиеся к выделенной записи из другой...

Работа с компонентом TpFibDataSet
Доброго времени суток Использую Delphi XE3 FibPlus 7.3 FireBird 2.5 Вопрос следующего плана: есть база данных, в ней есть...

Работа с DBLookupComboBox
Всем привет. Помогите пожалуйста разобраться возможно ли сделать так, что бы в случае когда человек не нашел нужной записи в...

Работа с компонентом memo
Такой вопрос: Примерный код: Case RadioGroup1.ItemIndex of 0:sum:=sum+a; 1:sum:= sum+b; 2:sum:= sum+c; При...

Работа с компонентом memo - поиск слова,или строчек
Есть программа - моя,в ней есть компонент memo,мне нужно чтоб по нажатию типо label1 в тексте компонента отыскалась нужная мне строка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
97
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru