Fórum Efeito cascata no DBLookupComboBox #237530

14/06/2004

0

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

Responder

Posts

14/06/2004

Paulo_amorim

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é+


Responder

Gostei + 0

14/06/2004

Wbb

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+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar