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 :

Extraction table vers fichier xls - pb de tri


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Janvier 2015
    Messages : 31
    Par défaut Extraction table vers fichier xls - pb de tri
    Bonjour,

    J'ai créé un code VBA qui me permet d'exporter des tables ACCESS dans un seul fichier Excel (qui comporte alors un onglet par table ACCESS).
    L'exportation fonctionne bien.
    Par contre certaines tables se retrouvent "détriées" sans raison (du moins je n'arrive pas à l'expliquer) après l'export.

    Pour info voici le 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
    Private Sub cumul_résultats_Click()
    ' Cette procédure cumule les tables résultats des différents scénarios
    ' et les agrege dans un fichier , enregistré dans le répertoire
    ' de l'outil access
     
    Dim nom_table As String
    Dim première_lettre As String
    Dim Chemin As String
     
    ' création du répertoire Résultats
    If Dir(Application.CurrentProject.Path & "\Résultats", vbDirectory) = "" Then MkDir (Application.CurrentProject.Path & "\Résultats")
    Chemin = Application.CurrentProject.Path & "\Résultats" & "\export_rés_scénarii_" _
    & Day(Now) & "-" & Month(Now) & "-" & Year(Now) & " " & Hour(Now) & "h" & Minute(Now) & "mn" & Second(Now) & "s"
     
    ' enregistrement des résultats dans un fichier export_résultats (le nom du fichier indique la date et l'heure de la sauvegarde des résultats
    For Each t In CurrentDb.TableDefs
        nom_table = t.Name
        If Left(nom_table, 1) = "R" Then
            DoCmd.TransferSpreadsheet acExport, 8, nom_table, Chemin
        End If
    Next
     
    MsgBox ("Votre fichier est sauvegardé sous  " & Chemin)
     
    End Sub
    Merci d'avance pour votre aide car je sèche complètement

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Cela doit venir du fait qu'officiellement une table n'est jamais triée. Elle est simplement affichée dans un certain ordre et cet ordre ne sert qu'à l'affichage.

    Essaye en remplaçant ta table source par une requête. Un truc du genre :

    reqTaRequete :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select [TaTable].* from [TaTable] order by [TaTable].[TonChamp].

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Janvier 2015
    Messages : 31
    Par défaut
    Ok effectivement ça doit être qqchose de ce style. Du coup ce n'est pas dans cet endroit du programme que ça buggue.

    Est-ce qu'il existe un moyen de trier mon "DAO.Recordset" en code VBA ?

    Merci d'avance pour votre aide .

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Il y a une méthode .Sort sur ton objet recordset mais personnellement je fais plutôt le tri dans une requête et je me sers de cette requête triée comme source du recordset.

    Je trouve cela plus facile à débugger car on peut visualiser une requête mais plus difficilement un Recordset.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Janvier 2015
    Messages : 31
    Par défaut
    En fait, pour être plus précis, j'utilise une table (déjà triée dans access) comme source de mon recordset.

    Ensuite, je charge mon recordset ligne à ligne (en utilisant l'instruction "MoveNext"), en y ajoutant des colonnes de calcul, basées sur les données de ma table source.

    Enfin, j'enregistre mon recordset ainsi construit dans une nouvelle table access

    Et là sans comprendre pourquoi, environ 1 fois sur 10, ma nouvelle table access n'est plus triée comme ma source (les 9 autres fois, ça fonctionne !)

    J'espère que mon problème vous parait plus clair. Je ne comprends vraiment pas pourquoi j'ai ce phénomène. Et je ne maitrise pas bien SQL, mais beaucoup plus VBA ...

    Quelqu'un peut-il m'aider à trouver un moyen pour obtenir des tables triées en sortie de mon programme svp ?

  6. #6
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Janvier 2015
    Messages : 31
    Par défaut
    Petit up !
    J'aimerai vraiment comprendre et trouver une solution à mon problème ...

Discussions similaires

  1. transfert de saisies vers fichier xls
    Par titi31 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/06/2009, 16h33
  2. exporter table vers fichier txt
    Par joe370 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/05/2009, 12h08
  3. transfert données fichier .bat vers fichier .xls
    Par majothi dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/04/2009, 06h35
  4. [Access]lier tables à des Fichiers xls
    Par PiliSql dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/02/2008, 10h40
  5. [WD9] Exporter vers fichier XLS
    Par cactus666 dans le forum WinDev
    Réponses: 1
    Dernier message: 22/10/2007, 11h57

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