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
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
Curtir tópico
+ 0
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é+
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+
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
Clique aqui para fazer login e interagir na Comunidade :)