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

    Contador de xml

    Compartilhe

    vaggnersf
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 30/07/2012

    Contador de xml

    Mensagem  vaggnersf em Ter 07 Out 2014, 18:07

    Pessoal, estou tentando complementar meu código, mais não estou conseguindo.

    Esse arquivo importa vários  xml para um único arquivo do Access e já crias as tabelas conforme o xml.

    Mais preciso que quando ele leve o primeiro xml coloque em uma coluna e também em todas as tabelas o número 1 daquele primeiro xml. Quando importa o segundo xml coloque o número 2 também em uma coluna e em todas as tabelas daquele segundo xml e assim para as demais xml.

    Como o xml separa uma nota fiscal em várias tabelas vou conseguir identificar por esse número de qual nota fiscal aquelas informações é, não importa em qual tabela estará.

    O que pensei neste caso seria um contador de xml no código, mais preciso da ajuda de vocês.
    Anexos
    XML Lote.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (125 Kb) Baixado 9 vez(es)

    Dilson
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1602
    Registrado : 11/11/2009

    Re: Contador de xml

    Mensagem  Dilson em Ter 14 Out 2014, 05:05

    Como não temos como interagir na ação acAppendData da importação XML. Uma maneira que pensei e testei foi a cada chamada de importação na função VerificaXML fazer um laço nas tabelas e percorrer os registros e, aqueles que estiverem em branco preencher pelo contador, assim:


    Function VerificaXML() As String
    Dim FSO, Diretorio As String, Pasta, Arquivo
    Dim dtData As Date, DtDataMax As Date
    Dim ArquivoMax As String
    Diretorio = CurrentProject.Path & "\XML_NFe noroeste entrada\"

    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set Pasta = FSO.GetFolder(Diretorio)

    Dim rs1 As Recordset
    Dim rs2 As Recordset
    Dim rs3 As Recordset
    Dim qNota As Integer
    Dim qContador As Integer
    qContador = 0

                       
       For Each Arquivo In Pasta.Files
           If Arquivo Like "*.xml" Then
               NomeXML = Diretorio & Arquivo.Name
               Call ImportaXML
               
               qContador = qContador + 1
               
               Set rs1 = CurrentDb.OpenRecordset("emit")
               Set rs2 = CurrentDb.OpenRecordset("Reference")
               Set rs3 = CurrentDb.OpenRecordset("COFINSAliq")
                       
               While (Not rs1.EOF)
               rs1.Edit
               If IsNull(rs1("Nota")) Then
               rs1("Nota") = qContador
               End If
               rs1.Update
               rs1.MoveNext
               Wend

               While (Not rs2.EOF)
               rs2.Edit
               If IsNull(rs2("Nota")) Then
               rs2("Nota") = qContador
               End If
               rs2.Update
               rs2.MoveNext
               Wend

               While (Not rs3.EOF)
               rs3.Edit
               If IsNull(rs3("Nota")) Then
               rs3("Nota") = qContador
               End If
               rs3.Update
               rs3.MoveNext
               Wend

           End If        
       Next
    rs1.Close
    rs2.Close
    rs3.Close

    End Function


    Crie um campo chamado "Nota" do tipo: Número (nas tabelas)
    Só fiz em três tabelas: "COFINSAliq", "emit" e "Reference". Se servir, copie e cole e adapte para as demais.


    .................................................................................
    Atenção:
    => Antes de implementar qualquer dica, faça um backup do seu projeto;
    => Retorne para marcar o Resolvido ou continuar a discussão;
    => Sempre realize pesquisas antes de postar uma pergunta;

    vaggnersf
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 30/07/2012

    Re: Contador de xml

    Mensagem  vaggnersf em Ter 14 Out 2014, 20:49

    Dilson, o codigo nao esta preenchendo com numero sequencial como deveria, esta apenas colocando zeros!

    Dilson
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1602
    Registrado : 11/11/2009

    Re: Contador de xml

    Mensagem  Dilson em Ter 14 Out 2014, 21:14

    Aqui funciona bem. Ele preenche os vazios com números sequenciais a cada importação.

    Verifique novamente. Copie e cole a função e substitua.


    .................................................................................
    Atenção:
    => Antes de implementar qualquer dica, faça um backup do seu projeto;
    => Retorne para marcar o Resolvido ou continuar a discussão;
    => Sempre realize pesquisas antes de postar uma pergunta;

    vaggnersf
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 30/07/2012

    Re: Contador de xml

    Mensagem  vaggnersf em Ter 14 Out 2014, 21:27

    Fiz todo o processo e nao deu certo, o que ele tem e um campo num onde o xml faz automatico uma numeraçao sequencial da tabela, agora o campo nota preenche com zeros

    Dilson
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1602
    Registrado : 11/11/2009

    Re: Contador de xml

    Mensagem  Dilson em Ter 14 Out 2014, 21:30

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


    .................................................................................
    Atenção:
    => Antes de implementar qualquer dica, faça um backup do seu projeto;
    => Retorne para marcar o Resolvido ou continuar a discussão;
    => Sempre realize pesquisas antes de postar uma pergunta;

    vaggnersf
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 30/07/2012

    Re: Contador de xml

    Mensagem  vaggnersf em Qua 15 Out 2014, 12:57

    Dílson, o campo que ele está colocando sequencial e o (num), esse o arquivo xml importa automático é não server para nada. Agora se criar o campo que você citou e rodar o código ele não preenche.

    Pode verificar que o arquivo que você postou não está com o campo (nota) criador.

    Mesmo criando ele não está preenchendo. Verifiquei que seu código está contando mais não esta preenchendo.
    Não sei o que fazer!

    Dilson
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1602
    Registrado : 11/11/2009

    Re: Contador de xml

    Mensagem  Dilson em Qua 15 Out 2014, 13:20

    Olá bom dia!

    Acabei de fazer o download do mesmo exemplo que postei ontem e funciona perfeitamente.

    Deve estar se confundindo em alguma coisa. veja que eu só fiz para três tabelas, que são: "COFINSAliq", "emit" e "Reference". Verifique nessas tabelas e veja que o campo Nota do tipo Número estará lá. Rode o arquivo e veja o resultado nessas tabelas que citei.

    Aguardamos.


    .................................................................................
    Atenção:
    => Antes de implementar qualquer dica, faça um backup do seu projeto;
    => Retorne para marcar o Resolvido ou continuar a discussão;
    => Sempre realize pesquisas antes de postar uma pergunta;

      Data/hora atual: Sab 03 Dez 2016, 04:39