Efeito cascata no DBLookupComboBox

Delphi

14/06/2004

Pessoal, gostaria de saber como faço para gerar uma espécie de ´efeito cascata´ entre componentes DBLookupComboBox (uso ADO e Access).

Por exemplo:
Supondo haver as tabelas SEMESTRES, DISCIPLINAS e ALUNOS, e os DBLookupComboBox1, 2 e 3, considera-se que o DBLookupComboBox1 representará a tabela SEMESTRES, o DBLookupComboBox2 representará a tabela DISCIPLINAS e o DBLookupComboBox3 representará a tabela ALUNOS. Eu preciso que quando o usuário clicar no DBLookupComboBox1, selecionando o semestre, automaticamente o DBLookupComboBox2 mostre as disciplinas relacionadas ao semestre selecionado. O mesmo acontecerá quando o usuário clicar no DBLookupComboBox2 e selecionar a disciplina desejada. Ao selecionar a disciplina no DBLookupComboBox2, automaticamente serão mostrados os alunos relacionados a ela no DBLookupComboBox3 (neste caso os alunos relacionados são na realidade os que estão matriculados).

Alguém pode me auxiliar a construir isso?

Obrigado.
wbb


Wbb

Wbb

Curtidas 0

Respostas

Paulo_amorim

Paulo_amorim

14/06/2004

Olá

Você irá necessitar de 3 Queries...
Q1: SELECT * FROM semestres
Q2: SELECT * FROM disciplinas WHERE semestres = :p1
Q3: SELECT * FROM alunos WHERE disciplinas = :p1 (dependendo da estrutura das suas tabelas, AND semestres = :p2)

coloque suas queries para abrirem em um Evento do seu DBLookUp (pode ser no OnClick, seilá...veja o melhor).exemplo...

no onclick do Q1, abra Q2 passando como parametro o text do seu lookup1
no onclick do Q2, abra Q3 passando como paramstro o text do seu lookup2 (e 3, seila)

Espero que ajude
Até+


GOSTEI 0
Wbb

Wbb

14/06/2004

Fala Paulo!
Eu ainda não testei, mas entendi o que você explicou.
Apesar disso, gostaria de saber se não existe uma outra maneira de obter o mesmo resultado, apenas usando as propriedades DataSource, ListSource, ListField, etc... do DBLookupComboBox. Me lembro de ter visto algo parecido postado por alguém aqui mesmo no fórum, mas não consegui encontrar o tópico relacionado. A pessoa que usou isso descreveu o mesmo processo que comentei e acabou conseguindo resolver o problema usando apenas estas propriedades (ou seja, sem usar nada de código).

Obrigado pela ajuda.
T+


GOSTEI 0
POSTAR