Lookup com três tabelas

Delphi

29/07/2004

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

Curtidas 0

Respostas

Tnaires

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


GOSTEI 0
Jrjoliv2003

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.


GOSTEI 0
Tnaires

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

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.


GOSTEI 0
Jrjoliv2003

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.


GOSTEI 0
G1b4

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

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.


GOSTEI 0
G1b4

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.


GOSTEI 0
Jrjoliv2003

Jrjoliv2003

29/07/2004

Valeu!!!

Vou tentar fazer..

Qualquer resultado respond.

JR.


GOSTEI 0
Jrjoliv2003

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.


GOSTEI 0
Jrjoliv2003

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.


GOSTEI 0
Vanius

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


GOSTEI 0
Jrjoliv2003

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.


GOSTEI 0
Tnaires

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?


GOSTEI 0
Jrjoliv2003

Jrjoliv2003

29/07/2004

data é o Data Module.

JR.


GOSTEI 0
Jrjoliv2003

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.


GOSTEI 0
Jrjoliv2003

Jrjoliv2003

29/07/2004

Ninguém tem idéia?

Tô precisando muito!!!


JR.


GOSTEI 0
Jrjoliv2003

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.


GOSTEI 0
Tnaires

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...


GOSTEI 0
Jrjoliv2003

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.


GOSTEI 0
Tnaires

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?


GOSTEI 0
Jrjoliv2003

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.


GOSTEI 0
POSTAR