![]() |
|
|
#1
|
|||
|
|||
![]() Всем привет! Есть два DBLookupCombobox. В первом номер класса, во втором ученики. Можно сделать так, чтобы при выборе класса в первом боксе, во втором выпадали ученики этого класса? У первого комбобокса в датасете: select * from KLASS WHERE KLASS.NUM_KLASS=:UCHASHIESYA.NUM_KLASS.
|
#2
|
||||
|
||||
![]() Издевался над таблицей KLASS где есть два поля - NUM_KLASS и UCHASHIESYA (у вас они похоже в разных местах лежат)
Сначало добавил пару ADOQuery и столько же DataSource, подключил их к DBLookupCombobox: для первого KeyFiled = NUM_KLASS, для второго поле с учениками (условно UCHASHIESYA). При запуске код такой Код:
... AdoQuery1.SQL.Add('select distinct NUM_KLASS from KLASS union select NUM_KLASS from KLASS order by NUM_KLASS'); AdoQuery2.SQL.Add('select * from KLASS'); AdoQuery1.Open; AdoQuery2.Open; ... Код:
procedure TfrmMain.DBLookupComboBox1Click(Sender: TObject); begin AdoQuery2.Close; AdoQuery2.SQL.Clear; AdoQuery2.SQL.Add('select * from KLASS where NUM_KLASS=''' + (Sender as TDBLookupComboBox).Text + ''''); AdoQuery2.Open; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
![]() Попробовал так, ошибка: Несоответствие типов данных в выражении условия отбора.
|
#4
|
||||
|
||||
![]() Можно. Вам просто надо подчинить второй датасет первому задав верное ключевое поле.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |