Ir ao conteúdo
  • Cadastre-se
Gersonl

RESOLVIDO Caixa de combinação - Acess

Recommended Posts

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?

Editado por Gersonl

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.
Editado por Gersonl

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×