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

Macros et VBA Excel Discussion :

[VBA-A2003] Export d'un Recordset vers Excel, avec SQL statement


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 2
    Par défaut [VBA-A2003] Export d'un Recordset vers Excel, avec SQL statement
    Bonsoir à tous,

    Je souhaite exporter une table par blocs, définis par la valeur contenue dans en champ, appelé CVALBDM.
    En effet, ma table comporte 500 000+ lignes, ce qui est bien trop pour une feuille Excel !
    Il s'agit de transactions boursières horodatées concernant 38 actions différentes, mais les blocs de données sont mis à la suite les uns des autres. CVALBDM est le code valeur identifiant chaque action.
    Il faut donc une boucle avec le code valeur en variable, pour exporter les données relatives à chaque action dans des feuilles Excel, bloc après bloc...

    D'où le code suivant

    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
    Sub Creation_RecordSet()
     
        'Déclaration des variables
        Dim data As Database
        Dim code_valeur As Long
        Dim Mon_Recordset As Recordset
        Dim requeteSQL As String
     
        Set data = CurrentDb.OpenRecordset("data", dbOpenSnapshot)
     
        'Affectation d'une valeur à la variable code_valeur
        code_valeur = 1526
     
        'Définition de la requête SQL
        requeteSQL = "SELECT * FROM data WHERE cvalbdm = " & code_valeur
     
        'Définition du recordset à appeler
        Set Mon_Recordset = data.OpenRecordset(requeteSQL, dbOpenSnapshot)
     
        'Export du Recordset obtenu par la méthode TransferSpreadSheet
     
    End Sub
    Problème : je ne parviens pas à faire accepter ma requête SQL par aucun des types de Recordset.

    dbOpenTable retourne une erreur Runtime 3011 (ce qui est normal, d'après l'Aide)

    dbOpenDynaset, dbOpenSnapShot et dbOpenForwardOnly retourne une erreur de type 13 (Type mismatch).

    Je ne suis pas du tout à l'aise avec VBA pour Access, ni avec les concepts de Database et Recordset, je suis donc assez perdu...


    Quelle est mon erreur ??

    D'avance merci à tous

    Erwann

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim data As Database 'La tu déclare un objet Database
     
    Set data = CurrentDb.OpenRecordset("data", dbOpenSnapshot)
    'Et sur le set data tu affecte à ton objet Database un ...Recordset.
    'Je pense qu'il ne doit pas aimer
    'OpenRecordset ouvre un recordset et sa valeur de retour est le recordset en question!
    Donc je dirais que tu peux faire un set data=CurrendDb tout simplement.

    Je n'ai pas touché Access depuis quelques années donc je suis un peu rouillée, tu devrais aller sur le forum adapté :http://www.developpez.net/forums/forumdisplay.php?f=45


    A+
    Soazig

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 2
    Par défaut
    Merci pour ta réponse !

    J'avais commencé par faire un

    comme tu le proposes, mais le problème reste entier...

    En revanche, tu as raison pour le forum, je n'avais pas remarqué celui dédié à Access...

    Monsieur le modérateur, SVP , pourriez-vous envoyer ce thread à sa bonne place ??

    Merci beaucoup !

    Erwann

Discussions similaires

  1. Exporter la table Access vers Excel avec VBA
    Par ivoratparis dans le forum VBA Access
    Réponses: 6
    Dernier message: 29/01/2014, 14h09
  2. exporter un data grid vers excel avec flex
    Par yazid06 dans le forum Flex
    Réponses: 1
    Dernier message: 23/04/2012, 15h26
  3. [AC-2010] Exportation d'un recordset vers Excel ne fonctionne qu'une fois sur deux
    Par Scregneugneu dans le forum VBA Access
    Réponses: 3
    Dernier message: 11/03/2012, 19h47
  4. Réponses: 2
    Dernier message: 16/03/2009, 15h57
  5. Réponses: 13
    Dernier message: 12/09/2006, 14h32

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