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 :

Importer le résultat d'une requête Access dans une feuille excel (via Excel)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2009
    Messages : 394
    Par défaut Importer le résultat d'une requête Access dans une feuille excel (via Excel)
    Bonjour,

    J'aimerais importer le résultat d'une requête Access dans une feuille Excel définie ou Sheet en cours...

    L'importation se fait du fichier Excel !

    J'ai enregistré une macro via l'option d'Excel et effectué quelques modifications pour arriver au code suivant :

    Il fonctionne très bien tant que je ne bouge pas le fichier Access de place, mais cela fonctionne si je change l'emplacement de tout le répertoire !... ça je ne me l'explique pas...

    Exemple :
    * J'ai un fichier Excel : c://Test/excel.xlsx
    * J'ai un fichier Access avec réquête... : c://Test/access.accdb

    Je lance le code vba et cela fonctionne

    * Maintenant je change l'emplacement du fichier Access : c://Test/MaJ/access.accdb

    Et là, erreur, il ne trouve plus le fichier Access ! Il veut : c://Test/access.accdb

    Pourtant vu mon code cela devrait fonctionner, non ?

    Ps : monfichier = le chemin complet du fichier Access (j'utilise l'explorateur [Application.GetOpenFilename] pour aller chercher le lien).

    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
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
            "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=  & monfichier &  ;Mode=Share Deny Write;Extended Properties="""";Jet OLEDB:Sy" _
            , _
            "stem database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=6;Jet OLEDB:Database Locking Mo" _
            , _
            "de=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Creat" _
            , _
            "e System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without " _
            , _
            "Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False" _
            ), Destination:=Range("$A$1")).QueryTable
            .CommandType = xlCmdTable
            .CommandText = Array("Requête - Liste Clubs")
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .SourceDataFile = monfichier
            '.ListObject.DisplayName = Tableau_Liste_des_clubs_et_joueurs_2017_2018.accdb_1
            .Refresh BackgroundQuery:=False
        End With
    ps : je désactive cette ligne ['.ListObject.DisplayName = Tableau_Liste_des_clubs_et_joueurs_2017_2018.accdb_1], car elle ne me semble pas utile, cela fonctionne sans...

    Avez-vous une idée au problème, existe-t-il un code VBA plus simple ?...

    Merci d'avance

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2009
    Messages : 394
    Par défaut
    Le problème (à mon avis) est au niveau de cette ligne : Data Source= & monfichier & ;Mode...

    Car il suffit de je remplace "monfichier" par C:\Users\Propriétaire\Desktop\Version 11\MaJ\Liste des clubs et joueurs 2017-2018.accdb et cela fonctionne sans problème...

    Une idée...

    Merci d'avance :-)

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2009
    Messages : 394
    Par défaut
    En résumé, la variable "monfichier" semble être prise pour un mot. "monfichier"...

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/12/2015, 14h20
  2. [AC-2007] Insertion d'une colonne vide dans une requte ACCESS
    Par FramanKalima dans le forum Access
    Réponses: 2
    Dernier message: 14/08/2015, 11h50
  3. Réponses: 1
    Dernier message: 12/12/2011, 10h07
  4. Réponses: 3
    Dernier message: 22/09/2010, 22h00
  5. Réponses: 3
    Dernier message: 05/05/2006, 14h57

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