Fórum Lookup com três tabelas #245005

29/07/2004

0

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.


Jrjoliv2003

Jrjoliv2003

Responder

Posts

30/07/2004

Tnaires

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


Responder

Gostei + 0

30/07/2004

Jrjoliv2003

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.


Responder

Gostei + 0

30/07/2004

Tnaires

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.


Responder

Gostei + 0

30/07/2004

Jrjoliv2003

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.


Responder

Gostei + 0

02/08/2004

Jrjoliv2003

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.


Responder

Gostei + 0

02/08/2004

G1b4

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: !!!


Responder

Gostei + 0

02/08/2004

Jrjoliv2003

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.


Responder

Gostei + 0

02/08/2004

G1b4

F7 -> debuga de linha em linha
F8 -> executa a rotina
Com isso aqui você vai achar onde tá o erro e tentar tratá-lo.


Responder

Gostei + 0

02/08/2004

Jrjoliv2003

Valeu!!!

Vou tentar fazer..

Qualquer resultado respond.

JR.


Responder

Gostei + 0

03/08/2004

Jrjoliv2003

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.


Responder

Gostei + 0

03/08/2004

Jrjoliv2003

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.


Responder

Gostei + 0

03/08/2004

Vanius

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


Responder

Gostei + 0

03/08/2004

Jrjoliv2003

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.


Responder

Gostei + 0

03/08/2004

Tnaires

Olá
´data´ é o form que contém o ibtset, correto? Vc já verificou se ele está criado qdo vc torna ibtset ativo?


Responder

Gostei + 0

03/08/2004

Jrjoliv2003

data é o Data Module.

JR.


Responder

Gostei + 0

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

Aceitar