EvertonLuiz Postado Agosto 6, 2012 Denunciar Share Postado Agosto 6, 2012 (editado) Bom dia!Sou novo na arte de programar e estou me arriscando no VBAEstou tentando montar um formulário de consulta, com base em informações de um BD do Access (2010).Mas encontrei dificuldade para montar uma variávelDentro do meu form, tenho duas ComboBox. A combo 1(ComboBoxEntidade) seleciona a Região, e com base na escolha da combo 1, a combo 2 (ComboBoxMunicipio)mostra as cidades.Isso funcionou bemPorem, na hora de pesquisar e carregar as informações, com base na escolha, não consigo inserir variáveis.Estou tentando assim:'Função PesquisarFunction Pesquisar()Dim SQL As String If ComboBoxEntidade.Text = "SUL" Then SQL = "SELECT * FROM LOGIN_SUL WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'" AbreConsulta SQL Else If ComboBoxEntidade.Text = "NORTE" Then SQL = "SELECT * FROM LOGIN_NORTE WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'" AbreConsulta SQL Else If ComboBoxEntidade.Text = "OESTE" Then SQL = "SELECT * FROM LOGIN_OESTE WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'" AbreConsulta SQL If vRec.RecordCount = 0 Then MsgBox "MUNICIPIO NÃO ENCONTRADO!" Else txtMunicipio.Text = Trim(vRec!MUNICIPIO) & "" txtVencimento.Text = Trim(vRec!VENCIMENTO) & "" TextContato.Text = Trim(vRec!CONTATO) & "" TextTelefone.Text = Trim(vRec!TELEFONE) & "" TextEmail.Text = Trim(vRec!Email) & "" TextEndereçoEletronico.Text = Trim(vRec!ENDEREÇO_ELETRONICO) & "" TextLogin.Text = Trim(vRec!LOGIN) & "" TextSenha.Text = Trim(vRec!SENHA) & "" TextDForma.Text = Trim(vRec!FORMA) & "" TextOutro.Text = Trim(vRec!OBSERVAÇÃO) & "" End If End If End Function' Botão PesquisarPrivate Sub cmdPesquisar_Click() Call Pesquisar End SubNeste caso, ele só esta carregando as informações da variável “OESTE”.Será que alguém pode me ajudar??Obrigado Editado Agosto 8, 2012 por EvertonLuiz Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Danleonhart Postado Agosto 8, 2012 Denunciar Share Postado Agosto 8, 2012 Você está programando na IDE Visual Basic 6.0 ou está utilizando o Editor VBA do Excel ?Se for na IDE aqui vai minha opinião: Acho que para sua função seria interessante utilizar o "Select Case" ao invés do "If Else"...sem falar que você está usando o If Else errado... Seria mais ou menos assim com o "Select Case":'Função Pesquisar Function Pesquisar() Dim SQL As String Dim v_Region As String ' Aloco na variável "v_Region" o conteúdo escolhido na ComboBox: v_Region = ComboBoxEntidade.Text ' Inicio a rotina de decisão "Select Case" (Selecione Caso...) Select Case v_Region ' Caso seja SUL: Case "SUL" SQL = "SELECT * FROM LOGIN_SUL WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'" ' Caso seja NORTE: Case "NORTE" SQL = "SELECT * FROM LOGIN_NORTE WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'" ' Caso seja OESTE: Case "OESTE" SQL = "SELECT * FROM LOGIN_OESTE WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'" End Select ' Aqui a consulta é aberta segundo a decisão tomada no "Select": AbreConsulta SQL If vRec.RecordCount = 0 Then MsgBox "MUNICIPIO NÃO ENCONTRADO!" Exit Function Else txtMunicipio.Text = Trim(vRec!MUNICIPIO) & "" txtVencimento.Text = Trim(vRec!VENCIMENTO) & "" TextContato.Text = Trim(vRec!CONTATO) & "" TextTelefone.Text = Trim(vRec!TELEFONE) & "" TextEmail.Text = Trim(vRec!Email) & "" TextEndereçoEletronico.Text = Trim(vRec!ENDEREÇO_ELETRONICO) & "" TextLogin.Text = Trim(vRec!LOGIN) & "" TextSenha.Text = Trim(vRec!SENHA) & "" TextDForma.Text = Trim(vRec!FORMA) & "" TextOutro.Text = Trim(vRec!OBSERVAÇÃO) & "" End If End Function ' Botão Pesquisar Private Sub cmdPesquisar_Click() Call Pesquisar End Sub Usando o "If Else" fica assim: 'Função Pesquisar Function Pesquisar() Dim SQL As String If ComboBoxEntidade.Text = "SUL" Then SQL = "SELECT * FROM LOGIN_SUL WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'" ElseIf ComboBoxEntidade.Text = "NORTE" Then SQL = "SELECT * FROM LOGIN_NORTE WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'" ElseIf ComboBoxEntidade.Text = "OESTE" Then SQL = "SELECT * FROM LOGIN_OESTE WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'" End If AbreConsulta SQL If vRec.RecordCount = 0 Then MsgBox "MUNICIPIO NÃO ENCONTRADO!", vbExclamation Else txtMunicipio.Text = Trim(vRec!MUNICIPIO) & "" txtVencimento.Text = Trim(vRec!VENCIMENTO) & "" TextContato.Text = Trim(vRec!CONTATO) & "" TextTelefone.Text = Trim(vRec!TELEFONE) & "" TextEmail.Text = Trim(vRec!Email) & "" TextEndereçoEletronico.Text = Trim(vRec!ENDEREÇO_ELETRONICO) & "" TextLogin.Text = Trim(vRec!LOGIN) & "" TextSenha.Text = Trim(vRec!SENHA) & "" TextDForma.Text = Trim(vRec!FORMA) & "" TextOutro.Text = Trim(vRec!OBSERVAÇÃO) & "" End If End Function ' Botão Pesquisar Private Sub cmdPesquisar_Click() Call Pesquisar End Sub Beleza ?! Testa aí ver se tá funcionando...Só um detalhe...para facilitar a leitura do seu código, utilize a tag "CODE".Ela é a última opção da caixa de ferramentas que fica disponível logo acima. VALEU ! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 EvertonLuiz Postado Agosto 8, 2012 Autor Denunciar Share Postado Agosto 8, 2012 Cara,estou usando o Editor VBA do Excel!!Utilizei o code com o If que sugeriu e funcionou perfeitamente!Muito obrigado pelas dicas! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
EvertonLuiz
Bom dia!
Sou novo na arte de programar e estou me arriscando no VBA
Estou tentando montar um formulário de consulta, com base em informações de um BD do Access (2010).
Mas encontrei dificuldade para montar uma variável
Dentro do meu form, tenho duas ComboBox.
A combo 1(ComboBoxEntidade) seleciona a Região, e com base na escolha da combo 1, a combo 2 (ComboBoxMunicipio)mostra as cidades.
Isso funcionou bem
Porem, na hora de pesquisar e carregar as informações, com base na escolha, não consigo inserir variáveis.
Estou tentando assim:
'Função Pesquisar
Function Pesquisar()
Dim SQL As String
If ComboBoxEntidade.Text = "SUL" Then
SQL = "SELECT * FROM LOGIN_SUL WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'"
AbreConsulta SQL
Else
If ComboBoxEntidade.Text = "NORTE" Then
SQL = "SELECT * FROM LOGIN_NORTE WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'"
AbreConsulta SQL
Else
If ComboBoxEntidade.Text = "OESTE" Then
SQL = "SELECT * FROM LOGIN_OESTE WHERE MUNICIPIO = '" & ComboBoxMunicipio.Text & "'"
AbreConsulta SQL
If vRec.RecordCount = 0 Then
MsgBox "MUNICIPIO NÃO ENCONTRADO!"
Else
txtMunicipio.Text = Trim(vRec!MUNICIPIO) & ""
txtVencimento.Text = Trim(vRec!VENCIMENTO) & ""
TextContato.Text = Trim(vRec!CONTATO) & ""
TextTelefone.Text = Trim(vRec!TELEFONE) & ""
TextEmail.Text = Trim(vRec!Email) & ""
TextEndereçoEletronico.Text = Trim(vRec!ENDEREÇO_ELETRONICO) & ""
TextLogin.Text = Trim(vRec!LOGIN) & ""
TextSenha.Text = Trim(vRec!SENHA) & ""
TextDForma.Text = Trim(vRec!FORMA) & ""
TextOutro.Text = Trim(vRec!OBSERVAÇÃO) & ""
End If
End If
End Function
' Botão Pesquisar
Private Sub cmdPesquisar_Click()
Call Pesquisar
End Sub
Neste caso, ele só esta carregando as informações da variável “OESTE”.
Será que alguém pode me ajudar??
Obrigado
Editado por EvertonLuizLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.