Ir ao conteúdo
  • Cadastre-se

Caixa de combinação - Acess


Ir à solução Resolvido por Gersonl,

Posts recomendados

Bom dia galera, sou iniciante em Access 2007 e meu problema é o seguinte.

Criei um formulário de pesquisa filtrada. Primeiramente eu seleciono em uma caixa de combinação o campo que vou pesquisar. Feito isso a caixa de texto é ativada e passo a digitar o que eu quero buscar. Porém preciso que ao selecionar o valor na caixa de combinação eu altere o critério de busca da caixa de listagem.

Desse modo se eu selecionar Nome, ele vai lá na caixa de listagem / Origem da linha e coloca o código com os critérios da busca.
Acredito que isso não seja difícil, porém ainda não sei fazer. Alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...
  • Solução

Então galera eu consegui resolver, então vou postar aqui, caso alguém queira.

Eu inicio o formulário com a Caixa de Texto, onde será digitada a pesquisa, bloqueada.
A pessoa seleciona na Caixa de Combinação o campo que deseja. E nas propriedades da Caixa de Combinação, Evento, Ao alterar eu escrevo o seguinte código:
 

Comb_Pesquisa.SetFocus
 
If Comb_Pesquisa.Text = "Nome" Then
Lista0.RowSource = "Consulta_Nome"
Me.Comando8.Enabled = True
Me.Txt_Pesquisa.Enabled = True
Txt_Pesquisa.SetFocus
ElseIf Comb_Pesquisa.Text = "Gerador" Then
Lista0.RowSource = "Consulta_Gerador"
Me.Comando8.Enabled = True
Me.Txt_Pesquisa.Enabled = True
Txt_Pesquisa.SetFocus
ElseIf Comb_Pesquisa.Text = "Embalagem" Then
Lista0.RowSource = "Consulta_Embalagem"
Me.Comando8.Enabled = True
Me.Txt_Pesquisa.Enabled = True
Txt_Pesquisa.SetFocus
End If

Como podem ver eu fiz um "if" em que dependendo do que é selecionado (Nome, Gerador ou Embalagem) o código altera a Origem da Linha (RowSouce) da Caixa de listagem. Para isso eu criei 3 Consultas diferentes (Consulta_Nome, Consulta_Gerador, Consulta_Embalagem).

Nas Consultas eu coloquei no modo SQL e montei um código que faria a pesquisa de acordo com o que eu digitasse na Caixa de Texto. Segue um dos códigos:

 

SELECT TabU.id_TabU,

                 Embalagem.Tipo_Embalagem AS Embalagem,

                 TabU.Nome_TabU AS Nome,

                 Gerador.Nome_Gerador AS Gerador,

                 TipoTabU.Descricao_TipoTabU AS Tipo,

                 TabU.Tratamento_TabU AS Tratado,
                 TabU.Massa_TabU AS Massa,
                 TabU.Volume_TabU AS Volume,

                 TabU.Qtd_TabU AS Qtd

FROM TipoTabU INNER JOIN (Gerador INNER JOIN (Embalagem INNER JOIN TabU ON Embalagem.id_Embalagem=TabU.Embalagem_TabU) ON Gerador.id_Gerador=TabU.Gerador_TabU) ON TipoTabU.id_TipoTabU=TabU.Tipo_TabU
WHERE (((Embalagem.Tipo_Embalagem) Like [Formulários]![Frm_PesquisaTot]![Txt_Pesquisa] & "*"))
ORDER BY Embalagem.Tipo_Embalagem;

O diferencial do código está no "Where". Depois disso basta ir na Caixa de Texto do Formulário, Propriedades, Evento, Ao alterar e colocar o seguinte código:
 

Me.Refresh
SendKeys "{f2}"
 
Que servem para atualizar instantaneamente a Caixa de Listagem e colocar o indicador na última letra da Caixa de Texto respectivamente.

E é isso, qualquer dúvida podem perguntar.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...