Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Access - VBA] - Esportare Query in formato XML

    Salve a tutti

    Sto modificando un gestionalino in modo che possa esportare una query in formato xml come richiesto da un ente pubblico

    Le specifiche del file sono in un file in formato xsd fornito dall'ente

    La funzione di ACCESS "Esporta Query" non va bene perche' e' automatica e non corrisponde al file xsd

    Quindi devo andare con il vba

    Sto "paciugando" con questa routine trovata sul web che dovrebbe fare al caso mio e mi permette di gestire il file xml a mio piacimento

    Il problema e' che quando arrivo a "GETVALUE" mi dice "Sub o Function non definita"

    Sto smanopolando in tutte le maniere ma mi sono piantato

    Can you help me ?

    Grazie !

    ************************************************** ********

    Private Sub Comando498_Click()




    Dim ds As DAO.Recordset
    Dim SQL As String
    Dim fso
    Dim act
    Dim file_being_created
    Dim oAC As New Access.Application


    Set fso = CreateObject("scripting.filesystemobject")


    SQL = "SELECT * FROM [Elenco indirizzi];"


    Set ds = CurrentDb.OpenRecordset(SQL)


    Set act = fso.CreateTextFile("c:\hotelware\clienti.xml", True)




    act.WriteLine ("<?xml version=""1.0"" encoding=""ISO-8859-1""?>")


    act.WriteLine ("<?xml-stylesheet type=""text/xsl"" href=""web_items.xsl""?>")


    act.WriteLine ("<Clienti>")




    While Not ds.EOF




    act.WriteLine ("<Cognome=" + "'" + getValue(Cognome) + "'" + ">")


    act.WriteLine ("</Cognome>")


    act.WriteLine ("<Nome=" + "'" + getValue(Nome) + "'" + ">")


    act.WriteLine ("</Nome>")




    ds.MoveNext


    DoEvents


    Wend


    ds.Close


    act.WriteLine ("</Clienti>")




    End Sub

  2. #2
    Risolto !

    Avevo copiato pari pari il codice da un forum americano

    Ho scoperto che l'istruzione "getvalue" non e' di access (penso che sia di excel)

    Questo e' la routine funzionante:

    *************************************************

    Private Sub Comando498_Click()




    Dim ds As DAO.Recordset
    Dim SQL As String
    Dim fso
    Dim act
    Dim oAC As New Access.Application




    Set fso = CreateObject("scripting.filesystemobject")


    SQL = "SELECT * From [Elenco indirizzi] where arr = date();"


    Set ds = CurrentDb.OpenRecordset(SQL)


    Set act = fso.CreateTextFile("c:\hotelware\clienti.xml", True)




    act.WriteLine ("<?xml version=""1.0"" encoding=""ISO-8859-1""?>")


    act.WriteLine ("<?xml-stylesheet type=""text/xsl"" href=""web_items.xsl""?>")


    act.WriteLine ("<Clienti>")




    While Not ds.EOF




    act.WriteLine ("<Cognome=" + "'" + ds!Cognome + "'" + ">")


    act.WriteLine ("</Cognome>")


    act.WriteLine ("<Nome=" + "'" + ds!Nome + "'" + ">")


    act.WriteLine ("</Nome>")




    ds.MoveNext


    DoEvents


    Wend


    ds.Close




    act.WriteLine ("</Clienti>")




    End Sub

    *********************************************


    Ecco il risultato (ampiamente customizzabile a differenza dell' "esporta" di access:

    ************************************************** ************************


    <?xml version="1.0" encoding="ISO-8859-1"?>
    <?xml-stylesheet type="text/xsl" href="web_items.xsl"?>
    <Clienti>
    <Cognome='david'>
    </Cognome>
    <Nome='gilmour'>
    </Nome>
    <Cognome='kurt'>
    </Cognome>
    <Nome='kobain'>
    </Nome>
    <Cognome='jon'>
    </Cognome>
    <Nome='lord'>
    </Nome>
    </Clienti>

    ************************************************** ********************

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.