none
Como usar um Combobox como lookup para outra tabela - Access RRS feed

  • Pergunta

  • É a típica situação em que uma tabela se relaciona com a outra por chave, e preciso vincula-las desta maneira, porém exibir na interface do usuário somente a descrição. 

    Eu criei o formulário no access,  substitui o textbox por um combo, criei uma consulta para o combo buscar os dados da outra tabela, vinculei a coluna 0(da chave primária da outra tabela) tudo parece perfeito.

    Porém, quando eu adiciono os registros, pareço obter o valor do listindex do combo(indexado em 0), e não o da primeira coluna, de modo que o valor gravado sempre é 1 unidade menor do que o que deveria.

    Parece ser um problema de configuração dos controles, porque tudo está perfeito, mas em lugar de vincular a coluna com os valores das chaves primárias, parece estar vinculando o listindex.

    Alguma dica? Agradeço desde já!


    sábado, 21 de julho de 2012 17:10

Respostas

  • O campo da Chave Primária é a coluna número 1. No entanto a numeração das colunas em VBA inicia em zero. Vamos lá saber porquê estas diferenças...

    Para aparecer apenas a descrição e sendo a descrição o segundo campo, deve colocar a propriedade Numero de colunas=2 e a Largura das colunas =0.

    Geralmente eu uso uma expressão SQL para indicar a origem das linhas nas combos, tipo:

    SELECT ID,Descricao FROM Tabela ORDER BY Descricao

    Assim eu sei que independente da ordem dos campos na tabela, estes dois campos irão aparecer nesta ordem e ordenados desta forma. Podendo mesmo fazer uma filtragem de linhas inserindo uma clausula WHERE.

    quinta-feira, 26 de julho de 2012 14:26

Todas as Respostas

  • O campo da Chave Primária é a coluna número 1. No entanto a numeração das colunas em VBA inicia em zero. Vamos lá saber porquê estas diferenças...

    Para aparecer apenas a descrição e sendo a descrição o segundo campo, deve colocar a propriedade Numero de colunas=2 e a Largura das colunas =0.

    Geralmente eu uso uma expressão SQL para indicar a origem das linhas nas combos, tipo:

    SELECT ID,Descricao FROM Tabela ORDER BY Descricao

    Assim eu sei que independente da ordem dos campos na tabela, estes dois campos irão aparecer nesta ordem e ordenados desta forma. Podendo mesmo fazer uma filtragem de linhas inserindo uma clausula WHERE.

    quinta-feira, 26 de julho de 2012 14:26
  • Obrigado Nando! 
    quinta-feira, 2 de agosto de 2012 19:44