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 :

copier le resultat d'une requete dans Excel


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Points : 12
    Points
    12
    Par défaut copier le resultat d'une requete dans Excel
    Bonjour,
    Je voudrais faire 2 choses :
    1) copier le résultat d'une requete dans Excel (30000 lignes*10 champs)
    2) numéroter ces lignes par ordre croissant en démarrant en A2 dans Excel

    voici mon code très classique :

    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
    Dim appexcel As Excel.Application
    Dim db As Database, rst As Recordset
     
    Set db = CurrentDb
    Set rst = db.OpenRecordset("base CG", dbOpenDynaset)
     
    Set appexcel = CreateObject("Excel.Application")
    Set wbexcel = appexcel.Workbooks.Open("G:\ETUDES\test.xls")
     
    'renommage de la feuille + effacement des données précédentes
    appexcel.Sheets(1).Select
    appexcel.Sheets(1).Name = "BASE AGENTS " & UCase([cxmois].Column(1) & " " & [an])
    appexcel.Cells.Select
    appexcel.Selection.ClearContents
    appexcel.Range("B1").Select
     
    'copie de la requete "Base CG" sur la feuille Excel en B1
    ??
     
    'numérotation des lignes sur la colonne A à partir de A2
    ??
    merci pour l'aide

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut
    Pour cela utilise un recordset basé sur ta requete puis ensuite tu affiches les résultats dans les cases voulue, voici un exemple :

    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
     
    'creation du recordset à partir de la requete NAV Portfolio
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("NAV Portfolio 2")
     
    'parcourt le recordset puis afficher les données du recordset dans les cellules du fichier excel
    While Not rs.EOF
     
        Appexcel.Cells(4, 1) = rs(15)
        Appexcel.Cells(2, 7) = rs(1)
        Appexcel.Cells(11, 2) = rs(2)
        Appexcel.Cells(10, 2) = rs(8)
        Appexcel.Cells(15, 2) = rs(13)
        Appexcel.Cells(11, 6) = rs(16)
        Appexcel.Cells(4, 7) = rs(17)
     
    rs.MoveNext
    Wend
    Set rs = Nothing
     
     
    End Sub

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    c'est trop long ! j'ai 30000 lignes!
    une autre solution plus rapide sans passer par une boucle?
    merci

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut
    Désolé mais sans faire de boucle, je ne sais pas.

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    si on ouvre le recordset on ne peut le lire qu'enregistrement par enregistrement alors?

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 355
    Points
    34 355
    Par défaut
    salut,
    tu peux regarder la fonction CopyFromRecordSet, ca marche bien

  7. #7
    Membre habitué Avatar de berti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 239
    Points : 175
    Points
    175
    Par défaut
    et pourquoi ne pas faire tout simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "nomde la requête", "C:\export.xls"
    tu fais le trie dans la requête dès le départ et tu places ce code sur un evènement click et le tour est joué.

  8. #8
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Formidable avec le Copyfromrecorset !!



    merci encorre

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

Discussions similaires

  1. copier les resultats d'une requete sql dans un fichier texte
    Par mohammed_amine_wardy dans le forum SQL
    Réponses: 1
    Dernier message: 02/01/2008, 16h23
  2. Réponses: 8
    Dernier message: 23/05/2006, 12h13
  3. resultat d'une requete dans un fichier csv
    Par PAYASS59 dans le forum Requêtes
    Réponses: 1
    Dernier message: 21/09/2005, 21h14
  4. Enregistrer le resultat d'une requete dans un document texte
    Par nmerydem dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/07/2005, 12h32
  5. resultat d'une requete dans une ifrmae aussi??
    Par selifx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 08/02/2005, 14h20

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