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 :

Overture d'un formulaire basée sur une requêt paramétée


Sujet :

VBA Access

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 132
    Points : 88
    Points
    88
    Par défaut Overture d'un formulaire basée sur une requêt paramétée
    Bonjour à tous,

    Je souhaite ouvrir un formulaire basée sur un requête qui recoit 2 paramètres.
    Le code de ma requête est le suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PARAMETERS [param1] Text ( 255 ), [param2] Text ( 255 );
    SELECT a.Client, a.GSC, a.Famille, Famille.Lib_Fam, (select  sum(ca) from statcli  where client=[param1] and gsc=[param2] and période between 200601 and 200612 and famille=a.famille) AS Année_Précédente, FROM Statcli AS a INNER JOIN Famille ON a.Famille = Famille.Code_Fam
    GROUP BY a.Client, a.GSC, a.Famille, Famille.Lib_Fam
    HAVING (((a.Client)=[param1]) AND ((a.GSC)=[param2]));
    Comment éviter lorsque je fais le docmd.openform l'affichage de 2 fenêtres qui me demandent d'entrer successivement Param1 et param2; Je précise que ces 2 paramètres sont récupérés à partir d'un zone de liste

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Il faut remplir tes paramêtres avant l'ouverture :-).

    La méthode la plus simple est de remplacer [param1] par le nom d'une champ de formulaire ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HAVING (((a.Client)=[Forms]![MonFormParam]![Param1])
    .

    Une seconde méthode consiste à ne pas filtrer ta requète mais d'appliquer un filtre sur le formulaire lui-même.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    docmd.OpenForm "MonForm",,,"[a.Client]=" & me.[param1]
    La seconde méthode permet de faire un couplage léger ce qui rend ta requète indépendante du form mais elle peut être plus lente.

    A+

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 132
    Points : 88
    Points
    88
    Par défaut
    Merci de ta réponse;

    pour la 2ème méthode, je ne pense pas qu'elle puisse s'appliquer car comme tu as pu de le voir, il y a dans ma requête une sous-requête qui utilise les mêmes paramètres.

    Pour le 1ère méthode, est-ce qu'il faut écrire du code sur l'ouverture du formulaire et faire ensuite le docmd.openform ?

    Merci d'avance

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Non, il faut seulement que le form MonFormParam soit ouvert.

    Généralement c'est là que tu fais ta sélection et ensuite tu ouvre le form qui affiche les résultats.

    Notes : Forms est la collection des formulaires ouverts.

    A+

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

Discussions similaires

  1. Requête CpteDom basée sur une requête
    Par Yoshi592 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 21/07/2007, 12h04
  2. Dupliquer enregistrement formulaire basé sur une requête
    Par fredpeca dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/02/2007, 12h40
  3. Sous-Formulaire basé sur une requête nécessitant des paramètes
    Par nicou50 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 02/09/2006, 22h18
  4. Ouvrture Formulaire basé sur une requête paramétrée
    Par teffal dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 10/07/2006, 16h04
  5. formulaire fondé sur une requête
    Par amélie22 dans le forum IHM
    Réponses: 2
    Dernier message: 12/06/2006, 13h22

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