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 :

Requête paramétrée en vba [AC-2010]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 34
    Par défaut Requête paramétrée en vba
    Bonjour,

    J'ai à ma disposition une base Access avec plusieurs requêtes paramétrées. Cette base me permet d'effectuer plusieurs simulations en fonction des paramètres renseignés.
    Lorsque je clique pour ouvrir une de ces requêtes, Access me demande automatiquement de renseigner, manuellement, dans une boite de dialogue la valeur de ces paramètres.

    Ma question est la suivante :

    Est il possible de lancer une telle exécution de la requête a partir d'un code vba, sachant que j'ai à ma disposition :
    • Une table qui contient les libellés de chaque paramètre pour chaque requête (2 champs : [RequèteCible], [LibelléParamètre])
    • Une autre avec un code de simulation et un jeu de paramètre complet pour chaque requête (4 champs : [Simulation], [RequèteCible], [LibelléParamètre], [ValeurParamètre]).


    En somme, je veux afficher le résultat de ma requête en sélectionnant uniquement le code de simulation et la requête cible.
    Merci de toute vos réponses et de votre aide.

    Frannzz

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Par défaut
    bonjour,

    tout à fait possible. voir le tuto ici page 63.

    Philippe

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 34
    Par défaut
    bonjour Philippe,

    Merci pour cette réponse. Je connais les objets QueryDefs, voici le code que j'utilise :

    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
    Private Sub Visualiser_Click()
    Dim q As QueryDef
    Dim Param As Recordset, qr As Recordset
    Dim Nom As String, SQL As String
    Dim CodeSource As Integer, Opération As Integer, Analyse As Integer
     
    CodeSource = [Form_Sous Formulaire - Opérations].Source
    Opération = [Form_Sous Formulaire - Opérations].Code
    Analyse = [Form_Opérations].CodeAnalyse
    SourceDonnées.Load (CodeSource)
    Nom = SourceDonnées.Nom
    Nom = Nom & PfCalculs
     
    Set q = CurrentDb.QueryDefs(Nom)
    Set Param = CurrentDb.OpenRecordset("Select * FROM [" & ListeOpérationsP & "] WHERE CodeAnalyse = " & Analyse & " AND CodeOpération = " & Opération & ";")
     
    With Param
        Do While Not .EOF
            q.Parameters(.Fields("Paramètre")).Value = .Fields("Valeur").Value
            .MoveNext
        Loop
    End With
     
    Set qr = q.RecordSet
    ****
     
    End Sub
    Mon problème, c'est de pouvoir visualiser l'ensemble de cette requête via l'interface Access, sans passer par un MsgBox.

    Frannzz

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Par défaut
    bonjour,

    on peut affecter le recordset paramétré au recordset du ou d'un formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ...
    Set Me.Recordset = q.OpenRecordset
    c'est pas ça ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 34
    Par défaut
    Bonjour,

    C'est la piste que j'ai commencé à explorer depuis ce matin et j'obtiens des résultats intéressants.
    J'ai tout de même encore quelques points à régler : La liste des champs à afficher, puisque mes requêtes paramétrées sont totalement ouvertes. Je peux importer n'importe quel type de données et donc avoir potentiellement un nombre illimité de champs et de paramètres (j'effectue plusieurs calculs grâce à des fonctions de calcul développés en VBA).

    C'est pourquoi j'ai créé un formulaire vide, sur lequel j'ajoute des contrôles "textbox" qui correspond à l'ensemble des champs de mon recordset.

    Enfin, une dernière question et je pense que je devrais résoudre l'ensemble de mon problème.
    Lorsqu'un formulaire est modifié, au moment de la fermeture, Access demande si l'on veut enregistrer. Comment neutraliser cette boite de dialogue ?

    Merci

    Frannzz

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Par défaut
    on peut forcer l'enregistrement ou non mais il faut intercepter l'évènement de fermeture ou le provoquer.

    Voir aide d'Access de DoCmd.Save, DoCmd.Close

    Philippe

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

Discussions similaires

  1. Requête paramétrée en VBA et erreur 91
    Par sardaucar dans le forum VBA Access
    Réponses: 16
    Dernier message: 30/10/2014, 17h44
  2. [AC-2007] requête paramétrée en vba
    Par sihamelm dans le forum VBA Access
    Réponses: 11
    Dernier message: 04/11/2012, 22h56
  3. Requête paramétrée depuis VBA
    Par efvsql dans le forum Microsoft BI
    Réponses: 0
    Dernier message: 25/08/2008, 20h24
  4. [code VBA]passage de variable pour une requête paramétrée
    Par christrabin dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/04/2007, 14h30
  5. VBA & Requête paramétrée
    Par gripoil dans le forum Access
    Réponses: 4
    Dernier message: 25/11/2004, 09h54

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