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 :

Problème d'export table Access --> Excel [AC-2003]


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2012
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Problème d'export table Access --> Excel
    Bonjour à tous

    Cela fait quelques jours que je me retrouve avec une erreur Variable objet ou variable bloc With non définie (erreur 91) sur mon code...

    Ce que je veux faire en VBA c'est : Executer l'ensemble de mes requetes et enregistrer automatiquement chaque résultat (chaque table) dans un fichier excel. Un fichier excel pour chaque table, qui prend automatiquement le nom de la table. (J'ai environ 100 tables)

    La partie de lancement automatique des requêtes marche sans problèmes, j'obtiens mes résultats sous forme de table.
    Par contre, c'est la partie exportation qui bloque...

    Voilà mon code :

    ' fonction pour obtenir le chemin relatif de la base (Fonctionne sans pb)
    Function GetCurDir(Optional NbSousRep As Single)

    Dim str As String
    Dim pos, i As Integer

    If NbSousRep = 0 Then NbSousRep = 1
    str = CurrentDb.Name()
    For i = 1 To NbSousRep
    pos = InStrRev(Left(str, Len(str) - 1), "\")
    If pos = 0 Then Exit For
    str = Mid(str, 1, pos)
    Next i

    GetCurDir = str
    End Function


    Public Sub RunMyQueries()

    ' Suppresion des messages d'avertissement
    DoCmd.SetWarnings (False)

    Dim dbs As Database
    Dim qry As QueryDef
    Dim tbl As TableDef

    Dim strWorksheetPath As String

    Set dbs = CurrentDb()
    For Each qry In dbs.QueryDefs
    If Left(qry.Name, 1) <> "~" Then
    DoCmd.OpenQuery (qry.Name)
    'If it is not an action query then you may want to close the query?
    End If
    Next qry

    For Each tbl In dbs.TableDefs
    strWorksheetPath = GetCurDir() & tbl.name & ".xls"
    'Commande qui bloque :
    DoCmd.OutputTo acOutputQuery, qry.Name, , strWorksheetPath, False


    Next tbl

    Set qry = Nothing
    Set dbs = Nothing
    Set tbl = Nothing

    End Sub

    J'ai bien évidemment les références :
    Excel, DAO, Access, OLE automation, Scripting Runtime, Office Runtime, Visual Basic For Applications Extensibility, Visual Basic For applications, Microsoft JET and Replication Objects...
    (Oui j'en ai pas mal, à force de travailler sur ma VBA, j'en ai ajouté sans les enlever... Est-ce que ça peut poser problème ?)

    Tbl.name prend bien le nom des tables,
    strWorksheetPath aussi, il est sous la forme : "C:\Docs\nomdematable.xls

    J'avais essayé de faire non pas les tables mais les recordset et transferspreadsheet, mais ce fut un échec cuisant.
    Je débute et je n'ai jamais fait de VBA !

    Merci à tous,
    J'espère que quelqu'un verra clair dans mon code

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonjour,

    Je pense qu'il y a une contradiction entre :
    enregistrer automatiquement chaque résultat (chaque table) dans un fichier excel
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each tbl In dbs.TableDefs
    strWorksheetPath = GetCurDir() & tbl.name & ".xls"
    'Commande qui bloque :
    DoCmd.OutputTo acOutputQuery, qry.Name, , strWorksheetPath, False
    Next tbl
    A la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OutputTo acOutputQuery, qry.Name, , strWorksheetPath, False
    Tu appelles tes requêtes et non tes tables, on devrait avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OutputTo acOutputTable, tbl.Name, , strWorksheetPath, False
    Bonne continuation

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2012
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bon sang, je l'avais vu ça, mais j'avais dû bidouiller trop de choses en même temps et ça ne marchait pas...

    Maintenant, ça marche.
    Je te remercie

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

Discussions similaires

  1. export table access vers excel qui stoppe au niveau d'une table
    Par Dermochelys dans le forum VBA Access
    Réponses: 7
    Dernier message: 10/11/2009, 17h01
  2. Export table Access vers plusieurs fichiers Excel
    Par entrepreneur dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/01/2008, 09h18
  3. Problème exportation table Access dans Excel
    Par Thiazung dans le forum Access
    Réponses: 5
    Dernier message: 02/10/2006, 17h12
  4. Export journalier Table Access vers Excel
    Par SylvainJ dans le forum Access
    Réponses: 1
    Dernier message: 04/08/2006, 15h00
  5. Problème pour exporter une table Access vers Excel
    Par PAULOM dans le forum Access
    Réponses: 22
    Dernier message: 02/05/2006, 13h42

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