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 :

[Access 2003] export requete vers fichier txt avec mise en forme de données


Sujet :

Access

  1. #21
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    voila le code actuel que je dois retravailler:
    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
    Option Compare Database
    Sub alain()
    Dim db As DAO.Database
    Dim rc As DAO.Recordset
    Set db = Application.CurrentDb
    Set rc = db.OpenRecordset("REQUETECDE", dbOpenDynaset)
    Set rc2 = db.OpenRecordset("dbo_ARTICLE_COMM", dbOpenDynaset)
    Open "C:\tonFichier.txt" For Output As #1
    Print #1, "DEBTXT"
    rc.MoveFirst
    Do Until rc.EOF
    Print #1, rc!NOM
    Print #1, rc!ADRESSE
    Print #1, rc!CP; rc!VILLE
    Print #1, ' Insère une ligne vierge dans le fichier.
    Print #1, "FINTXT" ' Écrit le texte dans le fichier.
    Print #1, "PAIMEN"; Spc(5); rc!Mode_RGLMT; Spc(6); rc!DELAI_PAIEMENT
    Print #1, "DATCDE"; Spc(5); rc!DATE_COMM
    Print #1, "REFCDE"; Spc(5); rc!NUM_COM ' Écrit le texte dans le fichier.
    Print #1, "REFLAB"; Spc(5); rc!REFLAB
    Print #1, "AGELIV" ' Écrit le texte dans le fichier.
    Print #1, "DEBCDE" ' Écrit le texte dans le fichier.
    Print #1, rc2!QTE_ART; rc2!CD_ART; sSQL = "SELECT * FROM rc2 where num_com= rc!NUM_COM"
    Print #1, "FINCDE" ' Écrit le texte dans le fichier.
    rc.MoveNext
    Loop
    Close #1
    End Sub
    qui m affiche dans un fichier texte (tonFichier.txt):
    DEBTXT
    CMC
    121 rue ponthieu
    75008 PARIS
    FINTXT
    PAIMEN CH 60
    DATCDE 19/01/2005
    REFCDE 215
    REFLAB 2
    AGELIV
    DEBCDE
    30 lead1 Faux
    FINCDE
    CMC
    121 rue ponthieu
    75008 PARIS
    FINTXT
    PAIMEN CH 60
    DATCDE 10/03/2005
    REFCDE 396
    REFLAB 2
    AGELIV
    DEBCDE
    30 lead1 Faux
    FINCDE
    CMC
    121 rue ponthieu
    75008 PARIS
    FINTXT
    PAIMEN CH 60
    DATCDE 07/04/2005
    REFCDE 551
    REFLAB 2
    AGELIV
    DEBCDE
    30 lead1 Faux
    FINCDE
    DEPOLABO
    1 rue du renard
    86524 NICE
    FINTXT
    PAIMEN LR 30
    DATCDE 29/12/2004
    REFCDE 165
    REFLAB 3
    AGELIV
    DEBCDE
    30 lead1 Faux
    FINCDE
    DEPOLABO
    1 rue du renard
    86524 NICE
    FINTXT
    PAIMEN LR 30
    DATCDE 14/01/2005
    REFCDE 200
    REFLAB 3
    AGELIV
    DEBCDE
    30 lead1 Faux
    FINCDE
    DEPOLABO
    1 rue du renard
    86524 NICE
    FINTXT
    PAIMEN LR 30
    DATCDE 04/02/2005
    REFCDE 258
    REFLAB 3
    AGELIV
    DEBCDE
    30 lead1 Faux
    FINCDE
    DEPOLABO
    1 rue du renard
    86524 NICE
    FINTXT
    PAIMEN LR 30
    DATCDE 14/04/2005
    REFCDE 598
    REFLAB 3
    AGELIV
    DEBCDE
    30 lead1 Faux
    FINCDE
    il me faut afficher pour chaque commande, tous les articles differents de chaque client...

  2. #22
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    je dois rassembles toutes les commandes passées par fournisseur et par date.

  3. #23
    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
    il manque un loop avant le close
    Elle est pas belle la vie ?

  4. #24
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    j ai ajouté un loop comme suit:
    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
    29
    Sub alain()
    Dim db As DAO.Database
    Dim rc As DAO.Recordset
    Set db = Application.CurrentDb
    Set rc = db.OpenRecordset("REQUETECDE", dbOpenDynaset)
    Set rc2 = db.OpenRecordset("dbo_ARTICLE_COMM", dbOpenDynaset)
    Open "C:\tonFichier.txt" For Output As #1
    Print #1, "DEBTXT"
    rc.MoveFirst
    Do Until rc.EOF
    Do Until rc2.EOF
    Print #1, rc!NOM
    Print #1, rc!ADRESSE
    Print #1, rc!CP; rc!VILLE
    Print #1, ' Insère une ligne vierge dans le fichier.
    Print #1, "FINTXT" ' Écrit le texte dans le fichier.
    Print #1, "PAIMEN"; Spc(5); rc!Mode_RGLMT; Spc(6); rc!DELAI_PAIEMENT
    Print #1, "DATCDE"; Spc(5); rc!DATE_COMM
    Print #1, "REFCDE"; Spc(5); rc!NUM_COM ' Écrit le texte dans le fichier.
    Print #1, "REFLAB"; Spc(5); rc!REFLAB
    Print #1, "AGELIV" ' Écrit le texte dans le fichier.
    Print #1, "DEBCDE" ' Écrit le texte dans le fichier.
    Print #1, rc2!QTE_ART; rc2!CD_ART; sSQL = "SELECT * FROM rc2 where num_com= rc2!NUM_COM"
    Print #1, "FINCDE" ' Écrit le texte dans le fichier.
    rc.MoveNext
    Loop
    Loop
    Close #1
    End Sub
    mais si j ajoute un loop, j obtiens ce message d erreur:

    erreur d'execution '3021'
    aucun enregistrement en cours

  5. #25
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 34
    Points
    34
    Par défaut
    re bonjour
    il manque également un "movenext" sur le 2nd recordset.
    je n'ai pas vraiment regarder en détail le reste du code, donc en admettant que ce soit correct
    Alain

  6. #26
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    re bonjour alain
    si j ajoute un second movenext a la fin du code, j ai aussi une erreur de debogage

  7. #27
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    oups, j ai édité le message, il a été envoyé 2 fois...

  8. #28
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    aussi, a la fin de la commande, je veux ajouter:
    FINCDE obligatoire suivie du nombre de lignes de la commande
    comme par exemple:

    ....
    ....
    commande 1
    commande 2
    commande 3
    commande 4
    FINCDE 4

  9. #29
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 34
    Points
    34
    Par défaut
    c'est possible d'envoyer ta base, en tout cas un échantillon, pour avoir la structure de tes tables avec qq data?
    ça reste un peu flou sans la structure des tables et requêtes que tu utilises.
    il ya de toute façon les pbs dans ton code.

  10. #30
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    le premier recordset est en fait une requete et le second une table classique
    Fichiers attachés Fichiers attachés

  11. #31
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 34
    Points
    34
    Par défaut
    essaie ça:

    Sub alain()
    Dim db As DAO.Database
    Dim rc As DAO.Recordset
    Dim rc2 As DAO.Recordset

    Set db = Application.CurrentDb
    Set rc = db.OpenRecordset("REQUETECDE", dbOpenDynaset)

    Open "C:\tonFichier.txt" For Output As #1
    Print #1, "DEBTXT"

    rc.MoveFirst
    Do Until rc.EOF

    Print #1, rc!NOM
    Print #1, rc!ADRESSE
    Print #1, rc!CP; rc!VILLE
    Print #1, ' Insère une ligne vierge dans le fichier.
    Print #1, "FINTXT" ' Écrit le texte dans le fichier.
    Print #1, "PAIMEN"; Spc(5); rc!Mode_RGLMT; Spc(6); rc!DELAI_PAIEMENT
    Print #1, "DATCDE"; Spc(5); rc!DATE_COMM
    Print #1, "REFCDE"; Spc(5); rc!NUM_COM ' Écrit le texte dans le fichier.
    Print #1, "REFLAB"; Spc(5); rc!REFLAB
    Print #1, "AGELIV" ' Écrit le texte dans le fichier.
    Print #1, "DEBCDE" ' Écrit le texte dans le fichier.

    Set rc2 = db.OpenRecordset("SELECT * FROM dbo_ARTICLE_COMM where num_com=" & rc!NUM_COM & "")
    rc2.MoveFirst
    Do Until rc2.EOF
    Print #1, rc2!QTE_ART; rc2!CD_ART
    Print #1, "FINCDE" ' Écrit le texte dans le fichier.
    rc2.MoveNext
    Loop

    rc.MoveNext
    Loop

    Close #1
    End Sub

  12. #32
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    re
    merci pour ton aide
    j ai repris ton code, mais j obtiens autre chose:
    en fait il m affiche toutes les commandes et un seul client
    lol
    quel casse tete...

  13. #33
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 34
    Points
    34
    Par défaut
    c'est le but:
    afficher 1 client, puis les commandes qui lui sont liées.

    qu'est ce que tu veux faire exactement?

  14. #34
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    voila ce que j obtiens avec Alain2:

    DEBTXT
    CMC
    121 rue ponthieu
    75008 PARIS
    FINTXT
    PAIMEN CH 60
    DATCDE 19/01/2005
    REFCDE 215
    REFLAB 2
    AGELIV
    DEBCDE
    25 lead1
    FINCDE
    25 lead8
    FINCDE
    10 lead16
    FINCDE
    10 lead14
    FINCDE
    10 lead10
    FINCDE
    10 lead6
    FINCDE
    ....
    ....
    ....
    et il faudrait obtenir:
    DEBTXT
    CMC
    121 rue ponthieu
    75008 PARIS
    FINTXT
    PAIMEN CH 60
    DATCDE 19/01/2005
    REFCDE 215
    REFLAB 2
    AGELIV
    DEBCDE
    25 lead1
    25 lead8
    10 lead16
    10 lead14
    10 lead10
    10 lead6
    FINCDE

  15. #35
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    pour effectuer la somme des lignes de commande, je dois utiliser un compteur?

  16. #36
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 34
    Points
    34
    Par défaut
    il faut juste changer de place la ligne " Print #1, "FINCDE" ' Écrit le texte dans le fichier."

    Sub alain()
    Dim db As DAO.Database
    Dim rc As DAO.Recordset
    Dim rc2 As DAO.Recordset

    Set db = Application.CurrentDb
    Set rc = db.OpenRecordset("REQUETECDE", dbOpenDynaset)

    Open "C:\tonFichier.txt" For Output As #1
    Print #1, "DEBTXT"

    rc.MoveFirst
    Do Until rc.EOF

    Print #1, rc!NOM
    Print #1, rc!ADRESSE
    Print #1, rc!CP; rc!VILLE
    Print #1, ' Insère une ligne vierge dans le fichier.
    Print #1, "FINTXT" ' Écrit le texte dans le fichier.
    Print #1, "PAIMEN"; Spc(5); rc!Mode_RGLMT; Spc(6); rc!DELAI_PAIEMENT
    Print #1, "DATCDE"; Spc(5); rc!DATE_COMM
    Print #1, "REFCDE"; Spc(5); rc!NUM_COM ' Écrit le texte dans le fichier.
    Print #1, "REFLAB"; Spc(5); rc!REFLAB
    Print #1, "AGELIV" ' Écrit le texte dans le fichier.
    Print #1, "DEBCDE" ' Écrit le texte dans le fichier.

    Set rc2 = db.OpenRecordset("SELECT * FROM dbo_ARTICLE_COMM where num_com=" & rc!NUM_COM & "")
    rc2.MoveFirst
    Do Until rc2.EOF
    Print #1, rc2!QTE_ART; rc2!CD_ART
    rc2.MoveNext
    Loop

    Print #1, "FINCDE" ' Écrit le texte dans le fichier.
    rc.MoveNext
    Loop

    Close #1
    End Sub

  17. #37
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    voila, j ai corrigé ton 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    Sub alain2()
    Dim db As DAO.Database
    Dim rc As DAO.Recordset
    Dim rc2 As DAO.Recordset
    Set db = Application.CurrentDb
    Set rc = db.OpenRecordset("REQUETECDE", dbOpenDynaset)
    Open "C:\tonFichier2.txt" For Output As #1
    Print #1, "DEBTXT"
    rc.MoveFirst
    Do Until rc.EOF
    Print #1, rc!NOM
    Print #1, rc!ADRESSE
    Print #1, rc!CP; rc!VILLE
    Print #1, ' Insère une ligne vierge dans le fichier.
    Print #1, "FINTXT" ' Écrit le texte dans le fichier.
    Print #1, "PAIMEN"; Spc(5); rc!Mode_RGLMT; Spc(6); rc!DELAI_PAIEMENT
    Print #1, "DATCDE"; Spc(5); rc!DATE_COMM; Spc(6); rc!DATE_LIVR
    Print #1, "REFCDE"; Spc(5); rc!NUM_COM ' Écrit le texte dans le fichier.
    Print #1, "REFLAB"; Spc(5); rc!REFLAB
    Print #1, "AGELIV"; Spc(5); rc!CODCLI
    Print #1, "DEBCDE" ' Écrit le texte dans le fichier.
    Set rc2 = db.OpenRecordset("SELECT * FROM dbo_ARTICLE_COMM where num_com=" & rc!NUM_COM & "")
    rc2.MoveFirst
    Do Until rc2.EOF
    Print #1, rc2!QTE_ART; rc2!CD_ART; Spc(6); rc2!REM
    'Print #1, "FINCDE" ' Écrit le texte dans le fichier.
    rc2.MoveNext
    Loop
    Print #1, "FINCDE" ' Écrit le texte dans le fichier.
    rc.MoveNext
    Loop
    Close #1
    End Sub
    et j obtiens:
    DEBTXT
    CMC
    121 rue ponthieu
    75008 PARIS
    FINTXT
    PAIMEN CH 60
    DATCDE 19/01/2005 19/01/2005
    REFCDE 215
    REFLAB 2
    AGELIV 1
    DEBCDE
    25 lead1 Null
    25 lead8 Null
    10 lead16 Null
    10 lead14 Null
    10 lead10 Null
    10 lead6 Null
    FINCDE
    ....
    ....
    commande suivante
    on y arrive petit a petit

  18. #38
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 34
    Points
    34
    Par défaut
    pour la somme sur la commande tu peux utiliser un DSum.
    Tu le mets avant le print qui annonce la fin de la commande.

  19. #39
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 34
    Points
    34
    Par défaut
    j'ai mal compris je crois, si c'est le nombre de lignes dans la commande c'est un DCount

  20. #40
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    pour la somme, j utilise la requete: NBLIGNE

    un nouveau probleme se pose:
    il me faut que les remises s affichent au format
    20,00
    28,12
    etc...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. [AC-2010] Export table en txt avec mise en forme spécifique
    Par mumuludo dans le forum Access
    Réponses: 9
    Dernier message: 19/09/2011, 08h38
  2. Export base Access vers fichier texte et mise en forme
    Par Neau57 dans le forum Débuter
    Réponses: 2
    Dernier message: 16/07/2010, 09h04
  3. [WD15] Export table vers fichier .txt
    Par loloxp dans le forum WinDev
    Réponses: 9
    Dernier message: 09/04/2010, 12h21
  4. exporter table vers fichier txt
    Par joe370 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/05/2009, 12h08
  5. export de requete vers excel(pb de mise en forme)
    Par syl221 dans le forum Access
    Réponses: 13
    Dernier message: 20/10/2004, 15h15

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