XML export Access 2013

Status
Niet open voor verdere reacties.

wilcovanee

Gebruiker
Lid geworden
30 mei 2011
Berichten
28
Wanneer ik een xml export maak (van een tabel). zitten er veel lege elementen in. Weet iemand hoe ik de export kan maken waar de lege elementen weg worden gelaten?

Verder zou ik graag zelf de opmaak willen aangeven, zodat ik meerdere niveaus kan gebruiken bij de elementen. Kan ik dit met bijv een xsd doen en hoe zou ik deze dan bij de export moeten oproepen?
 
En hoe maak je die export nu?
 
Ik klik met de rechtermuis op de tabel (of Query) en kies dan Exporteren --> XML-bestand
 
Je kunt het eens met ADO proberen; dat gaat nog wel eens goed.
Code:
    Set rst = New ADODB.Recordset
    strSQL = "Select * from incassobestand"
    DoCmd.Echo False, "Bezig met openen van recordset."
    With rst
        .ActiveConnection = CurrentProject.Connection
        .CursorLocation = adUseClient
        .CursorType = adOpenStatic
        .LockType = adLockReadOnly
        .Open strSQL
        strFileXML = "M:\DGA\voorbeeld.xml"
        'strFileADTG = CurrentProject.Path & "\Wagenpark Positief.adtg" 'Standaard uitlevertype
        
        'Verwijder het oude bestand, omdat de procedure anders crasht.
        On Error Resume Next
            Kill strFileXML
        Err.Clear
        On Error GoTo 0
        
        DoCmd.Echo False, "Bezig met opslaan van: " & strFileXML
        'Nu slaan we de recordset op (in ADTG or XML Format)
        .Save strFileXML, adPersistXML
    End With
 
Heb er niet bij gezegd dat ik Access al bijna een week gebruik, ADO zeg mij dus helemaal niets. Kan je mij hier een kleine start in geven?
 
Al een hele week? Mag ik wel oppassen :D. Misschien doe je de gewone export wel niet helemaal correct, of zit er iets vreemds in je tabel. Als ik een gewone tabel op de normale manier (zoals jij) exporteer, zie ik daar niks vreemds aan. Misschien kun je de db meeposten, dat kijkt wat makkelijker.
 
In het bestand heb ik een voorbeeld van:
1. Een database (zoals ik hem heb opgebouwd)
2. XML export uit Access (zoals ik hem er nu uit krijg)
3. Een XML met het gewenste resultaat

Bekijk bijlage voorbeeld.zip

Dit voorbeeld heeft 2 regels (artikelen). Uiteindelijk moeten het er 40.000+ worden
 
Een tabel is een redelijk platte verzameling gegevens; je hebt een veld en daar staat wat in. Als je dat exporteert, dan blijft dat, hoe je er ook aan gaat trekken, zo plat als de gemiddelde schaatster :). Het helpt natuurlijk ook helemaal niet dat jouw tabel totaal niet genormaliseerd is; als ik in een tabel velden(groepen) zie als: [_bundle_option_title1] t/m [_bundle_option_title10] en [_bundle_product_can_change_qty1] t/m [_bundle_product_can_change_qty10] dan lopen de rillingen echt aan alle kanten mijn rug af... Dat zou ik toch echt heel snel heel anders doen! Namelijk met een gekoppelde tabel waarin je voor elke bundelgroep een apart record maakt.
Nu is het gros van de velden leeg, zeker als je maar 1 of 2 producten hebt, en bovendien zit je met 10 nog redelijk beperkt. Met een aparte tabel is dat helemaal geen probleem. Met een query/rapport zet je dan alles weer netjes bij elkaar.
Wanneer ik een xml export maak (van een tabel). zitten er veel lege elementen in. Weet iemand hoe ik de export kan maken waar de lege elementen weg worden gelaten?
Daarmee is je eerste vraag gelijk opgelost.

Lost overigens je tweede vraag niet op, want dan moet ik weer naar de schaatsers wijzen... platte data is nu eenmaal platte data.
Verder zou ik graag zelf de opmaak willen aangeven, zodat ik meerdere niveaus kan gebruiken bij de elementen.
Niets houdt je natuurlijk tegen (zeker niet als je tabellen splitst) om zelf een xml te genereren. Je kunt de data als tekstbestand in een documentje laten wegschrijven, en als je dat als xml opslaat, dan heb je al een heel eind wat je zoekt. Je moet dan dus wel een routine hebben die de benodigde veldgroepen herkent een aanmaakt. En dat is weliswaar niet moeilijk te programmeren, maar je bent er wel even mee bezig.
 
Wat ik eerst had geprobeerd is het volgende.
Ik had meerdere tabellen gemaakt met de naam van de elementen (product, global, image_filenemes, language en bundle_options). Met de benodigde velden heb ik via een query een tabel gemaakt, zoals in het voorbeeld. Dit is wat jij ook voorstelt om te gaan doen. Wel had ik de bundle_option 1t/m 10 in één tabel, deze ga ik nu ook in aparte tabellen zetten.
Ik had gehoopt ik bij de query de naam van de tabel als element kon meegeven, maar dit kan dus helaas niet.

Bedankt voor het meedenken.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan