bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Combobox/Listbox dependentes

... Assinatura do site por 1 ano + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$100,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


Combobox/Listbox dependentes

Antes de iniciar sua leitura, clique aqui e cadastre-se para receber comunicados sobre novos artigos.

Para se criar Combobox/Listbox dependentes é preciso que haja um campo comum entre as mesmas.  Como exemplo, observe na figura abaixo, o relacionamento entre as tabelas tblEstados e tblCidades, em que o campo comum é o idEstado.  Este campo, que é do tipo numeração automática, identifica de forma exclusiva, o Estado cadastrado.  Na tabela tblCidades, o campo idEstado permite identificar quais cidades pertencem a um determinado estado.

Usando Access - relacionamento Um para Muitos

Para melhor compreensão, imagine o primeiro cadastro na tabela tblEstados sendo a cidade de São Paulo.  O campo idEstado receberá automaticamente o número 1.  Ao lançar as cidades de São Paulo na tabela tblCidades, bastará indicar no campo IdEstado o valor 1 para associar que as cidades cadastradas  pertencem ao estado de São Paulo. 

Ao lançar a segunda cidade na tabela tblEstados, por exemplo - Rio de Janeiro, automaticamente idEstado receberá o número 2.  Ao acrescentar as cidade na tabela tblCidades, pertencentes ao estado do Rio de Janeiro, bastará informar o número 2.  Assim, teremos a seguinte lista de cadastros:

tblEstados:

1 | São Paulo

2 | Rio de Janeiro

tblCidades:

1 | Campinas

1 | Campos do Jordão

1 | São Caetano

2 | Duque de Caxias

2 | São Gonçalo

No exemplo fornecido, a primeira Combobox lista os estados e a segunda Combobox lista as cidades.  A segunda Combobox, que lista as cidades, será dependente da informação da primeira Combobox, ou seja, o usuário deverá selecionar o Estado para que a segunda Combobox liste apenas as cidades do estado selecionado. 

Ao selecionar o estado na primeira Combobox, temos a informação do campo idEstado, que identifica o Estado de forma exclusiva. 

O campo idEstado está oculto nas Combobox, pois não faz sentido para o usuário a visualização deste.  Usamos então, a técnica de esconder a coluna, conforme apresentado na Dica 47 acima.

Usando Access - combobox dependente

Usamos o evento Após atualizar da primeira Combobox para montagem da consulta, origem da segunda Combobox.  Para filtragem usamos o campo idEstado que é comum as duas tabelas e  assim sendo, podemos identificar de forma exclusiva as cidades pertencentes ao estado selecionado.  Observe bem, os comentários no código abaixo:

Private Sub cboEstado_AfterUpdate()
Dim strSql as string
'---------------------------------------------------------------------------
'Montando a consulta filtrada da segunda Combobox, que lista as cidades.
'Observe que a filtragem é feita pela campo idEstado, comum as duas tabelas.
'Observe que o campo idEstado da Combobox Estado está sendo extraído da
'primeira coluna, que começa do ZERO(0).
'A função nz() retorna o valor 0, caso não tenha sido selecionado o Estado
'na primeira Combobox e assim, a segunda Combobox, apresentará uma lista vazia.
'---------------------------------------------------------------------------
rSql = "SELECT idEstado,Cidade,População FROM tblCidades "
strSql = strSql & "WHERE idEstado = " & Nz(Me!cboEstado.Column(0), 0)
 
'----------------------------------------------------------------
'Carregando a consulta filtrada na Combobox que lista as cidades
Me!cboCidade.RowSource = strSql 
'----------------------------------------------------------------
Me!cboCidade.SetFocus 'Combobox das cidades recebe o foco
Me!cboCidade.Dropdown 'Abre automaticamente a lista

End Sub

Segue o arquivo exemplo para você praticar e estudar as linhas de código:

Bom estudo!


 

 


2 comentário(s)

Ferracine   16/02/2017 05:08:52

A dica é muito bacana, porém, estou tendo problemas no armazenamento de valor no campo, por exemplo, crei a tabela (folha de dados) onde nessa tabela as combos com os mesmos nomes do exemplo e colunas, meu objetivo é armazenar vários registros. No primeiro registro da certo quando seleciono Estado e Cidade, mas nos próximos registros da tabela o negócio fica maluco, eu seleciono o Estado de SP e ele me retorna a lista normal das cidades, e quando seleciono uma cidade de SP ele armazena uma cidade do RJ. O que eu fiz de errado?

Ferracine   16/02/2017 05:10:58

A dica é muito bacana, porém, estou tendo problemas no armazenamento de valor no campo, por exemplo, crei a tabela tblITENS (folha de dados) onde nessa tabela criei as combos com os mesmos nomes do exemplo e colunas, meu objetivo é armazenar vários registros. No primeiro registro da certo quando seleciono Estado e Cidade, mas nos próximos registros da tabela o negócio fica maluco, eu seleciono o Estado de SP e ele me retorna a lista normal das cidades, e quando seleciono uma cidade de SP ele armazena uma cidade do RJ. O que eu fiz de errado?


Envie seu comentário: