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

Access Discussion :

Lien automatique entre fichier Excel et requête Access avec paramêtres


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant Organisation TPE
    Inscrit en
    Juin 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant Organisation TPE
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 82
    Par défaut Lien automatique entre fichier Excel et requête Access avec paramêtres
    Bonjour le forum !

    J'ai un fichier Excel de travail et une base Access de données.

    J'ai préparé 2 requêtes simples dans Access:
    - ventes / jour (paramètre du jour) => R_VentesJourFamille
    - Vente / semaines (plage début / fin) => R_VentesHebdoFamille
    Les 2 requêtes fonctionnent.


    Point Clé:
    j'arrive depuis Excel à lier mon onglet " ImportVentesJour" à ma requête Access R_VentesJourFamille :
    Nom : lien requette.jpg
Affichages : 5476
Taille : 46,4 Ko
    A noter, la date dans cette requête est inscrite pour le moment en "dure".
    Lorsque je la met en "paramètre" ex [saisir la date de Mise A Jour], la requête n'est plus accessible depuis Excel.
    Ensuite, l'autre requête, n'apparait pas quand j'essaie de la lier à Excel.. ?


    Ce que ce je veux obtenir:

    c'est d'avoir mon onglet ImportVenteJour lié à la requête R_VentesJourFamille, mais avec possibilité de piloter le paramêtre "Jour" depuis Excel
    et d'avoir mon onglet ImportVenteHebdo lié à la requête R_VentesHebdoFamille (déjà sans les paramèetre de début / fin, on verra après)...

    piste essayé sans succès:
    j'ai créer un onglet "paramètres" dans excel, que j'ai repris dans Acesss, et j'ai essayé de mettre le champ de DateMaj de la TAble Paramêtre dans la requêtes..
    ca ne marche pas...
    Nom : table param.jpg
Affichages : 6124
Taille : 103,3 Ko

    Pourriez-vous SVP m'aider à mettre cela en oeuvre ?

    Je vous transmets dans le lien ci-dessous, les 2 fichiers concernés et vous remercie par avance pour l'attention que vous porterez à ma demande,

    https://www.wetransfer.com/downloads...9102700/a7cb9f

    RC

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 131
    Par défaut
    Bonjour,

    Les liens entre Excel et Access avec paramètre dynamique ce n'est pas très orthodoxe je ne suis pas étonné que cela ne fonctionne pas. ACCESS et EXCEL sont 2 entités totalement différentes et le lien n'est qu'une vue. Il faudrait investiguer pour voir dans quelle mesure cela peut fonctionner.

    Pour que ta table Paramètre fonctionne il faut lier le champ Parmètres.DateMaj à T-LigneFacture.DateDocument comme tu l'as fait entre Code et CodeArticle, et surtout supprimer [DateMAJ] de la ligne critère.

    Cordialement,

    PS : "en dure" ça n'existe pas , certain parle de "valeur écrite en dur" (surement en analogie avec "en dur dans la pierre", "graver dans le marbre"...) mais c'est une expression qu'il faut bannir . Utilises plutôt le vocable "Statique".
    Valeur/Variable statique = valeur/variable qui ne peut être modifiée.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre émérite
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Par défaut
    Bonsoir loufab et Robert Camion.
    Avec DAO, j'arrive à utiliser les requetes paramétrées Access, depuis Exel de la façon suivante:
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    Sub RunParameterQuery()
     
    '« Étape 1: déclarez vos variables
        Dim MyDatabase As DAO.Database    '.Base de données
        Dim MyQueryDef As DAO.QueryDef
        Dim MyRecordset As DAO.Recordset
     
        '« Étape 2: identifier la base de données et de requête
       On Error GoTo RunParameterQuery_Error
     
           Set MyDatabase = DBEngine.OpenDatabase("C\BD_PDM\Base de données PDM30.accdb")   
    SuiteErreur:    Set MyQueryDef = MyDatabase.QueryDefs("Excel_Stand")
     
        '« Étape 3: définir les paramètres
        Sheets("Essais_snapshot").Activate
     
        With MyQueryDef
            .Parameters("[Debut]") = Range("A3").Value
            .Parameters("[Fin]") = Range("A3").Value + 6
        End With
     
        '« Étape 4: Ouvrez la requête
        Set MyRecordset = MyQueryDef.OpenRecordset(, dbReadOnly)
     
        '« Étape 5: Effacer contenu précédent
        Sheets("Essais_snapshot").Select
        ActiveSheet.Range("A5:K10000").ClearContents
     
        '« Étape 6: copier le jeu d'enregistrements vers Excel
        ActiveSheet.Range("A5").CopyFromRecordset MyRecordset
     
        '« Étape 7: ajouter les noms de titre de colonnes dans la feuille de calcul
        'For i = 1 To MyRecordset.RecordCount
        'ActiveSheet.Cells(4, i).Value = MyRecordset.Fields(i - 1).Name
        'Next i
     
        'MsgBox " Votre requête a été exécutée"
     
        MyRecordset.Close
        MyQueryDef.Close
        MyDatabase.Close
    0    Set MyDatabase = Nothing
        Set MyQueryDef = Nothing
        Set MyRecordset = Nothing
     
       On Error GoTo 0
       Exit Sub
     
    RunParameterQuery_Error:
     
    If Err.Number = 3044 Then
    'Set MyDatabase = DBEngine.OpenDatabase("C\BD_PDM\Base de données PDM30.mdb")    ';DefaultDir=C:\BD_PDM.mdb")
    Set MyDatabase = DBEngine.OpenDatabase(MaBase)    ';DefaultDir=C:\BD_PDM.mdb")
     
            Resume Next
            Err.Clear
            GoTo SuiteErreur
        End If
     
        MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure RunParameterQuery of Module Module4"
     
    End Sub
    Cdlt

  4. #4
    Membre confirmé
    Homme Profil pro
    Consultant Organisation TPE
    Inscrit en
    Juin 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant Organisation TPE
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 82
    Par défaut => réponse à Thierry
    Bonjour Thierry

    je te remercie pour ton message aussi.
    si j'ai bien compris, le code que tu as mis se place depuis le VBA d'Excel pour piloter la requete d'Access avec le ou les paramètres souhaité(s).

    Si c'est bien cela, ca serait carrément ce que je souhaite faire, ie récupérer mes données d'Access et les importer de façon quasi transparente pour l'utilisateur dans le fichier de travail excel...

    j'ai essayé d'appliqué le bout de code, mais ca tempête dès le départ, j'ai du louper un coche...
    peux tu m'aider STP:

    Nom : import Access.jpg
