MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


2 participantes

    [Resolvido]Modulo de busca de CEP dando erro

    avatar
    MMousinho
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 02/08/2016

    [Resolvido]Modulo de busca de CEP dando erro Empty [Resolvido]Modulo de busca de CEP dando erro

    Mensagem  MMousinho 29/6/2017, 14:05

    Boa tarde, sou novo em access e desenvolvo com video aulas e estou aprendendo bem.

    Estou tentando implantar um sistema que busca cep pelo correio mais esta dando erro conforme abaixo no modulo temos a seguinte codificação...





    Option Compare Database

    Option Explicit
    #If VBA7 Then
    Private Declare PtrSafe Sub sapiSleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long) 'Para rodar em 64Bits
    #Else
    Private Declare PtrSafe Sub sapiSleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long) 'Para rodar em 32Bits
    #End If

    Function aguardar(ByRef ObjIe As Object, tempo As Integer)
    With ObjIe
    Do Until Not .Busy And .ReadyState = READYSTATE_COMPLETE
    Debug.Print tempo
    Debug.Print .Busy
    Debug.Print .ReadyState
    DoEvents
    Loop
    End With
    Call sSleep(100)
    End Function

    '***************** Code Start *******************
    ' This code was originally written by Dev Ashish.
    ' It is not to be altered or distributed,
    ' except as part of an application.
    ' You are free to use it in any application,
    ' provided the copyright notice is left unchanged.
    '
    ' Code Courtesy of
    ' Dev Ashish
    '


    Sub sSleep(lngMilliSec As Long)
    If lngMilliSec > 0 Then
    Call sapiSleep(lngMilliSec)
    End If
    End Sub

    Sub sTestSleep()
    Const cTIME = 1000 'in MilliSeconds
    Call sSleep(cTIME)
    MsgBox "Before this Msgbox, I was asleep for " _
    & cTIME & " Milliseconds."
    End Sub
    '***************** Code End *********************


    Peguei o modelo com Rafael neste forum...e temos a segunte codificação no formulario...





    'Sistema para buscar CEP direto no site dos correios online.
    'Desenvolvido por Rafael Teixeira Coelho - rtcoelho no fórum maximoaccess
    'Versão 1.0

    Private Sub cep_AfterUpdate()

    Dim todotexto, inicio, fim, incremento, cidade_est

    'Exibe o objeto do IE
    Me.ie.Visible = True

    'Navega até o site dos Correios mobile
    Me.ie.Navigate "http://m.correios.com.br/movel/buscaCepConfirma.do"

    'Move o foco para o objeto
    Me.ie.SetFocus

    'Aguardo até que a página esteja totalmente carregada
    Call aguardar(ie, 1)

    'Seta variavel html com a classe mais comum do objeto
    Set html = Me.ie.Document

    'Localiza no site dos correios o campo do CEP e injeta
    html.all("cepEntrada").Value = cep

    'Depois do CEP injetado fazemos a busca
    html.getElementsByTagName("input")(3).Click

    'Executa função que aguarda que a página esteja totalmente carregada
    Call aguardar(ie, 1)

    'Como o site dos correios usa ajax para fazer a consulta, se não gerarmos um evento antes de pegar os dados, teremos um erro
    'Mais detalhes em: http://maximoaccess.forumeiros.com/post?t=13087
    'Então, já que terei que fazer este evento, resolvi fazer uma confirmação do CEP digitado
    pergunta = MsgBox("O CEP informado " & cep & " está correto?", vbYesNo)

    'Caso a resposta seja sim, vamos pegar no site dos correios o que nos interessa
    If pergunta = 6 Then

    'Pegamos o html da página
    todotexto = html.DocumentElement.outerHTML

    'Vamos usar um incremento para nos auxiliar na busca dos dados
    incremento = 0

    'Lemos o html da página e pegamos o endereço
    todotexto = Right(todotexto, Len(todotexto) - incremento)

    'Aqui verificamos se ocorreu algum erro no código por cep inválido
    If InStr(todotexto, "
    ") = 0 Then

    'Pegamos a posição da primeira ocorrência de resposta em todo texto que traz o endereço
    inicio = InStr(todotexto, "")

    'Pegamos a posição final da primeira ocorrência de resposta em todo texto que traz o endereço
    fim = InStr(todotexto, "

    ")

    'Somamos a quantidade de caracteres exedentes da primeira ocorrencia que é = 29
    inicio = inicio + 29

    'Fazemos o recorte do html conforme as posições informadas para obter o endereço e inserir no formulário
    endereco = Mid(todotexto, inicio, fim - inicio)

    'Definimos nova posição de incremento para auxiliar na busca dos dados
    incremento = fim

    'Lemos o html da página e pegamos o bairro
    todotexto = Right(todotexto, Len(todotexto) - incremento)

    'Pegamos a posição da segunda ocorrência de resposta em todo texto que traz o bairro
    inicio = InStr(todotexto, "")

    'Pegamos a posição final da segunda ocorrência de resposta em todo texto que traz o bairro
    fim = InStr(todotexto, "

    ")

    'Somamos a quantidade de caracteres exedentes da segunda ocorrencia que é = 29
    inicio = inicio + 29

    'Fazemos o recorte do html conforme as posições informadas para obter o bairro e inserir no formulário
    bairro = Mid(todotexto, inicio, fim - inicio)

    'Definimos nova posição de incremento para auxiliar na busca dos dados
    incremento = fim

    'Lemos o html da página e pegamos a cidade e o estado que estão juntos
    todotexto = Right(todotexto, Len(todotexto) - incremento)

    'Pegamos a posição da terceira ocorrência de resposta em todo texto que traz a cidade e o estado
    inicio = InStr(todotexto, "")

    'Pegamos a posição final da terceira ocorrência de resposta em todo texto que traz a cidade e o estado
    fim = InStr(todotexto, "

    ")

    'Somamos a quantidade de caracteres exedentes da terceira ocorrencia que é = 29
    inicio = inicio + 29

    'Em uma variavel, fazemos o recorte do html conforme as posições informadas para obter a cidade e o estado
    cidade_est = Mid(todotexto, inicio, fim - inicio)

    'Fazemos o recorte do html para separar a cidade que está junto com o estado e inserir no formulário
    cidade = Left(cidade_est, Len(cidade_est) - 5)

    'Fazemos o recorte do html para separar a cidade que está junto com o estado e inserir no formulário
    estado = Right(cidade_est, 3)

    Else

    'Se o CEP estiver errado, informamos
    MsgBox "CEP inválido, verifique e tente novamente."

    End If

    Else

    'Se clicar em não na confirmação do cep, limpamos o form do cep
    cep = ""

    End If

    'Limpamos
    Set html = Nothing

    'Movemos o foco para o campo CEP
    cep.SetFocus

    'Ocultamos o objeto do IE
    Me.ie.Visible = False

    End Sub




    Poderia me ajudar a implantar no meu sistema?

    em anexo mandei o sistema como esta sendo desenvolvido.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3190
    Registrado : 13/12/2016

    [Resolvido]Modulo de busca de CEP dando erro Empty Re: [Resolvido]Modulo de busca de CEP dando erro

    Mensagem  Alexandre Fim 29/6/2017, 15:18

    MMousinho boa tarde,

    Fiz um exemplo e já havia postado aqui anteriormente.

    Faça um teste.

    Espero ter ajudado.

    Att,

    Alexandre
    Anexos
    [Resolvido]Modulo de busca de CEP dando erro AttachmentBuscaCEPApiCorreios.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (38 Kb) Baixado 48 vez(es)
    avatar
    MMousinho
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 02/08/2016

    [Resolvido]Modulo de busca de CEP dando erro Empty Re: Modulo de busca de CEP dando erro

    Mensagem  MMousinho 29/6/2017, 15:32

    Man, Obrigado pela ajuda tão rápida...

    Mais mesmo que eu coloque ele no meu sistema continua dando erro, como proceder?

    Segue em anexo se quiser dar uma olhada no conteúdo.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3190
    Registrado : 13/12/2016

    [Resolvido]Modulo de busca de CEP dando erro Empty Re: [Resolvido]Modulo de busca de CEP dando erro

    Mensagem  Alexandre Fim 29/6/2017, 17:02

    Não veio o anexo...
    Favor postar...
    Grato
    avatar
    MMousinho
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 02/08/2016

    [Resolvido]Modulo de busca de CEP dando erro Empty RE:Modulo de busca de CEP dando erro

    Mensagem  MMousinho 29/6/2017, 18:09

    Segue.
    Anexos
    [Resolvido]Modulo de busca de CEP dando erro AttachmentSIS LOJAS MM.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (212 Kb) Baixado 13 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3190
    Registrado : 13/12/2016

    [Resolvido]Modulo de busca de CEP dando erro Empty Re: [Resolvido]Modulo de busca de CEP dando erro

    Mensagem  Alexandre Fim 30/6/2017, 09:13

    Mousinho,


    É necessário incluir a referência no menu:

    1 - Executar os comandos ALT+F11 para entrar no modo VBA
    2 - Em seguida vá no menu Ferramentas > Referências e marque a opção "Microsoft XML. v3.0"

    Pronto !!

    Boa sorte

    Abraço
    avatar
    MMousinho
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 02/08/2016

    [Resolvido]Modulo de busca de CEP dando erro Empty Re: Modulo de busca de CEP dando erro

    Mensagem  MMousinho 30/6/2017, 13:03

    Man, Obrigado.

    Quase pronto...

    Só falta eu conseguir salvar junto com o cadastro de clientes.

    Segue anexo do exemplo em anexo.

    Preencho o cadastro e quando coloco cep não salva tudo junto na mesma tabela!

    Consegue me ajudar?

    Desculpe, sou iniciante ainda.
    Anexos
    [Resolvido]Modulo de busca de CEP dando erro Attachmentexemplo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (257 Kb) Baixado 8 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3190
    Registrado : 13/12/2016

    [Resolvido]Modulo de busca de CEP dando erro Empty Re: [Resolvido]Modulo de busca de CEP dando erro

    Mensagem  Alexandre Fim 30/6/2017, 20:35

    Mousinho,

    Segue cadastro de clientes para sua verificação.

    O cadastro está com os campos acoplados à tabela, mas ele não salva à medida que vc vai digitando. Ele somente salva o registro ao clicar em Salvar. Desta forma evita o preenchimento acidental.

    No botão Salvar, criei uma função que verifica o correto preenchimento dos campos, porém, eu fiz de alguns campos somente, e fica a seu critério incluir outras validações que vc achar necessário. (Copie e cole a validação do campo "Nome" e mude para o campo que deseja verificar).

    Espero ter ajudado.

    Abraço
    Anexos
    [Resolvido]Modulo de busca de CEP dando erro AttachmentCadCliente.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (54 Kb) Baixado 26 vez(es)
    avatar
    MMousinho
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 02/08/2016

    [Resolvido]Modulo de busca de CEP dando erro Empty Re: Modulo de busca de CEP dando erro

    Mensagem  MMousinho 30/6/2017, 22:47

    Boa noite man...Obrigado pela ajuda...deu certo...esta do jeito que eu queria, agora só vou ajustar algumas coisas!!! cheers

    Se puder me dar uma força no Tópico "Busca dados de outra tabela" , estou sem resposta de ninguém la.

    Obrigado mesmo man...
    avatar
    MMousinho
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 02/08/2016

    [Resolvido]Modulo de busca de CEP dando erro Empty Re: Modulo de busca de CEP dando erro

    Mensagem  MMousinho 1/7/2017, 17:34

    Alexandre, Olha ai o que fiz...da uma opinião...ficou bom?

    A tabela em que ajudou dei uma ajustada nela.
    avatar
    MMousinho
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 02/08/2016

    [Resolvido]Modulo de busca de CEP dando erro Empty Re: Modulo de busca de CEP dando erro

    Mensagem  MMousinho 1/7/2017, 17:35

    Segue o anexo.
    Anexos
    [Resolvido]Modulo de busca de CEP dando erro AttachmentSIS LOJAS MM.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (811 Kb) Baixado 14 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3190
    Registrado : 13/12/2016

    [Resolvido]Modulo de busca de CEP dando erro Empty Re: [Resolvido]Modulo de busca de CEP dando erro

    Mensagem  Alexandre Fim 3/7/2017, 16:38

    Fala ai MMousinho,

    Dei uma olhada no seu banco de dados, e seguem algumas sugestões:

    1 - Cadastro de cliente, para que seja mais completo, vc deve validar alguns campos necessários, como o endereço completo e etc. Ele está aceitando gravar somente o nome e o CPF.

    2 - Criar tela de pesquisa de clientes.

    3 - Cadastro de Cliente - fazer uma busca do CPF informado na tela, antes de gravar o registro, caso o CPF informado já esteja cadastrado com outro cliente. O Access não irá permitir a gravação, pois o CPF é chave primária, porém, neste caso, no momento de gravar o registro, o sistema exibe a mensagem de "Registro gravado com sucesso", o que na verdade não foi gravado

    4 - Verificar os campos do tipo "Texto" de todas as tabelas, pois estão com tamanho 255 caracteres, o que é desnecessário, e isso atrapalha na hora de criar pesquisas utilizando esses campos, e também ocupa espaço em memória, deixando seus sistema lento.

    Mas de resto, ficou legal !!!

    Só precisa ver se vc vai disponibilizar essa ferramenta para algum cliente seu, porque existem algumas rotinas que bloqueia a estrutura do seu banco, para que ninguem mexa.

    Um abraço.
    avatar
    MMousinho
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 02/08/2016

    [Resolvido]Modulo de busca de CEP dando erro Empty Re: [Resolvido]Modulo de busca de CEP dando erro

    Mensagem  MMousinho 6/7/2017, 20:15

    Obrigado pelas sugestões , vou verificar. cheers

    Conteúdo patrocinado


    [Resolvido]Modulo de busca de CEP dando erro Empty Re: [Resolvido]Modulo de busca de CEP dando erro

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 13:04