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

    [Resolvido]gerar arquivo .xml a partir de uma string

    avatar
    enio.eltz
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 19/07/2016

    [Resolvido]gerar arquivo .xml a partir de uma string Empty [Resolvido]gerar arquivo .xml a partir de uma string

    Mensagem  enio.eltz 15/7/2021, 18:52

    Boa tarde!!!

    Estou tentando criar um código VBA para salvar o valor de uma string em um arquivo .xml.

    Nesta string eu monto as linhas do arquivo com valores padrão e algumas variáveis que eu busco no formulário. Neste formuláro eu tenho uma caixa de texto onde escrevo o nome do diretório onde os arquivos deve ser salvos, e um botão de comando para executar o código.

    No momento eu estou tentando salvar em um arquivo os valores a seguir (algo bem básico para ver se eu consigo gerar o arquivo):

    Código:
    <all>
       
       
    <\all>

    Para isso eu uso o seguinte código:

    Código:
        Dim CriarDir As String
       
        Dim NomePublic As String
        Dim NomeExtern As String

        CriarDir = "D:\salva_xml\" & cmp_dir_ips
       
        If Dir(CriarDir, vbDirectory) = "" Then 'if 001
           
            MkDir CriarDir
       
        End If 'fim if 001
       
        NomePublic = strQuote & CriarDir & "\Public.xml" & strQuote
        NomeExtern = strQuote & CriarDir & "\Extern.xml" & strQuote
       
        Dim strGeraExt As String
       
        Dim strP0001Ext, strP0002Ext, strP0003Ext, strP0004Ext As String
       
        strP0001Ext = "<all>"
        strP0002Ext = "    "
        strP0003Ext = "    "
        strP0004Ext = "<\all>"
       
        strGeraExt = ""
        strGeraExt = strGeraExt & strP0001Ext & vbNewLine
        strGeraExt = strGeraExt & strP0002Ext & vbNewLine
        strGeraExt = strGeraExt & strP0003Ext & vbNewLine
        strGeraExt = strGeraExt & strP0004Ext & vbNewLine
       
        Me.cmp_resp_temp = strGeraExt
       
        Dim XMLDocPublic As New DOMDocument
        Dim XMLDocExtern As New DOMDocument
       
        XMLDocExtern.LoadXML strGeraExt
           
        XMLDocPublic.Save (NomePublic)
        XMLDocExtern.Save (NomeExtern)

    No campo cmp.resp.temp eu vejo que strGeraExt está OK. E vejo que os arquivos Public.xml e Extern.xml estão sendo gerados, no diretório correto. Mas os arquivos estão vazios.

    Como se XMLDocExtern.LoadXML não estivesse lendo a string strGeraExt.

    Pesquisei algumas maneira de fazer isso mas não achei algo semelhante. Somente exportar tabelas ou consultas, que não é o caso aqui.

    Desde já agradeço qualquer ajuda.

    Muito obrigado!!!!

    Enio Eltz Filho.
    avatar
    enio.eltz
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 19/07/2016

    [Resolvido]gerar arquivo .xml a partir de uma string Empty Re: [Resolvido]gerar arquivo .xml a partir de uma string

    Mensagem  enio.eltz 15/7/2021, 20:14

    Olá

    Fazendo mais algumas pesquisas na internet eu achei uma maneira de abrir o aquivo e escrever o que eu quero nele.
    Sendo assim, eu alterei o código (abaixo) para que gere o arquivo que eu quero (vazio) e então eu abro ele e insiro so dados necessários, depois fecha o arquivo.

    Código:
        Dim CriarDir As String
       
        Dim NomePublic As String
        Dim NomeExtern As String

        CriarDir = "D:\salva_xml\" & cmp_dir_ips
       
        If Dir(CriarDir, vbDirectory) = "" Then 'if 001
           
            MkDir CriarDir
       
        End If 'fim if 001
       
        NomePublic = strQuote & CriarDir & "\Public.xml" & strQuote
        NomeExtern = strQuote & CriarDir & "\Extern.xml" & strQuote
       
        Dim XMLDocPublic As New DOMDocument
        Dim XMLDocExtern As New DOMDocument
           
        XMLDocPublic.Save (NomePublic)
        XMLDocExtern.Save (NomeExtern)
       
        Dim strGeraExt As String
       
        Dim strP0001Ext, strP0002Ext, strP0003Ext, strP0004Ext As String
       
        strP0001Ext = "<all>"
        strP0002Ext = "    "
        strP0003Ext = "    "
        strP0004Ext = "<\all>"
       
        strGeraExt = ""
        strGeraExt = strGeraExt & strP0001Ext & vbNewLine
        strGeraExt = strGeraExt & strP0002Ext & vbNewLine
        strGeraExt = strGeraExt & strP0003Ext & vbNewLine
        strGeraExt = strGeraExt & strP0004Ext & vbNewLine
       
        Me.cmp_resp_temp = strGeraExt
       
        Dim fileExt As String
       
        fileExt = NomeExtern
       
        Dim fsoExt As FileSystemObject
        Dim fileStreamExt As TextStream
       
        Set fsoExt = New FileSystemObject
       
        Set fileStreamExt = fsoExt.CreateTextFile(fileExt)
       
        fileStreamExt.WriteLine (strGeraExt)
        fileStreamExt.Close

    Pode não ser a maneira mais simples, ou correta, mas está atendendo a necessidade.

    Enio Eltz Filho.

      Data/hora atual: 1/8/2021, 12:38