Lookup com três tabelas
Tenho uma Tabela chamada Matrícula, uma tabela chamada Inscrição e um outra chamada Faltas.
A rotina é:
O aluno faz a Matrícula (recebe um código).
Faz a inscrição com o Código de Matrícula (recebe o número de inscrição).
E com o número da inscrição faz o cadastramento de faltas.
OBS: O aluno pode ter várias inscrições.
Gostaria de saber se é possível fazer um campo lookup em Faltas. Gostaria que
em Faltas aparecesse o nome do aluno e não o número da inscrição.
Valeu a força!!!
JR.
A rotina é:
O aluno faz a Matrícula (recebe um código).
Faz a inscrição com o Código de Matrícula (recebe o número de inscrição).
E com o número da inscrição faz o cadastramento de faltas.
OBS: O aluno pode ter várias inscrições.
Gostaria de saber se é possível fazer um campo lookup em Faltas. Gostaria que
em Faltas aparecesse o nome do aluno e não o número da inscrição.
Valeu a força!!!
JR.
Jrjoliv2003
Curtidas 0
Respostas
Tnaires
29/07/2004
Olá
Vc pode criar um campo LookUp a partir de outro campo LookUp. No seu caso, imagino q o relacionamento seja o seguinte:
Alunos - Matriculas - Inscricoes - Faltas
Se for o caso, vc faz um LookUp em Matriculas pra pegar o nome do aluno a partir do código do aluno, um outro LookUp em Inscricoes para pegar o nome do aluno a partir da inscrição (tendo como fonte o LookUp q vc criou em Matriculas), e o último LookUp vc cria em Faltas tendo como fonte o LookUp q vc criou em Inscricoes pra pegar o nome do aluno.
Espero q tenha entendido! Abraços
Vc pode criar um campo LookUp a partir de outro campo LookUp. No seu caso, imagino q o relacionamento seja o seguinte:
Alunos - Matriculas - Inscricoes - Faltas
Se for o caso, vc faz um LookUp em Matriculas pra pegar o nome do aluno a partir do código do aluno, um outro LookUp em Inscricoes para pegar o nome do aluno a partir da inscrição (tendo como fonte o LookUp q vc criou em Matriculas), e o último LookUp vc cria em Faltas tendo como fonte o LookUp q vc criou em Inscricoes pra pegar o nome do aluno.
Espero q tenha entendido! Abraços
GOSTEI 0
Jrjoliv2003
29/07/2004
Mesmo se esse primeiro lookup for do tipo string?
Porque é assim:
Matrícula - Inscrição - Faltas
O lookup que criei em Incrição é do tipo String. Em Inscrição tem a Matrícula que um inteiro.
Valeu a força!!
JR.
Porque é assim:
Matrícula - Inscrição - Faltas
O lookup que criei em Incrição é do tipo String. Em Inscrição tem a Matrícula que um inteiro.
Valeu a força!!
JR.
GOSTEI 0
Tnaires
29/07/2004
Vc precisa usar as chaves primárias das tabelas envolvidas como LookUpKeyFields. Ou seja, as chaves devem ser do mesmo tipo, preferencialmente números inteiros.
GOSTEI 0
Jrjoliv2003
29/07/2004
Funcionou!!!!
Valeu mesmo!!!
Eu tá pensando em até colocar a matrícula do aluno em faltas. Ia ficar sem sentido!!!
Mais uma vez obrigado!!!
JR.
Valeu mesmo!!!
Eu tá pensando em até colocar a matrícula do aluno em faltas. Ia ficar sem sentido!!!
Mais uma vez obrigado!!!
JR.
GOSTEI 0
Jrjoliv2003
29/07/2004
Estou aproveitando essa mensagem para tratar um erro que coloquei em uma mensagem anterior.
Estava fazendo alguns acertos no projeto com lookup, formatação de datas, coisa simples. Quando faço um lookup de uma tabela, ele apresenta o seguinte erro na execução:
Project ProjectCurso.exe raised exception class EStackOverflow
with message ´Stack overflow´. Process stopped. Use Step or Run to continue
O projeto só não deixa abrir o formulário que possui esse lookup. Os outros abrem tranquilamente.
Alguém tem idéia do que seja?
Valeu a força!!
JR.
Estava fazendo alguns acertos no projeto com lookup, formatação de datas, coisa simples. Quando faço um lookup de uma tabela, ele apresenta o seguinte erro na execução:
Project ProjectCurso.exe raised exception class EStackOverflow
with message ´Stack overflow´. Process stopped. Use Step or Run to continue
O projeto só não deixa abrir o formulário que possui esse lookup. Os outros abrem tranquilamente.
Alguém tem idéia do que seja?
Valeu a força!!
JR.
GOSTEI 0
G1b4
29/07/2004
Project ProjectCurso.exe raised exception class EStackOverflow with message ´Stack overflow´. Process stopped. Use Step or Run to continue
O delphi gera essa exceção quando há estouro de pilha. Não será pela quantidade de Lookups que você colocou?
Tente debugá-lo...
Espero ter ajudado :wink: !!!
GOSTEI 0
Jrjoliv2003
29/07/2004
Sou novato em programação. Todos os itens que coloc no fórum é do meu projeto fim de curso. Poderia me ajudar?
Valeu a força!!
JR.
Valeu a força!!
JR.
GOSTEI 0
G1b4
29/07/2004
F7 -> debuga de linha em linha
F8 -> executa a rotina
Com isso aqui você vai achar onde tá o erro e tentar tratá-lo.
F8 -> executa a rotina
Com isso aqui você vai achar onde tá o erro e tentar tratá-lo.
GOSTEI 0
Jrjoliv2003
29/07/2004
Valeu!!!
Vou tentar fazer..
Qualquer resultado respond.
JR.
Vou tentar fazer..
Qualquer resultado respond.
JR.
GOSTEI 0
Jrjoliv2003
29/07/2004
Verifiquei que o erro é quando abro a tabela do form (data.ibtset.active:=true). Nos outros formulário não dá problema, só nesse pq abre essa tabela.
Sabe(m) pq isso?
Valeu a força!!
JR.
Sabe(m) pq isso?
Valeu a força!!
JR.
GOSTEI 0
Jrjoliv2003
29/07/2004
Ninguém faz idéia?
Facó um simples lookup em uma tabela e quando ativo a tabela aparece isso:
Project ProjectCurso.exe raised exception class EStackOverflow
with message ´Stack overflow´. Process stopped. Use Step or Run to continue
Valeu a força!!
JR.
Facó um simples lookup em uma tabela e quando ativo a tabela aparece isso:
Project ProjectCurso.exe raised exception class EStackOverflow
with message ´Stack overflow´. Process stopped. Use Step or Run to continue
Valeu a força!!
JR.
GOSTEI 0
Vanius
29/07/2004
Fera,
Normalmente, para mostrar diversos dados em um Lookup, faço o seguinte.
Tenho uma query (ou tabela) com os dados q quero mostrar. No seu caso os dados sao: Matrícula - Inscrição - Faltas
No ListField do lookup coloco os 3 campos separados por ; (ponto e virgula). Assim, os tres campos sao listados. Em alguns casos tenho q aumentar o valor do DropDownWidth para ´mostrar´ todos os dados do DBLookUpComboBox.
Espero ter ajudado.
[]s,
Vanius
Normalmente, para mostrar diversos dados em um Lookup, faço o seguinte.
Tenho uma query (ou tabela) com os dados q quero mostrar. No seu caso os dados sao: Matrícula - Inscrição - Faltas
No ListField do lookup coloco os 3 campos separados por ; (ponto e virgula). Assim, os tres campos sao listados. Em alguns casos tenho q aumentar o valor do DropDownWidth para ´mostrar´ todos os dados do DBLookUpComboBox.
Espero ter ajudado.
[]s,
Vanius
GOSTEI 0
Jrjoliv2003
29/07/2004
No meu caso é só para mostar o nome da epssoa e não o código. Na primeria situação Matrícula - Inscrição - Faltas está resolvido.
O probelam é uma tabela chamada setor que te o código do funcionário que cadastrou o setor. Ao invés de aparecer o código do funcionário quero que apareça o nome. Fiz lookup com funcionário em várias tabelas e deu certo. Essa empacou. E não foi a última que eu fiz!!!!
Valeu a força!!!
JR.
O probelam é uma tabela chamada setor que te o código do funcionário que cadastrou o setor. Ao invés de aparecer o código do funcionário quero que apareça o nome. Fiz lookup com funcionário em várias tabelas e deu certo. Essa empacou. E não foi a última que eu fiz!!!!
Valeu a força!!!
JR.
GOSTEI 0
Tnaires
29/07/2004
Olá
´data´ é o form que contém o ibtset, correto? Vc já verificou se ele está criado qdo vc torna ibtset ativo?
´data´ é o form que contém o ibtset, correto? Vc já verificou se ele está criado qdo vc torna ibtset ativo?
GOSTEI 0
Jrjoliv2003
29/07/2004
data é o Data Module.
JR.
JR.
GOSTEI 0
Jrjoliv2003
29/07/2004
Ninguém faz idéia?
Faço um simples lookup em uma tabela e quando ativo a tabela aparece isso:
Project ProjectCurso.exe raised exception class EStackOverflow
with message ´Stack overflow´. Process stopped. Use Step or Run to continue
Só falta essa tela!!
Valeu a força!!
JR.
Faço um simples lookup em uma tabela e quando ativo a tabela aparece isso:
Project ProjectCurso.exe raised exception class EStackOverflow
with message ´Stack overflow´. Process stopped. Use Step or Run to continue
Só falta essa tela!!
Valeu a força!!
JR.
GOSTEI 0
Jrjoliv2003
29/07/2004
Ninguém tem idéia?
Tô precisando muito!!!
JR.
Tô precisando muito!!!
JR.
GOSTEI 0
Jrjoliv2003
29/07/2004
Ninguém faz idéia?
Faço um simples lookup em uma tabela e quando ativo a tabela aparece isso:
Project ProjectCurso.exe raised exception class EStackOverflow
with message ´Stack overflow´. Process stopped. Use Step or Run to continue
Só falta essa tela!!
Valeu a força!!
JR.
Faço um simples lookup em uma tabela e quando ativo a tabela aparece isso:
Project ProjectCurso.exe raised exception class EStackOverflow
with message ´Stack overflow´. Process stopped. Use Step or Run to continue
Só falta essa tela!!
Valeu a força!!
JR.
GOSTEI 0
Tnaires
29/07/2004
Um dia desses, estava tendo um erro igual qdo descobri q um DataSet meu estava com o caminho pro BD errado.
Tente verificar o caminho do banco pro qual esse DataSet tá apontando... Se estiiver tudo OK, exclua e faça d novo...
Tente verificar o caminho do banco pro qual esse DataSet tá apontando... Se estiiver tudo OK, exclua e faça d novo...
GOSTEI 0
Jrjoliv2003
29/07/2004
Tudo certivo.
Quando abro o from que aí será aberto a table, aparece essa mensagem:
Project ProjectCurso.exe raised exception class EStackOverflow
with message ´Stack overflow´. Process stopped. Use Step or Run to continue.
Não sei o q fazer...
Valeu força!!!
JR.
Quando abro o from que aí será aberto a table, aparece essa mensagem:
Project ProjectCurso.exe raised exception class EStackOverflow
with message ´Stack overflow´. Process stopped. Use Step or Run to continue.
Não sei o q fazer...
Valeu força!!!
JR.
GOSTEI 0
Tnaires
29/07/2004
Definitivamente, cara, não sei qual é o problema...
Vc executou o programa passo-a-passo, como a galera sugeriu? Qual a instrução q deu erro?
Vc executou o programa passo-a-passo, como a galera sugeriu? Qual a instrução q deu erro?
GOSTEI 0
Jrjoliv2003
29/07/2004
Esse erro aparece quando eu abro o formulário. Ao abrir o formulário ele abre a tabela. Com isso o erro aparece. Já troquei até o componente, mas nada muda.
Valeu a força!!!
JR.
Valeu a força!!!
JR.
GOSTEI 0