Ir para conteúdo
Fórum Script Brasil
  • 0

2 Lookupcombobox Interligados


Guest - Carla -

Pergunta

Guest - Carla -

Pessoal ,como posso fazer para que um lookupcombobox esteja interligado com outro?

Suponham que a tabela seja assim:

Nome

Id_Nome Nome

1 Maria

1 João

2 Pedro

Idade

Id_Idade Id_Nome Idade

1 1 12

2 1 14

3 2 15

No 1º lookup eu exibo todos os nomes. No 2º quero exibir só as Idades que forem iguais ao id do nome escolhido anteriormente. Tentei fazer algo do tipo:

qryTrator.Active := False;

qryTrator.SQL.Clear;

qryTrator.SQL.Add('Select Cod_Trator from Tipo_Trator where TipoTrator like "%'+ cbTrator.Text + '%" ');

qryTrator.Active := True;

Cod_Trator:= qryTrator.FieldByName('Cod_Trator').Value;

//Aqui tentei colocando com dbcombobox

qryMarca.close;

qryMarca.SQL.Clear;

qryMarca.SQL.Add('Select Marca from Marca where CodMarca like "%'+ Cod_Trator + '%"');

qryMarca.ExecSQL;

qryMarca.Active := True;

Marca:= qryMarca.FieldByName('Marca').Value;

cbMarca.Items.Text := Marca;

Mas desta forma ele não funciona, ele exibe todos da tabela(no caso do exemplo acima, todas idades). Preciso mudar algo na tabela? Ou no código.

Por favor me ajudem!

Obrigada

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Não seria + fácil colocar isso em uma grid ???? e cruzar as informações ??

De qualquer forma você pode fazer em sua tabela um compo lookup... e colocar ele em seu segundo combo...clique como botão direito em sua table filds editor... depois em new field coloque o nome do novo campo, o tipo selecione lookup e assim vai.... qualquer dúvida posta ai..

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Carla,

Eu num sei o que tem haver as tabela Nome e Idade com Trator e Marca, mas respondendo essa sua pergunta: ('No 1º lookup eu exibo todos os nomes. No 2º quero exibir só as Idades que forem iguais ao id do nome escolhido anteriormente') ficaria assim:

use essa select pra tabela Nome:

QryNome.Close;
QryNome.Sql.Clear;
QryNome.Sql.Add('Select * From Nome'); //Dessa forma ira exibir todos os nomes
QryNome.Open;
e no OnChange do dblookupcombobox; assim:
idNome := QryNome.FieldByName('Id_Nome').Value;

QryIdade.Close;
QryIdade.Sql.Clear;
QryIdade.Sql.Add('Select * From Idade Where Id_Nome = '+#39+idNome+#39');
QryIdade.Open;

Abs. Progr'amador.

Link para o comentário
Compartilhar em outros sites

  • 0

Programador, fiz do jeito que você falou, mas não mudou em nada. Vê se fiz certo:

Esse 1º cod coloquei no on click do 1º combo

QryNome.Close;

QryNome.Sql.Clear;

QryNome.Sql.Add('Select * From Nome'); //Dessa forma ira exibir todos os nomes

QryNome.Open;

Esse coloquei no on exit do 1º combo, não tem on change, mas o segundo não muda em nada. Aparece todos os campos...

idNome := QryNome.FieldByName('Id_Nome').Value;

QryIdade.Close;

QryIdade.Sql.Clear;

QryIdade.Sql.Add('Select * From Idade Where Id_Nome = '+#39+idNome+#39');

QryIdade.Open;

Link para o comentário
Compartilhar em outros sites

  • 0

Ops! unsure.gif

tem um erro ae, tira a ultima aspa da select, deixe-a assim:

QryIdade.Close;

QryIdade.Sql.Clear;

QryIdade.Sql.Add('Select * From Idade Where Id_Nome = '+#39+idNome+#39);

QryIdade.Open;

Outra coisa, a abertura da primeira quere não pode ser no combo, coloca no OnShow do form e o código acima você coloca no OnClick do 1º Combo.

posta ae o os campos de sua tabela trator e marca, e quais os campos que fazem referencia.

Abs. Progr'amador. wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Mesmo assim, não muda nada. Acho que a tabela é que tá errada.

Tenho 3 tabelas. ex.:

Tipo_Trator

CodTrator Tipo

1 Esteira

2 Pás-Carregaderas

...

Marca

CodMarca CodTrator Marca

1 1 X

2 1 Y

3 2 Z

Modelo

CodMarca CodTrator Modelo

1 1 A

1 2 B

2 1 C

Só que nenhuma delas está relacionada. Não tem chave estrangeira, nem chave primária. Será que é por isso? eu só comparo os campos iguais, como o CodTrator... Como devo fazer?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...