![]() |
|
|
#1
|
|||
|
|||
![]() Такая проблема: у бд есть из аксеса- там все таблици все связи есть. В Delphi я добавляю аксесовскую базу с помощью ADOConnection, создаю две таблицы там всё в свойствах настраиваю также добавляю DataSource. Потом кидаю на форму DBLookupComboBox и для отображения его содержимого беру данные из одной таблицы(группа), ещё кидаю на форму DBGrid отбражаю в нём данные из другой таблицы(студент). Как мне сделать что бы при выборе в DBLookupComboBox (группы) отображались в DBGrid только данные (т.е. студенты) из этой группы, а не все. Побывал использовать master-detail, сразу при запуске программы возникает ошибка и не работает. А если не связывать их то они по отдельности работают нормально. Подскажите как настроить master-detail или что я делаю не так?
|
#2
|
|||
|
|||
![]() Цитата:
|
#3
|
||||
|
||||
![]() Цитата:
|
#4
|
||||
|
||||
![]() Самый оптимальный вариант это делать запрос с параметром, пускай параметром будет код группы, название или ещё какая-то индификация.
Добавь на форму компоненты: ADOTable, ADOQuery, 2xDataSource, DBLookupComboBox, DBGrid. Соедени их: ADOTable1 <- DataSource1 <- DBLookupComboBox1 ADOQuery1 <- DataSource2 <- DBGrid1 В компонент ADOQuery1 в свойство SQL напиши следующий запрос Код:
SELECT фамилия, имя, отчество FROM студент WHERE id_группа=:group Код:
ADOQyery1.Close; ADOQyery1.ParamByName('group').Value:=ADOTable1.FieldByName('id_группа').Value; ADOQyery1.Open; |
#5
|
||||
|
||||
![]() Цитата:
|
#6
|
||||
|
||||
![]() Цитата:
Ну вот какой предлагает windaws через фильтрацию и ComboBox. То есть сначала надо заполнить ComboBox в цикле а потом по нажатию фильтр менять. У меня это гораздо проще решается. |
#7
|
||||
|
||||
![]() Ясно.
Query1+DataSource1 Код:
SELECT фамилия, имя, отчество FROM студент WHERE id_группа=:id_группа Код:
select * from группа Все. |
#8
|
|||
|
|||
![]() Цитата:
![]() фильтр будет выглядить так: Студент.filter:='код_группы= ' + группа.fitelds.fields[0].asInteger; Студент.filtered:=true; на dblookupcombobox1click ставишь и все, таблица студент будет фильтроваться по коду группы. |