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

Requêtes et SQL. Discussion :

Requêtes paramétrées et VBA


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 26
    Points : 16
    Points
    16
    Par défaut Requêtes paramétrées et VBA
    Bonjour,

    Je voudrais me renseigner sur la possibilité de renseigner des requêtes paramétrées sous Access, dont les paramètres sont des variables globales déclarées dans un module en VBA.

    Il est certain que cela est possible sous VBA, en écrivant carrément le requête et en utilisant l’une des méthode DAO, ADO, RunCmd … pour exécuter la requête

    Ma question est la suivante :

    Est-il possible d’instruire une requête avec des paramètres dans la fenêtre d’Access ?
    Si cela n’est guère possible, comment peut-on afficher par la suite l’ensemble des requêtes déclarées en VBA dans la fenêtre Access ?


    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    Oui c'est possible.

    Comme je ne suis pas certain de ta demande, je vais te donner les 2 solutions qui me paraissent correspondre.

    À partir de VBA il y a un collection paramètres accessible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim bd as dao.database: set db=currentdb
    dim q as dao.querydef: set q=db.querydefs("NomTaRequete")
    q.parameters("NomParam1")=UneValeur 'Attention pas de [] autours du nom
    q.parameters("NomParam2")=UneAutreValeur
    ' Autant de lignes que de paramètres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim r as dao.recordset: set r=q.openrecordset(dbOpenDynaset) 'Pour une lecture des données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    q.execute(dbFailOnError) 'Pour une requête d'action (modification, ajout, suppression)
    Sinon tu peux aussi paramétrer une requête avec des données provenant d'un formulaire en mettant [Forms]![NomTonFormulaire]![NomTonChamp].

    Cela peut être utilisé pour un champ calculé :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    [Forms]![NomTonFormulaire]![NomTonChamp] as [NomTonChampCalculer]

    ou dans un critère :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    Where [NomTomChamp] = [Forms]![NomTonFormulaire]![NomTonChamp]

    En passant définir les paramètres explicitement (via le bouton paramètre dans le concepteur de requête ou dans le SQL) permet de définir un type (ex : Date) et accélère parfois significativement les calculs.

    A+

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Merci pour votre réponses.

    Pourriez-vous me donner un exemple de requête saisi avec paramètre ? Pour que je puisse identifier la façon d’intégrer un paramètre. (type de paramètre : Variable VBA)

    Vous-avez bien précisé le code nécessaire pour exécuter une requête (lire les données). Cependant ces données seront stockées dans la variable q de type dao.querydef. Ai-je bien raison ?
    Comment pourrai-je les exploiter par la suite ? ( expl : Les injecter dans un graph ou carrément les afficher dans un tableau )


    Et finalement, pour appeler une certaine requête paramétrée dois-je passer par du VBA à chaque appel ? ou bien il suffit de appeler la fonction qui détermine les variables/paramètres et par la suite , je peux appeler la requête directement depuis Access.


    Cdlt

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    Je ne saisi pas bien ton besoin.

    Une façon supplémentaire de passer des paramètres à une requête est d'utiliser une fonction VBA qui retourne le paramètre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public fonction Param1() as string
       Param1=UneValeur
    end function
    Cela peut être utilisé pour un champ calculé :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    Param1() as [NomTonChampCalculer]

    ou dans un critère :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    Where [NomTomChamp] = Param1()

    En utilisant cette méthode il est sans doute possible de mettre la requête comme source d'un graphique ou autre sans avoir à donner les paramètres.

    Il est recommandé de ne pas utiliser les variables globales si une solution alternative existe (ex : formulaire de paramétrage).

    A+

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. [AC-2010] Requête paramétrée en vba
    Par frannzz dans le forum VBA Access
    Réponses: 5
    Dernier message: 31/08/2012, 15h54
  4. Requête paramétrée depuis VBA
    Par efvsql dans le forum Microsoft BI
    Réponses: 0
    Dernier message: 25/08/2008, 20h24
  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