Affichages : 5277
Taille : 261,4 Ko

    j'ai collé dans le module "Import Access"
    Fichier Excel lié Access 010216_RC.xlsm


    merci

    RC

  5. #5
    Membre confirmé
    Homme Profil pro
    Consultant Organisation TPE
    Inscrit en
    Juin 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant Organisation TPE
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 82
    Par défaut => réponse à Loufab
    Loufab, bonjour,

    merci pour avoir pris le temps de répondre.

    Les liens entre Excel et Access avec paramètre dynamique ce n'est pas très orthodoxe je ne suis pas étonné que cela ne fonctionne pas. ACCESS et EXCEL sont 2 entités totalement différentes et le lien n'est qu'une vue.
    c'est une piste que j'avais vu sur un site, mais de la à te dire si c'est une orthodoxe ou pas ...
    http://www.excel-formations.fr/Trucs...s/ACCESS01.php

    Vocable "Variable Statique ":
    bien noté, en "dure" dans ma mémoire :;


    Essai application de ta reco:
    Pour que ta table Paramètre fonctionne il faut lier le champ Parmètres.DateMaj à T-LigneFacture.DateDocument comme tu l'as fait entre Code et CodeArticle, et surtout supprimer [DateMAJ] de la ligne critère.
    pour rappelle, je veux donc filtrer ma requête selon la date de MAJ qui se trouve dans la feuille excel liée...
    j'ai fait comme su me l'a suggéré, mais j'arrive à un blocage:
    Nom : requete modif.jpg
Affichages : 5704
Taille : 151,0 Ko
    Nom : requete modif2.jpg
