IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

[XML] export, afficher balises vides


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 19
    Par défaut [XML] export, afficher balises vides
    Bonjour,
    avec Access 2007, j'exporte une table de données vers un fichier XML, mais les balises vides ne figurent pas dans le fichier xml.
    Exemple pour les données "nom", "ancien_prix" et "prix", le champs "ancien_prix" etant vide, j'obtiens dans mon fichier xml :

    <produit>
    <nom>nom du produit</nom>
    <prix>8 €</prix>
    </produit>

    Mais j'aimerais obtenir :

    <produit>
    <nom>nom du produit</nom>
    <ancien_prix />
    <prix>8 €</prix>
    </produit>

    Y-a-t'il un moyen, en passant par VBA par exemple, de faire apparaitre les champs vides de cette manière ?

    Merci d'avance

    PF

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Oui, avec du DAO et un test pour chaque champ.
    Il faut parcourir la table du début à la fin.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 19
    Par défaut
    C'est déjà une bonne nouvelle !
    Est-ce que vous pouvez me donner un peu plus de précisions ?
    J'ai trouvé ExportXML en VBA, mais qui ne donne qu'un panel d'options limités.
    En ADO il y a ExportADOXML, mais en DAO je n'ai rien trouvé qui se rapporte au XML.

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Exact, en DAO, il faut le faire manuellement.

    Un tuto sur le DAO

    Le principe serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Dim rs as DAO.Recordset
    Dim db as DAO.database
     
    set db = CurrentDB
    set rs = db.OpenRecordset("matable",dbOpenTable)
     
    while not rs.EOF
         NZ( rs.fields("champ1"),"<champ1 />","<champ1>" & rs.fields("champ1") & "</champ>"
    rs.movenext
    wend
     
    set db = nothing
    set rs = nothing
     
    db.close
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 19
    Par défaut
    Voici les dernières nouvelles.
    Avec le code suivant
    ****
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub Main0()
      Dim MyXml As String
      Dim rst1 As New ADODB.recordset
      MyXml = FreeFile()
      Open "peter1.xml" For Output As MyXml
      Print #MyXml, "<Table_Lots>"
      rst1.Open "qrytest", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
      Do While Not rst1.EOF
      Print #MyXml,   "  <Lot>"
        Print #MyXml, "    <NUMDOM>" & rst1.Fields("NumDom") & "</NUMDOM>"
        Print #MyXml, "    <DAT_R>" & rst1.Fields("DAT_R") & "</DAT_R>"
        Print #MyXml, "  </Lot>"
        rst1.MoveNext
      Loop
      Print #MyXml, "</Table_Lots>"
      Close MyXml
      rst1.Close
      Set rst1 = Nothing
    End Sub
    ****
    j'obtiens un fichier peter.xml qui m'affiche les balises vides comme suit :
    ****
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    - <Table_Lots>
    - <Lot>
      <NUMDOM>99</NUMDOM> 
        <DAT_R /> 
       </Lot>
    .....
    ****
    seule (minuscule) ombre au tableau : Certains de mes champs (non listés ci dessus) contiennent des caractères spéciaux et quand j'essaie d'ouvrir le fichier xml generé (avec Firefox ou Internet explorer), j'obtiens le message suivant : La page XML ne peut pas être affichée,un caractère incorrect a été trouvé dans un contenu de texte. Erreur de traitement de la ressource
    Cela doit être un problème d'encodage, si quelqu'un a une suggestion je suis preneur.
    Toutefois le fichier est lisible avec un editeur texte.

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Il faut poser une nouvelle question sur le forum XML.

    C'est un remplacement de caractère qu'il faut faire, mais les membres du forum XML seront mieux qualifiés pour apporter une réponse.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Mapper un fichier XML sans afficher le nom des balises.
    Par Lorito dans le forum Excel
    Réponses: 1
    Dernier message: 19/02/2010, 15h48
  2. TO XML (Balise vide)
    Par ricil78 dans le forum Linq
    Réponses: 2
    Dernier message: 28/11/2008, 15h28
  3. balise vide avec dom xml
    Par newcodeur dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 04/08/2008, 16h59
  4. [XML] Ne pas afficher les balises vides
    Par ludo.guy dans le forum Reports
    Réponses: 0
    Dernier message: 03/10/2007, 12h01
  5. [XML] ChildNodes: différencier si balise vide ou inexistante
    Par MiJack dans le forum Composants VCL
    Réponses: 4
    Dernier message: 05/04/2006, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo