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 :

Ajouter des données avec TransferText et pas remplacer


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 39
    Points : 28
    Points
    28
    Par défaut Ajouter des données avec TransferText et pas remplacer
    Bonjour à tous,

    J'aimerais créer un fichier KML en utilisant les données d'une requête.
    Ce fichier doit être prêt à l'emploi.
    Il y a donc un entête, les données et la fin du fichier.

    Je crée donc le fichier avec la première partie de mon code, mais lorsque j'utilise
    DoCmd.TransferText pour ajouter les données, il remplace le fichier.

    Peut-on utiliser DoCmd.TransferText "as Append" ?

    Voici mon code:

    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
     
    'impression de l'entête dans le fichier
    Open "c:\bo.txt" For Output As #1
    Print #1, "<?xml version=""1.0"" encoding=""UTF - 8""?>"
    Print #1, "<kml xmlns=""http://www.opengis.net/kml/2.2>"" "
    Print #1, "<Document>"
    Close #1
     
    'ajout des données
    DoCmd.TransferText acExportFixed, "R_export", "R_raft0", "c:\bo.txt", False
     
    'ajout de fin de fichier
    Open "c:\bo.txt" For Append As #1
    Print #1, "</Document>"
    Close #1
    End Sub
    Question complémentaire:
    On doit mettre un format d'exportation et j'ai créé R_export. Mais où est-il stocké?
    Puisque ce paramètre est censé être facultatif, pourquoi ne peut-on pas ne rien mettre pour avoir un format standard?

    Merci à tous pour vos réponses.
    op

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 554
    Points
    24 554
    Par défaut
    Bonjour,

    TransferText n'ajoute pas il crée. Donc ce fonctionnement est normal.
    "As Append" n'est pas un option de TransferText.

    Tu peux cependant faire le contraire.

    Créer ton fichier de données avec TransferText puis ajouter l'entête en manipulant le fichier avec les commandes de Copy.

    Tu crées l'entête et le pied dans 2 fichiers séparés puis à l'aide de la commande Dos Copy tu les joints.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Copy entete+donnees+pied nouveaufichier
    Voici un tuto sur la manipulation de fichier.
    http://warin.developpez.com/access/fichiers/

    Cordialement,

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 39
    Points : 28
    Points
    28
    Par défaut
    Bonjour Fab,

    Merci pour la réponse.
    Si je comprends bien le tuto, il n'y a pas moyen non plus de "remonter" dans le fichier et d'insérer des lignes.

    La méthode du Copy est simple, mais d'autres vont utiliser le fichier et je voulais un truc prêt à l'emploi.

    J'ai donc dû créer le fichier de données, puis créer le fichier final avec l'entête et ensuite copier le fichier de données ligne par ligne dans le fichier final.

    Je mets le code pour ceux que ça intéresse:
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Private Sub ExpoRequete()
     
    'ajout des données
    DoCmd.TransferText acExportFixed, "formatexport", "Sites-BO-kml", "C:\Users\PLAUT\Desktop\tmp.txt", False
     
    'impression de l'entête dans le fichier
    Open "C:\Users\PLAUT\Desktop\bo.txt" For Output As #1
    Print #1, "<?xml version=""1.0"" encoding=""UTF - 8""?>"
    Print #1, "<kml xmlns=""http://www.opengis.net/kml/2.2>"" "
    Print #1, "<Document>"
    Close #1
     
    'copie du fichier temporaire
    Open "C:\Users\PLAUT\Desktop\bo.txt" For Append As #1
    Open "C:\Users\PLAUT\Desktop\tmp.txt" For Input As #2
    While Not EOF(2)
    Line Input #2, strLigne
    Print #1, strLigne
    Wend
    Close #1
    Close #2
     
     
    'ajout de fin de fichier (en fait, il n'est pas nécessaire de fermer et rouvrir le #1)
    Open "C:\Users\PLAUT\Desktop\bo.txt" For Append As #1
    Print #1, "</Document>"
    Close #1
    End Sub
    Mais j'ai encore une question liée au format d'exportation de TransferText: dans le help il est dit qu'il est facultatif, mais si je ne mets rien, j'ai un message d'erreur.
    Du moment que je suis en acExportFixed, est-ce qu'il existe un moyen de lui faire prendre un format standard lié à la définition des champs?

    Merci beaucoup
    op

Discussions similaires

  1. Problème d'ajout des données avec ado.net
    Par ahmedbj dans le forum ADO.NET
    Réponses: 10
    Dernier message: 14/03/2012, 13h36
  2. Ajouter des données avec .Net RIA Services
    Par Invité dans le forum Silverlight
    Réponses: 10
    Dernier message: 21/09/2009, 09h16
  3. Ajout des donnés avec un DataAdapter
    Par Marc_27 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/03/2009, 21h57
  4. Ajout des données avec une condition
    Par jean sami dans le forum SQL
    Réponses: 2
    Dernier message: 15/09/2008, 06h21
  5. [MySQL] ajouter des données en sql avec easyphp
    Par @min@ dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/04/2007, 03h44

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