MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]ALTERAR FORMATO VIA VBA

    Compartilhe

    wmantovani
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 06/09/2011

    [Resolvido]ALTERAR FORMATO VIA VBA

    Mensagem  wmantovani em Ter 01 Dez 2015, 16:34

    Boa tarde a todos, tenho um código VBA que o pessoal daqui do forum me ajudou, o que ele faz na prática é pegar o CNAE com a descrição das atividades das empresas e apos consultar o site da receita federal e jogar numa tabela, acontece que justamente o campo que tem o numero do CNAE ele importa no seguinte formato por exemplo (84.11-6-00), preciso que ele importe no formato (8411-6/00). Mas nao estou conseguindo fazer isso pensei em um UPDATE apos a importação mas nao deu certo. Eis o codigo de importacao. Se alguem puder ajudar agradeço.
    Código:

    Dim elem
    Dim tbl
    Dim tr

    For Each elem In Me!WebBrowser4.Document.all
    DoCmd.SetWarnings False 'tirar avisos do acces
        If elem.tagName = "TABLE" Then
         Set tbl = elem
         If tbl.Rows.Length >= 1 Then
            Set tr = tbl.Rows(0)
            If tr.Cells.Length >= 1 Then
               If Not InStr(tbl.Rows(0).innertext, "REPÚBLICA FEDERATIVA DO BRASIL") > 0 Then
                                                               
                  If InStr(tr.Cells(0).innertext, "NOME EMPRESARIAL") > 0 Then
                  Me.RAZÃO_SOCIAL = WebBrowser4.Document.all.tags("b")(8).innertext
                  End If
                   
                  If InStr(tr.Cells(0).innertext, "NOME DE FANTASIA") > 0 Then
                  Me.NOME_FANTASIA = WebBrowser4.Document.all.tags("b")(9).innertext
                 
                  End If
                   If InStr(tr.Cells(0).innertext, "ATIVIDADE ECONÔMICA PRINCIPAL") > 0 Then
                   Me.CNAE = WebBrowser4.Document.all.tags("b")(10).innertext
                   Refresh
                   DoCmd.RunSQL "INSERT INTO [tblLicenciamentoCNAE] ( CNPJ, SERVIDOR, N_DOC, TIPO_DOC, D_SOLICITAÇÃO, CNAE,  DESCRIÇÃO, CNAE_PRINCIPAL )" & _
                   "SELECT [Formulários]![formLicenciamento]![CNPJ] AS CNPJ" & _
                   ",[Formulários]![formLicenciamento]![TEXTO180] AS SERVIDOR" & _
                   ",[Formulários]![formLicenciamento]![PROCESSO] AS N_DOC" & _
                   ",[Formulários]![formLicenciamento]![TEXTO83] AS TIPO_DOC" & _
                   ", DATE() AS D_SOLICITAÇÃO" & _
                   ",mid ([Formulários]![formLicenciamento]![CNAE], 1,10) AS CNAE" & _
                   ",mid ([Formulários]![formLicenciamento]![CNAE], 14) AS descrição" & _
                   ", ('SIM') AS CNAE_PRINCIPAL"
                   DoCmd.SetWarnings True 'recoloca avisos do access"
                   MsgBox "Atividade registrada com sucesso !"
               Refresh
                   End If
                   If InStr(tr.Cells(0).innertext, "ATIVIDADES ECONÔMICAS SECUNDÁRIAS") > 0 Then
                   Me.DESCRIÇÃO_AU = tbl.Rows(0).Cells(0).innertext
                   Dim j, k%
                   j = Split(Me!DESCRIÇÃO_AU, vbCrLf)
                   For k = 1 To UBound(j)
                   CurrentDb.Execute "INSERT INTO tblLicenciamentoCNAE (CNPJ ,CNAE , Descrição, SERVIDOR, D_SOLICITAÇÃO)" & _
                   "values ('" & Me.CNPJ & "', '" & Mid(j(k), 1, 10) & "', '" & Mid(j(k), 14) & "','" & Me.Texto180 & "',  '" & Date & "');"
               Refresh
               
               DoCmd.RunSQL "DELETE tblLicenciamentoCNAE.CNAE " & vbCrLf & _
               "FROM tblLicenciamentoCNAE " & vbCrLf & _
               "WHERE (((tblLicenciamentoCNAE.CNAE)=""Não inform""));"
               
               
               DoCmd.RunSQL "INSERT INTO [tblLicenciamento_Protocolos] ( CNPJ, LOG_SERVIDOR_LANÇAMENTO, n_doc, TIPO_DOC, D_SOLICITAÇÃO, LOG_DATA_LANÇAMENTO, ASSUNTO)" & _
                   "SELECT [Formulários]![formLicenciamento]![CNPJ] AS CNPJ" & _
                   ",[Formulários]![formLicenciamento]![TEXTO180] AS LOG_SERVIDOR_LANÇAMENTO" & _
                   ",[Formulários]![formLicenciamento]![PROCESSO] AS N_DOC" & _
                   ",[Formulários]![formLicenciamento]![TEXTO83] AS TIPO_DOC" & _
                   ",[Formulários]![formLicenciamento]![TEXTO0] AS D_SOLICITAÇÃO" & _
                   ",[Formulários]![formLicenciamento]![logdata] AS LOG_DATA_LANÇAMENTO" & _
                   ",('PROCESSO CAPA') AS ASSUNTO"
               Refresh
                 
                   
                   Next
                       
                       
                       End If
                   End If
                 End If
               End If
        End If
     Next
    Refresh
    Me.TIPO_DE_SOLICITAÇÃO.SetFocus
    End Sub

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2517
    Registrado : 29/06/2012

    Re: [Resolvido]ALTERAR FORMATO VIA VBA

    Mensagem  Noobezinho em Ter 01 Dez 2015, 17:19

    Montovani

    Como não conhecemos os nomes dos controles que está trabalhando,
    tanto na web como no teu aplicativo, "dê os nomes aos bois", precisamente
    qual variável/campo que recebe o CNAE neste formato (84.11-6-00) e em qual
    qual campo/variável deseja esse outro formato (8411-6/00).
    E assinale qual linha do código que passou ele captura esse dado.

    Obs.: Quando colar código na mensagem utilize o botão Code, da linha de botões logo acima do retângulo de digitação.
           Veja que fica mais fácil a visualização.

    Aguardamos ...


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    wmantovani
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 06/09/2011

    Re: [Resolvido]ALTERAR FORMATO VIA VBA

    Mensagem  wmantovani em Ter 01 Dez 2015, 17:29

    no código esta em:

    Me.CNAE = WebBrowser4.Document.all.tags("b")(10).innertext
    ...
    ...
    ",mid ([Formulários]![formLicenciamento]![CNAE], 1,10) AS CNAE" & _
    ",mid ([Formulários]![formLicenciamento]![CNAE], 14) AS descrição" &


    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2517
    Registrado : 29/06/2012

    Re: [Resolvido]ALTERAR FORMATO VIA VBA

    Mensagem  Noobezinho em Ter 01 Dez 2015, 17:41

    Outra pergunta:


    Essa numeração:

    ("84.11-6-00")

    os numéricos manterão as casas ou podem aumentar.

    exemplo: 84 pode passar de 100 ou mais ("100.11-6-00")

    idem para os outros números

    Vou atender cliente, depois vejo tua resposta.




    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    wmantovani
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 06/09/2011

    Re: [Resolvido]ALTERAR FORMATO VIA VBA

    Mensagem  wmantovani em Ter 01 Dez 2015, 17:48

    São fixos,

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2517
    Registrado : 29/06/2012

    Re: [Resolvido]ALTERAR FORMATO VIA VBA

    Mensagem  Noobezinho em Ter 01 Dez 2015, 21:22

    No teu código, declare a variável:

    Dim txtCNAE  as string


    Neste trecho do código adicione a parte em azul:

    If InStr(tr.Cells(0).innertext, "ATIVIDADE ECONÔMICA PRINCIPAL") > 0 Then

                  Me.CNAE = WebBrowser4.Document.all.tags("b")(10).innertext

                  txtCNAE =left(Me.CNAE,2) & mid(Me.CNAE,4,2) & "-" & replace(Right(Me.CNAE,4),"-","/")

                  Refresh


    Substitua no restante do código o Me.CNAE pela variável txtCNAE, onde precisa da nova formatação.

    [ ]'s


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    wmantovani
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 06/09/2011

    Re: [Resolvido]ALTERAR FORMATO VIA VBA

    Mensagem  wmantovani em Qua 02 Dez 2015, 11:32

    Caro Noobezinho, consegui em partes resolver o problema, fiz o seguinte:

    If InStr(tr.Cells(0).innertext, "ATIVIDADE ECONÔMICA PRINCIPAL") > 0 Then
    Me.CNAE = WebBrowser4.Document.all.tags("b")(10).innertext
    Me.CNAE = Left(Me.CNAE, 2) & Mid(Me.CNAE, 4, 2) & "-" & Mid(Me.CNAE, 7, 1) & "/" & Mid(Me.CNAE, 9, 2) & Mid(Me.CNAE, 10)
    ...
    ...
    ",mid ([Formulários]![formLicenciamento]![CNAE],1,9) AS CNAE" & _
    ",mid ([Formulários]![formLicenciamento]![CNAE],14) AS descrição" & _

    até aqui tudo bem, fez o que eu precisava, porem acabei esquecendo de um detalhe, quando um cnpj tem mais de um cnae ele roda essa outra parte do código:

    If InStr(tr.Cells(0).innertext, "ATIVIDADES ECONÔMICAS SECUNDÁRIAS") > 0 Then
    Me.DESCRIÇÃO_AU = tbl.Rows(0).Cells(0).innertext

    Dim j, k%
    j = Split(Me!DESCRIÇÃO_AU, vbCrLf)

    For k = 1 To UBound(j)

    CurrentDb.Execute "INSERT INTO tblLicenciamentoCNAE (CNPJ ,CNAE , Descrição, SERVIDOR, D_SOLICITAÇÃO)" & _
    "values ('" & Me.CNPJ & "', '" & Mid(j(k), 1, 10) & "', '" & Mid(j(k), 14) & "','" & Me.Texto180 & "', '" & Date & "');"
    Refresh

    DoCmd.RunSQL "DELETE tblLicenciamentoCNAE.CNAE " & vbCrLf & _
    "FROM tblLicenciamentoCNAE " & vbCrLf & _
    "WHERE (((tblLicenciamentoCNAE.CNAE)=""Não inform""));"







    DoCmd.RunSQL "INSERT INTO [tblLicenciamento_Protocolos] ( CNPJ, LOG_SERVIDOR_LANÇAMENTO, n_doc, TIPO_DOC, D_SOLICITAÇÃO, LOG_DATA_LANÇAMENTO, ASSUNTO)" & _
    "SELECT [Formulários]![formLicenciamento]![CNPJ] AS CNPJ" & _
    ",[Formulários]![formLicenciamento]![TEXTO180] AS LOG_SERVIDOR_LANÇAMENTO" & _
    ",[Formulários]![formLicenciamento]![PROCESSO] AS N_DOC" & _
    ",[Formulários]![formLicenciamento]![TEXTO83] AS TIPO_DOC" & _
    ",[Formulários]![formLicenciamento]![TEXTO0] AS D_SOLICITAÇÃO" & _
    ",[Formulários]![formLicenciamento]![logdata] AS LOG_DATA_LANÇAMENTO" & _
    ",('PROCESSO CAPA') AS ASSUNTO"
    Refresh

    o problema é que aqui eu nao to conseguindo aplicar o conceito que fiz no cnae principal.

    Obrigado por hora

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2517
    Registrado : 29/06/2012

    Re: [Resolvido]ALTERAR FORMATO VIA VBA

    Mensagem  Noobezinho em Qua 02 Dez 2015, 11:41

    Me.DESCRIÇÃO é número do outro CNAE?

    Mostre-me no código onde ele deverá estar já formatado como deseja.

    Essa linha do código:

    j = Split(Me!DESCRIÇÃO_AU, vbCrLf)

    É uma tentativa de formatar o segundo nº CNAE?

    Aguardo...


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    wmantovani
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 06/09/2011

    Re: [Resolvido]ALTERAR FORMATO VIA VBA

    Mensagem  wmantovani em Qua 02 Dez 2015, 11:59

    Sim, ele coloca em caixa de texto não acoplada os cnaes auxiliares, porem ele coloca no seguinte formato:

    61.90-6-01 - Provedores de acesso às redes de comunicações
    61.90-6-01 - Provedores de acesso às redes de comunicações

    preciso que ele faça o que fez o cnae primario o mesmo formato


    wmantovani
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 06/09/2011

    Re: [Resolvido]ALTERAR FORMATO VIA VBA

    Mensagem  wmantovani em Qua 02 Dez 2015, 12:48

    Caro Noobezinho, consegui resolver, acho que muito tempo vendo a mesma coisa a gente acaba viciando os olhos, taí o que fiz, agora ficou show de bolo, muito obrigado pela ajuda. Obrigado a voce e a este forum que sempre nos socorre. Valeu


    CurrentDb.Execute "INSERT INTO tblLicenciamentoCNAE (CNPJ ,CNAE , Descrição, SERVIDOR, D_SOLICITAÇÃO, TIPO_DOC, CNAE_PRINCIPAL)" & _
    "values ('" & Me.CNPJ & "', '" & Left(j(k), 2) & Mid(j(k), 4, 2) & "-" & Mid(j(k), 7, 1) & "/" & Mid(j(k), 9, 2) & " ' , '" & Mid(j(k), 14) & "','" & Me.Texto180 & "','" & Date & "','" & Texto83 & "','" & "não" & "');"
    Refresh

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2517
    Registrado : 29/06/2012

    Re: [Resolvido]ALTERAR FORMATO VIA VBA

    Mensagem  Noobezinho em Qua 02 Dez 2015, 12:55

    Que bom que solucionou!

    Valeu o retorno

    Boa sorte!


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

      Data/hora atual: Sab 10 Dez 2016, 12:39