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]Importação XML de guias.

    Compartilhe

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Sex 19 Dez - 11:44

    Pessoal, boa tarde,

    Preciso de indicação para fazer um orçamento de um código para importar XML.

    Alguem se dispõe?

    Obs: Não sei se está é a sala correta. Caso esteja errado, gentileza sinalizar.


    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Sex 19 Dez - 12:45

    Olá Colega, será que não consegue fazer você mesmo isso, com uma busca aqui no forum não falta informação:

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

    Abraço

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Sex 19 Dez - 12:51

    Olá,

    Entendo pouco de programação em VBA.

    Já pesquisei incansavelmente no forum vi muitos exemplos, mas nenho se enquadrou no que preciso.

    O link disponibilizado não funcionou.


    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Sex 19 Dez - 13:01

    O link disponibilizado é uma busca aqui no forum com as palavras importar e xml.

    No entanto pode postar aqui no forum o que pretende, e se já tiver a sua base de dados com as tabelas para importar , também será util, também seria bom um ficheiro de exemplo XML para ver o que pretende importar, e cá estamos para dar o nosso melhor.

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Sex 19 Dez - 13:06

    Ok,

    Vou disponibilizar a base de dados e o ficheiro para exemplificar melhor o que preciso.

    Ja tenho um pronto, inclusive funciona para um modelo antigo de XML que usava.

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Sex 19 Dez - 13:10

    Daqui a pouco vou sair, no entanto coloque um ficheiro XML com dados de exemplo
    Abraço

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Sex 19 Dez - 13:17

    Seria estes XML's


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

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Sex 19 Dez - 13:34

    Já saí, que esteja no desktop, vou verificar.

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Sex 19 Dez - 13:37

    Seria esse mesmo.

    Grato,

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Sex 19 Dez - 15:05

    Sim o que pretendia dizer é que de momento estou no telemóvel, assim que esteja no portatil vou verificar no que possovajudar.
    Abraço

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Sex 19 Dez - 17:11

    Ok.

    Desde já agradeço, pois toda ajuda é sempre bem vinda.

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Sex 19 Dez - 20:04

    Tenho esta rotina feita por Harysonh que importo meus xml's em um modelo antigo. Porém, como vou usar novos xml's com atualizações nos campos que pretendo importar, não estou conseguindo adaptar o código para este novo formato de arquivo xml.

    Link de Exemplo: [Você precisa estar registrado e conectado para ver este link.]
    Access 2007

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Sab 20 Dez - 19:23

    Olá, já descarreguei, assim que tiver um tempinho vou analisar,
    nao está esquecido
    abraço

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Sab 20 Dez - 20:07

    Perfeito amigo,

    Agradeço o auxílio.

    Saudações.


    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Dom 21 Dez - 20:07

    Olá Gomes, já estive analisar a XML e também o código disponibilizado.
    1) Os campos que pretendes importar do XML são todos?
    2) Já tens alguma tabela(s) já criada dos dados que pretendes importar, se sim , disponibliza.
    Abraço

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Seg 22 Dez - 6:24

    1) Os campos que pretendes importar do XML são todos?

    Link corrigido.
    [Você precisa estar registrado e conectado para ver este link.]

    As linhas para importação são apenas o que esta grifado em vermelho e que pretendo importar para tabela Enviado que encontra-se na base de dados que pode ser vista ao abrir em modo design.



    Para o XML: ENVIO_LOTE_GUIAS_doc_40765_id_26192, os campos são esses

    858518900
    00808104000033075
    CLEBER DOS SANTOS
    2014-09-01
    2014-09-13
    20201109
    Avaliacao clinica diaria enteral
    2
    0.00
    0.01


    Para os XML's: ENVIO_LOTE_GUIAS_doc_40729_id_26191; ENVIO_LOTE_GUIAS_doc_40774_id_26185, os campos são esses


    1143960208
    00807400000962000
    DANIEL LOUREIRO RODRIGUES
    2014-09-12
    30101450
    Exerese e sutura de lesoes (circulares ou nao) com rotacao de retalhos
    0.02
    0.02


    2) Já tens alguma tabela(s) já criada dos dados que pretendes importar, se sim , disponibliza.
    Na base que disponibilizei, tem uma tabela chamada Enviado e ao abrir em modo design pode ver que tem os dados que preciso do XML como exemplo.

    Desde já, agradeço a atenção.

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Seg 22 Dez - 7:38

    Olá, estou analisar este xml ENVIO_LOTE_GUIAS_doc_40765_id_26192,
    Verifico que tem mais que um registo (beneficiario)
    neste ficheiro seria para importar deste beneficiarios:
    CLEBER DOS SANTOS
    ALBERTO DE JESUS OLIVEIRA
    ALEXANDRA COGO ZANARDI
    ....até
    WALDOMIRO GIACOMO COMETTI

    é isso, com os restantes campos indicados?

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Seg 22 Dez - 7:41

    Isso amigo,

    Seu raciocinio está certinho.

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Seg 22 Dez - 7:57

    Olá, pode-me enviar de novo o ficheiro Campos XML.doc , mas que tenha à frente, pode ser a verde o nome do campo respectivo da tabela Enviado

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Seg 22 Dez - 8:33

    Segue o ficheiro com print da tabela Enviado e campos marcados em verde.

    Link: [url=https://www.dropbox.com/s/d7jfbqk47rnz3jw/Campos xml.rar?dl=0][Você precisa estar registrado e conectado para ver este link.]

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Ter 23 Dez - 8:31

    Olá, a estrutura XML tem campos com referencia repetida e nós diferentes e não está fácil controlar a informação a importar.
    No entanto segue em anexo para estudo como está a ser processada a importação, neste caso linha a linha.
    Acho que vou ter que alterar para processar registo a registo.
    Abraço

    extrairCampoXml_linha_linha.zip


    Última edição por ahteixeira em Sex 30 Out - 8:52, editado 2 vez(es)

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Ter 23 Dez - 9:22

    Olá, bom dia,

    Interessante, dei uma analisada na consulta acrescimo que criou e ela aponta os dados para tabela que pretendo. Realmente é essa lógica que procuro.

    Dúvida: Essa questão das referencias e com nós diferentes é que faz a importar dos dados dos arquivos XML's diferentes ser feitas com precisão?

    Vou estudar ainda mais porque preciso entender essa lógica para ler e importar arquivos xml. Algum material de apoio para sugerir eu agradeço imensamente.


    Atenciosamente,

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Ter 23 Dez - 9:28

    Tens algum exemplo de importação por vba de apenas campo do XML para eu praticar em casa e entender um pouco mais o assunto?

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Ter 23 Dez - 10:32

    Olá, cole o código abaixo no exemplo que postei na mensagem acima, exemplo simples

    Código:
    Option Compare Database
    Dim meuFicheiro As String, textoXml As String, textoLinha As String

    Private Sub Comando0_Click()

      meuFicheiro = Application.CurrentProject.Path & "\ENVIO_LOTE_GUIAS_doc_40765_id_26192.xml"
        
      Open meuFicheiro For Input As #1
        Do Until EOF(1)
             Line Input #1, textoLinha
                     If InStr(textoLinha, "<ans:senha>") > 0 Then MsgBox extrairCampoXml(textoLinha, "ans:senha")
        Loop
      Close #1
    End Sub

    '2014 Alvaro Teixeira
    Function extrairCampoXml(strLinha As String, strNomeCampo As String)
    Dim strInicio As String
    Dim strFim As String
    strInicio = "<" & strNomeCampo & ">"
    strFim = "</" & strNomeCampo & ">"

    Dim i As Long, j As Long
        i = InStr(strLinha, strInicio)
        j = InStr(strLinha, strFim)
        extrairCampoXml = Mid(strLinha, i + Len(strInicio), j - i - Len(strInicio))
    End Function

    Abraço

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Ter 23 Dez - 11:22

    Agora consegui visualizar o código do seu post anterior e o exemplo de importação de um campo.

    Tá ficando perfeito...

    Agradeço muito sua cordial ajuda.

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Sex 26 Dez - 6:05

    Olá,
    Dos ficheiros XML disponibilizados, podemos verificar que temos pelo menos dois tipos de informação reportada para importar:

    - guiaSP-SADT
    - guiaResumoInternacao

    Isso tornou-se um problema, solução foi criar código a verificar e identificar.
    Relativamente ao exemplo postado anteriormente, fazia leitura e processamento linha a linha.
    Neste exemplo postado, faz o processamento registo a registo.
    Já está a fazer a importação dos ficheiros "tipo" guiaResumoInternacao
    Quanto ao registo do "JOAO BATISTA LOBO ROCHA, acho melhor verificar se a informação importada é a pretendida.
    Caso não seja é melhor saber se temos algum tipo de identificador que nos permita saber qual o "tipo de movimento" que se pretende importar.

    Bom, para a importação dos ficheiros tipo "guiaSP-SADT" já deixei no código informação onde deve ser colocado, procedendo da mesma forma com os devidos ajustes dos campos.
    Abraço

    extrairCampoXml_registo.zip


    Última edição por ahteixeira em Sex 30 Out - 8:53, editado 2 vez(es)

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Sex 26 Dez - 16:41

    Prezado,

    Chegando em casa vou baixar o arquivo e darei um retorno após análise do código, pois estou no celular.
    Já agradeço sua valiosa ajuda.

    Abraços....

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Sab 27 Dez - 7:34

    Olá Gomes,
    Segue em anexo ficheiro extrairCampoXml_registo que já faz a importação dos dois tipos de ficheiro, este foi onde desenvolvi para acompanhares como foi efetuado o processo de importação (temos que alterar no código o nome do ficheiro para testar).
    Também mando o ficheiro SAC_2003_fe.zip que é a versão que tinhas postado da importação anterior que foi atualizado com o novo código.
    Espero que esteja como pretendido e sirva também de exemplo para os colegas aqui do forum.
    O código pode não estar estruturado da melhor forma, mas na minha opinião está funcional.
    Abraço e não esquecer de verificar a questão colocada na mensagem n. 26.

    Outra coisa, acho que deverias mudar o titulo do tópico, de forma a ficar mais fácil para pesquisa de outros utilizadores, do tipo "Importação XML de guias ..."

    extrairCampoXml_registo_v1.zip


    Última edição por ahteixeira em Sex 30 Out - 8:53, editado 2 vez(es)

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Seg 29 Dez - 7:55

    Prezado,

    Dei uma analisada no código ficou muito bom e bem funcional, a dificuldade que tive foi a seguinde:

    Está sendo importada apenas o primeiro registro da guia e para cada guia importada o XML tem mais de uma registro, igual ao que está abaixo:

    Uma única guia importada possui mais de um registro, cito como exemplo a guia 858535073, que tem os registros
    Atendimento do intensivista diarista (por dia e por paciente)
    Atendimento medico do intensivista em UTI geral ou pediatrica (plantao
    Atendimento medico do intensivista em UTI geral ou pediatrica (plantao 

    Poderia me ajudar com essa demanda?

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Seg 29 Dez - 8:31

    Olá, obrigado pelo retorno, relativamente à questão colocada vou analisar, no entanto o teupo está escasso.
    Na mensagem n. 16 não falava de multi registo.
    1) agradeço exemplo dos dados prtendidos da guia mencionada (858535073).
    2) ainda não respondeu à questão anterior "Quanto ao registo do "JOAO BATISTA LOBO ROCHA..." para poder compreender melhor o xml.
    Abraço


    Última edição por ahteixeira em Seg 29 Dez - 9:54, editado 1 vez(es)

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Seg 29 Dez - 8:37

    Verdade, esqueci de mencionar a questão do JOAO BATISTA LOBO ROCHA.

    A informação importada é a que pretendo mesmo e devemos também considerar multiregistro, e para este caso do JOAO BATISTA LOBO ROCHA faltou apenas o ValorPago para tabela Enviado.

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Seg 29 Dez - 9:57

    Olá, não encontro a guia 858535073, em que ficheiro está?

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Seg 29 Dez - 10:03

    Me desculpe, nao citei anteriormente.

    Favor considerar a guia 858518900, que está no ficheiro ENVIO_LOTE_GUIAS_doc_40765_id_26192

    Visita hospitalar (paciente internado)
    DIARIA COMPACTA DE ENFERMARIA DE 2 LEITOS COM BANHEIRO PRIVATIVO
    ALUGUEL/TAXA DE APARELHO / EQUIPAMENTO PARA LAPAROSCOPIA PARA CIRURGIA

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Seg 29 Dez - 10:55

    Olá,

    No caso JOAO.., terei de verificar porque não importou o valorTotal.
    Relativamente à questão da importação multi registo, necessito de saber que "tipo de nós" é que existem para importar.
    Caso não disponha da informação, a unica forma é abrir um XML através de um editor e identificar os nós da informação que pretende importar, só assim será possivel controlar na importação da forma que estamos a processar, a seguir de exemplo:

    [Você precisa estar registrado e conectado para ver esta imagem.]

    Neste exemplo, acho que a informação que pretende importar é a do B1 e B2 que são dois registos de "despesa", repare que o nome do nó é "outras despesas" em que C1 informa o inicio e C2 informa o Final.

    Quanto à guia vou tentar analisar.
    Fico aguardar então nome dos nós para importar.

    Nota não esquecer de identificar por tipo de ficheiros, pois já verificamos que existe do tipo:
    guiaSP-SADT
    guiaResumoInternacao

    Espero que não exista mais nenhum tipo. Cool
    Aproveito para perguntar, a entidade emissora desses ficheiros XML não tem o XSD "schema"?

    Abraço

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Seg 29 Dez - 12:33

    Abri os arquivos no editor e te envio doc onde pontuo os NÓ de cada tipo de XML, seja guiaSP-SADT ou guiaResumoInternacao, pois tenho somente estes tipos de arquivos XML.
    [Você precisa estar registrado e conectado para ver este link.]

    Aproveito para perguntar, a entidade emissora desses ficheiros XML não tem o XSD "schema"?
    Sou leigo no assunto e não sei o que é "schema"?

    Grato,

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Seg 29 Dez - 12:45

    Olá, alguns links :
    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Seg 29 Dez - 13:00

    Entretanto, assim não vai ser fácil.
    Mandou-me um exemplo com o nome de MARIA ELIZABETH DE SA CUNHA PINHEIRO que não tenho o ficheiro e não sei se é só um "movimento" ou vários e de que tipo.

    Vamos fazer assim, segue abaixo base de dados e dois ficheiros XML
    Dentro da base de dados tem duas tabelas.
    O que pretendo é um pouco de paciencia e colocar os dados manualmente na respetiva tabela.
    Nota tem uma tabela para cada XML.
    Assim poderei analisar definitivamente o que pretende.
    Abraço

    dadosExemploImportacaoXML.zip


    Última edição por ahteixeira em Sex 30 Out - 8:55, editado 2 vez(es)

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Seg 29 Dez - 13:13

    Perfeito!

    Vou fazer e envio.

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Seg 29 Dez - 15:21

    Segue exemplo que lancei na tabela item por item em ambas as tabelas.
    Isso seria a realidade que pretendo importar dos XML's.

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

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Ter 30 Dez - 15:30

    Ola Gomes, era mesmo isso.
    Hoje não tive tempo e final do ano é complicado.
    Assim que tiver um tempinho, vou analisar e ajustar.
    Entretanto, pode ir estudando a evolução do código, de como se tem processado a importação
    É bom compreender, pode ser necessário ajustes.
    Abraço

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Ter 30 Dez - 17:45

    ahteixeira, boa noite,

    Certamente vou continuar estudando o código para aprimorar o aprendizado.

    Muito obrigado por sua atenção.

    Abraço

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Qui 8 Jan - 7:44

    Olá Gomes,
    A parte do valor deu luta.
    Existe o mesmo nome (ans:valorTotal) para campos de nós diferentes e também para nome de , no entanto veja se é o pretendido.
    Abraço

    extrairCampoXml_registo_v2.zip


    Última edição por ahteixeira em Sex 30 Out - 8:55, editado 4 vez(es)

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Qui 8 Jan - 8:00

    Prezado,

    É 98% da informação que preciso, ou seja, de internação importa certinho.

    Quando importo o ficheiro de guiaResumoInternacao ENVIO_LOTE_GUIAS_doc_40765_id_26192 os dados vão para tabela Enviado certinho.

    Porém, quando importo guiaSP-SADT ENVIO_LOTE_GUIAS_doc_40729_id_26191 gera erro na linha:

    'executa consulta
                        CurrentDb.Execute "INSERT INTO Enviado (CódGuia, CódUsuário, NomeUsuário, DtAtendimento, DtAlta, CódServiço, NomeServiço, QuantidadeServiço, Referencia, ValorPago ) SELECT " & xCodGuia _
                        & "," & xCodUsuario & ",'" & xNomeUsuario & "', #" & Format(xDtAtendimento, "mm/dd/yyyy") & "# , #" _
                        & Format(xDtAlta, "mm/dd/yyyy") & "# , " & xCodServico & ", '" & xNomeServico & "', '" & xQuantidadeServico & "', '" & xReferencia & "', '" & xValorPago & "';"
                        textoLinha = ""

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Qui 8 Jan - 8:54

    Olá, pode fazer novo download da mensagem 42
    Abraço

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Qui 8 Jan - 9:04

    Pronto amigo, é isso mesmo.

    Apenas um pequeno detalhe.


    Observei que na linha abaixo está importando os dados da carteira da seguinte forma:
     
    Enviado: 808104000033075
    Enviado: 805497000290100
    Enviado: 2010017049173302
    Enviado: 9750000015090704

    Porém o correto deveria considerar os zeros a esquerda e estes estão sendo removidos:

    Ficheiro XML: 00808104000033075
    Ficheiro XML: 00805497000290100
    Ficheiro XML: 02010017049173302
    Ficheiro XML: 09750000015090704

    If InStr(textoLinha, "") > 0 Then xCodUsuario = extrairCampoXml(textoLinha, "ans:numeroCarteira")

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Qui 8 Jan - 10:20

    Olá, então!!!!
    Código:
    Format(xCodUsuario, "00000000000000000")
    Mensagem nº 42 atualizada.
    Abraço

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Qui 8 Jan - 11:36

    Olá ahteixeira,

    Sua ajuda foi de fundamental importancia para solucionar meu problema e também vai enriquecer meus conhecimentos.

    Muito obrigado!

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Qui 8 Jan - 11:46

    Olá, obrigado pelo retorno, o forúm agradece.
    Espero que também contribua para outros colegas aqui do fórum.
    Abraço

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 457
    Registrado : 20/01/2014

    Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Sex 9 Jan - 8:21

    Prezados, bom dia,

    Reabrindo tópico apenas para um exclarecimento.

    O código abaixo está funcionando que é uma beleza, porém os dois ficheiros em não importam todos os registros.

    ENVIO_LOTE_GUIAS_doc_40774_id_26185 (ans:guiaSP-SADT)
    ENVIO_LOTE_GUIAS_doc_40113_id_26302 () Apenas com data de execução

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

    VBA
    Option Compare Database
    Dim meuFicheiro As String, txtLinha As String, textoLinha As String

    Private Sub Comando0_Click()
    Dim Importar, Proce As Integer
    textoLinha = ""
    Importar = 0

    '2014 Alvaro Teixeira
    Dim xCodGuia$ 'senha
    Dim xCodUsuario$ 'numeroCarteira
    Dim xNomeUsuario$ 'nomeBeneficiario
    Dim xDtAtendimento$ 'dataInicioFaturamento    -       dataExecucao
    Dim xDtAlta$ 'dataFinalFaturamento
    Dim xCodServico$ 'codigoProcedimento
    Dim xNomeServico$ 'descricaoProcedimento
    Dim xQuantidadeServico$ 'quantidadeExecutada
    Dim xReferencia$ 'valorUnitario
    Dim xValorPago$ 'valorTotal


    'meuFicheiro = Application.CurrentProject.Path & "\ENVIO_LOTE_GUIAS_doc_40729_id_26191.xml"
    'meuFicheiro = Application.CurrentProject.Path & "\ENVIO_LOTE_GUIAS_doc_40765_id_26192.xml"
    'meuFicheiro = Application.CurrentProject.Path & "\ENVIO_LOTE_GUIAS_doc_40113_id_26302.xml"
    meuFicheiro = Application.CurrentProject.Path & "\ENVIO_LOTE_GUIAS_doc_40774_id_26185.xml"
       
       
    Open meuFicheiro For Input As #1
        Do Until EOF(1)
             Line Input #1, txtLinha
                 
                  '-------------- verifica tipo de ficheiro
                  If InStr(txtLinha, "") > 0 Then Importar = 1 ' guiaSP-SADT
                  If InStr(txtLinha, "") > 0 Then Importar = 2 ' guiaResumoInternacao>
                  textoLinha = textoLinha & txtLinha
              
                  'Inicio - guiaSP-SADT
                  If InStr(txtLinha, "
    ") > 0 And Importar = 1 Then
                     If InStr(textoLinha, "") > 0 Then xCodGuia = extrairCampoXml(textoLinha, "ans:senha")
                     If InStr(textoLinha, "") > 0 Then xCodUsuario = extrairCampoXml(textoLinha, "ans:numeroCarteira")
                     If InStr(textoLinha, "") > 0 Then xNomeUsuario = extrairCampoXml(textoLinha, "ans:nomeBeneficiario")
                     If InStr(textoLinha, "") > 0 Then xDtAtendimento = extrairCampoXml(textoLinha, "ans:dataExecucao"): xDtAtendimento = Right(xDtAtendimento, 2) & "-" & Mid(xDtAtendimento, 6, 2) & "-" & Left(xDtAtendimento, 4)
                     If InStr(textoLinha, "") > 0 Then xCodServico = extrairCampoXml(textoLinha, "ans:codigoProcedimento")
                     If InStr(textoLinha, "") > 0 Then xNomeServico = extrairCampoXml(textoLinha, "ans:descricaoProcedimento")
                     If InStr(textoLinha, "") > 0 Then xQuantidadeServico = Replace(extrairCampoXml(textoLinha, "ans:quantidadeExecutada"), ".", ",") 'alterara separador decimais
                     If InStr(textoLinha, "") > 0 Then xReferencia = Replace(extrairCampoXml(textoLinha, "ans:valorUnitario"), ".", ",") 'alterara separador decimais
                     If InStr(textoLinha, "") > 0 Then xValorPago = Replace(extrairCampoXml(textoLinha, "ans:valorTotal"), ".", ",") 'alterara separador decimais
                     'executa consulta
                        CurrentDb.Execute "INSERT INTO Enviado (CódGuia, CódUsuário, NomeUsuário, DtAtendimento,  CódServiço, NomeServiço, QuantidadeServiço, Referencia, ValorPago ) SELECT " & xCodGuia _
                        & ",'" & Format(xCodUsuario, "00000000000000000") & "','" & xNomeUsuario & "', #" & Format(xDtAtendimento, "mm/dd/yyyy") & "# , " _
                        & xCodServico & ", '" & xNomeServico & "', '" & xQuantidadeServico & "', '" & xReferencia & "', '" & xValorPago & "';"
                     'limpa
                     Importar = 0
                     textoLinha = ""
                     xCodGuia = ""
                     xCodUsuario = ""
                     xNomeUsuario = ""
                     xDtAtendimento = ""
                     xDtAlta = ""
                     xCodServico = ""
                     xNomeServico = ""
                     xQuantidadeServico = ""
                     xReferencia = ""
                     xValorPago = ""
                  End If
                  'Fim - guiaSP-SADT
                 
                  '---------------------------------------------------------------------------------------------------------------------------------------
                  '---------------------------------------------------------------------------------------------------------------------------------------
                 
                  'Inicio - guiaResumoInternacao
                  If InStr(txtLinha, "") > 0 And Importar = 2 Or InStr(txtLinha, "") > 0 And Importar = 2 Then
                     If InStr(textoLinha, "") > 0 Then xCodGuia = extrairCampoXml(textoLinha, "ans:senha")
                     If InStr(textoLinha, "") > 0 Then xCodUsuario = extrairCampoXml(textoLinha, "ans:numeroCarteira")
                     If InStr(textoLinha, "") > 0 Then xNomeUsuario = extrairCampoXml(textoLinha, "ans:nomeBeneficiario")
                     If InStr(textoLinha, "") > 0 Then xDtAtendimento = extrairCampoXml(textoLinha, "ans:dataInicioFaturamento"): xDtAtendimento = Right(xDtAtendimento, 2) & "-" & Mid(xDtAtendimento, 6, 2) & "-" & Left(xDtAtendimento, 4)
                     If InStr(textoLinha, "") > 0 Then xDtAlta = extrairCampoXml(textoLinha, "ans:dataFinalFaturamento"): xDtAlta = Right(xDtAlta, 2) & "-" & Mid(xDtAlta, 6, 2) & "-" & Left(xDtAlta, 4)
                     If InStr(textoLinha, "") > 0 Then xCodServico = extrairCampoXml(textoLinha, "ans:codigoProcedimento")
                     If InStr(textoLinha, "") > 0 Then xNomeServico = extrairCampoXml(textoLinha, "ans:descricaoProcedimento")
                     If InStr(textoLinha, "") > 0 Then xQuantidadeServico = Replace(extrairCampoXml(textoLinha, "ans:quantidadeExecutada"), ".", ",") 'alterara separador decimais
                     If InStr(textoLinha, "") > 0 Then xReferencia = Replace(extrairCampoXml(textoLinha, "ans:valorUnitario"), ".", ",") 'alterara separador decimais
                     If InStr(textoLinha, "") > 0 Then xValorPago = Replace(extrairCampoXmlRev(textoLinha, "ans:valorTotal"), ".", ",") 'alterara separador decimais, função reverse por causa do problema do valor campo duplicado para varios nós diferentes
                     'executa consulta
                        CurrentDb.Execute "INSERT INTO Enviado (CódGuia, CódUsuário, NomeUsuário, DtAtendimento, DtAlta, CódServiço, NomeServiço, QuantidadeServiço, Referencia, ValorPago ) SELECT " & xCodGuia _
                        & ",'" & Format(xCodUsuario, "00000000000000000") & "','" & xNomeUsuario & "', #" & Format(xDtAtendimento, "mm/dd/yyyy") & "# , #" _
                        & Format(xDtAlta, "mm/dd/yyyy") & "# , " & xCodServico & ", '" & xNomeServico & "', '" & xQuantidadeServico & "', '" & xReferencia & "', '" & xValorPago & "';"
                        textoLinha = ""
                    End If
                     'limpa
                     If InStr(txtLinha, "
    ") > 0 And Importar = 2 Then
                           Importar = 0
                           textoLinha = ""
                           xCodGuia = ""
                           xCodUsuario = ""
                           xNomeUsuario = ""
                           xDtAtendimento = ""
                           xDtAlta = ""
                           xCodServico = ""
                           xNomeServico = ""
                           xQuantidadeServico = ""
                           xReferencia = ""
                           xValorPago = ""
                     End If
                  'Fim - guiaResumoInternacao
        Loop
    Close #1
    MsgBox "Concluído", vbInformation, ""

    End Sub
    '2014 Alvaro Teixeira
    Function extrairCampoXml(strLinha As String, strNomeCampo As String)
    Dim strInicio As String
    Dim strFim As String
    strInicio = "<" & strNomeCampo & ">"
    strFim = ""

    Dim i As Long, j As Long
        i = InStr(strLinha, strInicio)
        j = InStr(strLinha, strFim)
        extrairCampoXml = Mid(strLinha, i + Len(strInicio), j - i - Len(strInicio))
    End Function

    '2014 Alvaro Teixeira
    Function extrairCampoXmlRev(strLinha As String, strNomeCampo As String)
    Dim strInicio As String
    Dim strFim As String
    strInicio = "<" & strNomeCampo & ">"
    strFim = ""

    Dim i As Long, j As Long
        i = InStrRev(strLinha, strInicio)
        j = InStrRev(strLinha, strFim)
        extrairCampoXmlRev = Mid(strLinha, i + Len(strInicio), j - i - Len(strInicio))
    End Function

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Importação XML de guias.

    Mensagem  ahteixeira em Sex 9 Jan - 13:43

    Ola Gomes, pode fazer o mesmo com estes dois ficheiros como fez na mensagem 39.
    Depois dou uma vista de olhos.
    Abraço

      Data/hora atual: Dom 4 Dez - 16:22