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

    [Resolvido]ALTERAR FORMATO VIA VBA

    Compartilhe

    wmantovani
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    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
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2807
    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 : 119
    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" &

    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2807
    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 : 119
    Registrado : 06/09/2011

    Re: [Resolvido]ALTERAR FORMATO VIA VBA

    Mensagem  wmantovani em Ter 01 Dez 2015, 17:48

    São fixos,
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2807
    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 : 119
    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
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2807
    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 : 119
    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 : 119
    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
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2807
    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: Seg 18 Dez 2017, 06:46