Affichages : 5128
Taille : 35,5 Ko

    voilà, l'ai -je mal posé ?

    à te lire et MERCI !

    RC

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 131
    Par défaut
    En effet, nous ne sommes plus dans le cadre d'une source liée mais c'est efficace.

    cf http://loufab.developpez.com/tutorie...herche3fin/#LV
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 131
    Par défaut
    Là tu es coté EXCEL, ce code est coté ACCESS.

    Pour que ça fonctionne il te faut faire référence au DAO d'ACCESS surement Microsoft DAO 3.6.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  8. #8
    Membre émérite
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Par défaut
    Bonjour le forum.

    @ loufab, la référence DAO 3.6 marche pour les fichiers .mdb . Pour les .accdb il faut la référence "Microsoft Office 12.0 Access database engine Object Library" , 12.0 pour access 2007.
    @ Robert Camion, le code et la référence à mettre dans Excel.
    Cdlt

  9. #9
    Membre émérite
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Par défaut
    Un oubli de ma part, à la fin du code, dans la gestion d'erreur ,si la base n'est pas trouvée ,j'avais dans un module, déclarée une constante "MaBase" avec son chemin.
    C'est un détail, tu peux supprimer cette partie du code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Option Explicit
     
    Public Const MaBase As String = "C:\BD_PDM\Base de données PDM30.accdb"

  10. #10
    Membre confirmé
    Homme Profil pro
    Consultant Organisation TPE
    Inscrit en
    Juin 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant Organisation TPE
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 82
    Par défaut
    Thierry

    je comprends donc qu'on est du côté VBA d'excel

    j'ai cherché dans dans les références VBA , et j'ai pas trouvé celle dont tu parles ci-dessus, mais la suivante:
    "Microsoft Office 15.0 Access database enginge Objetct Library"

    du coup, quand je lance la macro depuis le VBA Excel, cela m'ouvre l'interface qui doit à priori me permettre de me connecter à la base access
    (je pensais que le code avait pour fonction de crééer ces liens...?)

    En tout cas, mes fichiers Excel et Access se situent comme suit : sur C: dans un onglet Forum pour simplifier
    (j'ai repris ces infos dans le code initial et essayé le lier les fichiers
    Nom : import access suite3.jpg
Affichages : 5142
Taille : 84,4 Ko
    problème je ne vois pas le fichier Access quand je le cherche dans l'emplacement...
    Nom : source.jpg
Affichages : 5037
Taille : 57,9 Ko


    Ce que je voudrais si c'est possible et sans vouloir abuser de ton temps mais là je n'y arraive pas..., c'est que tu puisse effectuer le lien entre les mes 2 fichiers afin de voir si ca fonctionne correctement, et notamment la prise en compte de la variable DateMaj.. et je l'adapterai sur mon chemin local in fine ?;..

    https://www.wetransfer.com/downloads...1102350/95b924

    merci d'avance si tu acceptes de faire la manip !!! , cf fichiers joint dans le lien

    RC

  11. #11
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 131
    Par défaut
    Citation Envoyé par Thierry_PALLIER Voir le message
    Bonjour le forum.

    @ loufab, la référence DAO 3.6 marche pour les fichiers .mdb . Pour les .accdb il faut la référence "Microsoft Office 12.0 Access database engine Object Library" , 12.0 pour access 2007.
    @ Robert Camion, le code et la référence à mettre dans Excel.
    Cdlt
    En effet, cependant, sauf omission de ma part, Robert n'a pas spécifié la version d'Office qu'il utilise. Sinon oui, 14.0 pour la 2010, 15 pour la 2013, 16 pour la 2016. Donc Robert est sur un Office 2013 !
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  12. #12
    Membre émérite
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Par défaut
    je regarde çà, mais déjà, dans le module "Divers", il y a un appel à une procédure "Menu" qui n'existe pas !

  13. #13
    Membre confirmé
    Homme Profil pro
    Consultant Organisation TPE
    Inscrit en
    Juin 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant Organisation TPE
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 82
    Par défaut
    Thierry

    ce sont des modules avec un historiques de sub plus ou moins utilisées ici,
    si cela pose problème, tu peux toutes les endormire et te concentrer sur l'import Access....

    merci!

    RC

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

Discussions similaires

  1. [XL-2010] Liens entre fichiers excel : problème lors d'un changement de dossier
    Par Angélique01 dans le forum Excel
    Réponses: 3
    Dernier message: 26/01/2015, 23h22
  2. Réponses: 10
    Dernier message: 06/08/2010, 23h01
  3. Lien entre fichier excel
    Par scoubida42 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 20/02/2009, 17h56
  4. Liens entre fichiers Excel
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/06/2007, 12h30
  5. [VBA]Lien entre fichiers excel : Update en VBA
    Par criocaps dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/01/2006, 09h07

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