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

Access Discussion :

Export de requêtes sur 2 fichiers txt + mise en page + sauvegarde sur table


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Developer
    Inscrit en
    Juin 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developer

    Informations forums :
    Inscription : Juin 2004
    Messages : 194
    Points : 58
    Points
    58
    Par défaut Export de requêtes sur 2 fichiers txt + mise en page + sauvegarde sur table
    Bonjour,

    J'ai doit exporter 3 requêtes d'une base de donnée ACCESS
    vers un fichier text .txt et ce avec mise en page séquentiel, c-à-d :
    1ere requête sera l'entête de page du fichiere txt
    2ème requête sera le corps de page du fichier txt
    3ème requête sera le pied de page du fichier txt.

    Je dois utiliser du code VBA
    et sans devoir passer par une table intérmédiaire.

    Pour ce qui est du sauvegarde de requêtes dans le fichier texte
    le code ci dessous que j'ai trouvé dans la FAQ Access, je pense serait bon :

    Public Sub SauvegarderRqt(strFichier As String)
    On Error Goto Err
    Dim Db As DAO.Database
    Dim qry As DAO.QueryDef
    Dim FSO As New Scripting.FileSystemObject
    Dim oFileText As Scripting.TextStream
    'Instancie Db
    Set Db = CurrentDb
    'Ouvre le fichier texte (le crée s'il n'existe pas)
    Set oFileText = FSO.OpenTextFile(strFichier, ForWriting, True)
    'Pour chaque requête
    For Each qry In Db.QueryDefs
    'si la requête n'est pas sytème (commence par ~)
    If Left(qry.Name, 1) <> "~" Then
    'Ecrit le nom de la requête et son code SQL
    With oFileText
    'Ecrit le titre et des #
    .WriteLine String(Len(qry.Name) + 4, "#")
    .WriteLine "# " & qry.Name & " #"
    .WriteLine String(Len(qry.Name) + 4, "#")
    'Saute 1 ligne et écrit le SQL
    .WriteBlankLines (1)
    .WriteLine qry.SQL
    'Saute 3 lignes
    .WriteBlankLines (3)
    End With
    End If
    Next qry
    'Ferme le fichier, libère la mémoire
    oFileText.Close
    Set FSO = Nothing
    Db.Close
    Set Db = Nothing
    'Demande à l'utilisateur s'il veut visualiser le fichier
    If MsgBox("Voulez vous ouvrir le fichier généré ?", _
    vbQuestion + vbYesNo, "Sauvegarde requête") = vbYes Then
    Shell "notepad.exe " & strFichier, vbMaximizedFocus
    End If
    Exit Sub
    Err:
    Msgbox "Une erreur est survenue."
    End Sub

    Remarque: je dois toutefois créer 2 fichiers dont le contenu est semblable mais que les noms différent. comment pourrais je faire une boucle dans ce code de manière effiscient?

    De plus je dois également stocker dans une table paramètre le chemin du fichier texte ainsi que son nom sur 2 champs différents. Quel sera le code en VBA et comment pourrais-je implementer ce code dans le code ci-dessus?

    Merci

    Aliveli

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    ton code ouvre un recorset et écrit son contenu dans un fichier texte
    il suffit de ne pas fermer ce fichier
    d'ouvrir un nouveau recordset et de l'écrire en texte deux fois
    Elle est pas belle la vie ?

  3. #3
    Membre du Club
    Profil pro
    Developer
    Inscrit en
    Juin 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developer

    Informations forums :
    Inscription : Juin 2004
    Messages : 194
    Points : 58
    Points
    58
    Par défaut
    Bonjour,

    Merci de m'avoir écrit.

    -Je viens de m'apercevoir qu'avec ce code, j' exporte dans le fichier texte le nom de chaque requête et pas leur contenu ?

    -Comme vous dites c'est que je dois pas fermer le 1er fichier et que je dois ouvrir un nouveau recordset mais pour celui ci je dois tout de même ouvrir un autre fichier?


    Merci


    Kenzo

Discussions similaires

  1. Lecture et écriture sur un fichier txt
    Par freemanqc dans le forum Langage
    Réponses: 13
    Dernier message: 28/02/2008, 05h29
  2. Récuperer des infos sur des fichiers .txt
    Par arnogb69 dans le forum VB.NET
    Réponses: 5
    Dernier message: 23/08/2007, 15h57
  3. Ecriture sur un fichier.txt dans tomcat
    Par xsafary dans le forum Java ME
    Réponses: 1
    Dernier message: 21/05/2007, 08h39
  4. Export de requete vers un fichier .txt en VB
    Par Sam 069 dans le forum Access
    Réponses: 6
    Dernier message: 23/02/2007, 13h26
  5. [Tableaux] Problème sur ouverture fichier txt
    Par yaum4444 dans le forum Langage
    Réponses: 7
    Dernier message: 15/12/2006, 15h10

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