MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Conceito Excel VBA para ser aplicado no Access

    Compartilhe

    Nill2013Br
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 20
    Registrado : 14/05/2013

    Conceito Excel VBA para ser aplicado no Access

    Mensagem  Nill2013Br em 19/3/2018, 01:43

    Pessoal

    Gostaria de saber se é possível aplicar o conceito do código abaixo que é para Excel em uma aplicação Access
    seguindo o mesmo estilo de busca só que em uma tabela. Já peguei alguns exemplos até aqui do fórum mas ainda não achei nada que me desse um ponto de partida de como iniciar meus estudos. Agradeço a atenção.

    Código:
    'Inclui referência ao Microsoft Internet Controls
    Sub lReferenciaIE()
        Dim ObRef
        On Error Resume Next

        ThisWorkbook.VBProject.References.AddFromGuid "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}", 1, 1
    End Sub

    Sub lsPesquisarCEPFaixa()
        'Inclui a referência se não houver
        lReferenciaIE
        
        Dim IE                  As InternetExplorer
        Dim lCidade             As String
        Dim lUF                 As String
        Dim lUltimaLinhaAtiva   As Long
        Dim lContador           As Long
        
        'Identifica a última célula ativa da lista
        lUltimaLinhaAtiva = Worksheets("Plan1").Cells(Worksheets("Plan1").Rows.Count, 1).End(xlUp).Row
        
        'Cria um objeto Internet Explorer
        Set IE = New InternetExplorer
            
        'Torna o objeto visível
        IE.Visible = True

        'Faz um loop por todas as linhas da planilha
        For lContador = 2 To lUltimaLinhaAtiva
            'Navega ao site dos correios
            IE.Navigate "http://www.buscacep.correios.com.br/sistemas/buscacep/buscaFaixaCep.cfm"
            
            'Identifica se a página já foi totalmente carregada
            While IE.ReadyState <> READYSTATE_COMPLETE
            Wend
            
            'Como a página possui JavaScript que cria os objetos que são preenchidos após a carga completa, é necessário
            'aguardar um tempo, coloquei 3 segundos, alterar conforme a necessidade.
            'Caso não tenha javascript na criação dos objetos da página comentar esta parte do código, pois será bem
            'mais rápida a execução.
            sng = Timer
            Do While sng + 3 > Timer
            Loop
            
            'Carrega os dados de cidade e UF que serão preenchidos na página
            lCidade = Range("B" & lContador).Value
            lUF = Range("A" & lContador).Value
            
            'Carrega os dados de cidade e UF na página e submente os dados do formulário
            IE.Document.all("Localidade").innertext = lCidade
            IE.Document.all("UF").Value = lUF
            IE.Document.forms("Geral").submit
          
            'Identifica se a página já foi totalmente carregada
            While IE.ReadyState <> READYSTATE_COMPLETE
            Wend

            'Como a página possui JavaScript que cria os objetos que são preenchidos após a carga completa, é necessário
            'aguardar um tempo, coloquei 3 segundos, alterar conforme a necessidade.
            'Caso não tenha javascript na criação dos objetos da página comentar esta parte do código, pois será bem
            'mais rápida a execução.
            sng = Timer
            Do While sng + 3 > Timer
            Loop
          
            'Faz um loop pelos objetos do tipo table na página e procura pelo campo Faixa(s) de CEP: preenchido.
            'Em seguida busca pela segunda coluna da linha de faixa de CEP e armazena esta informação diretamente na coluna C da linha
            'da planilha
            For Each i In IE.Document.body.getElementsByTagName("table")
                If InStr(i.innertext, "Faixa de CEP") > 0 Then
                    For Each l In i.getElementsByTagName("tr")
                        If InStr(l.innertext, lCidade) Then
                            Range("C" & lContador).Value = l.getElementsByTagName("td")(1).innertext
                        End If
                    Next l
                End If
            Next i
        Next lContador
        
        MsgBox "Concluído!"
    End Sub
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5590
    Registrado : 15/03/2013

    Re: Conceito Excel VBA para ser aplicado no Access

    Mensagem  ahteixeira em 19/3/2018, 12:25

    Olá Nilton,

    Veja se isto ajuda:
    [Você precisa estar registrado e conectado para ver este link.]

    Não se esqueça da "Busca" aqui do fórum, veja como fazer:
    [Você precisa estar registrado e conectado para ver este link.]

    Abraço

    Nill2013Br
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 20
    Registrado : 14/05/2013

    Re: Conceito Excel VBA para ser aplicado no Access

    Mensagem  Nill2013Br em 19/3/2018, 17:11

    ahteixeira

    Deu erro de compilação no arquivo que você me indicou. Meu pc é de 64 bits.
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5590
    Registrado : 15/03/2013

    Re: Conceito Excel VBA para ser aplicado no Access

    Mensagem  ahteixeira em 22/3/2018, 15:14

    Olá Nilton,

    Acho que compreendi mal a questão, pensei que era um problema de Referências no VBE
    Para consulta do CEP, não falta exemplos no fórum, efetue uma "Busca" aqui no fórum, como referi na mensagem anteriror, coloque na caixa busca cep

    Relativamente a não funcionar a regra é a mesma uma Busca no fórum, mas veja por exemplo tópico abaixo:
    [Você precisa estar registrado e conectado para ver este link.]

    Nota: O windows pode ser a 64bit, mas creio que o seu Office (Access), também seja a versão 64-Bit.
    Na "Ajuda" mostra a versão, mas também existe base de dados a mostrar, veja tópico abaixo:
    [Você precisa estar registrado e conectado para ver este link.]

    Abraço

      Data/hora atual: 18/11/2018, 19:12