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 :

Requete parametrée par un formulaire


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Points : 41
    Points
    41
    Par défaut Requete parametrée par un formulaire
    Bonjour, je débute tout juste sur access et travaille actuellement sur mon premier projet. Je suis actuellement blocké sur la chose suivante: je cherche à créer un champ de recherche sur mon formulaire. En selectionnant plusieurs critères parmi des liste déroulantes où des cases à cochées, je souhaite voir s'afficher la liste des utilisateurs correspondant à ces critères dans une zone de liste. Ceci en temps réel si possible.
    Je voudrais donc qu'initialement tous les utilisateurs entrés dans la bdd soit présents dans la zone de liste, et qu'en cochant des cases ou autre, cette liste s'affine.
    J'espère avoir été clair, et surtout que quelqu'un saura me mettre sur la bonne voie.
    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour, Kimar

    Il faut ajouter à ta liste l'évènement On_GotFocus
    Dans ta procédure il faut redéfinir le contenu de ta liste suivant les différends choix effectués.

    Me.ListeUtil.RowSource = "SELECT * FROM TableUtil WHERE Condition1 AND/OR Condition2 AND/OR Etc...."
    'Ne pas poublié de recalculer ta liste
    me.ListeUtil.Requery

    J'espère avoir été clair

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 64
    Points : 48
    Points
    48
    Par défaut
    Pour ma part, je sais pas si c'est la meilleur solution, mais ce que je fais c'est que je met des conditions If imbriqué dans le code VBA, du genre,
    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
    If zonedetext1 = "" alors
        if zonedetext2 = "" alors
          là tu met ta requete et tout le tralala ( je sais pas si tu sais faire)
           endif
          if zonedetext2<>"" alors
      requete....
        endif
    endif
    
    If zonedetext1 <>""alors
        if zonedetext2 = "" alors
          là tu met ta requete et tout le tralala ( je sais pas si tu sais faire)
           endif
          if zonedetext2<>"" alors
               requete....
        endif
    endif
    C'est répétitive, faudrait tenter avec une select case, mais faut faire ta structure sur papier avant,pour ne pas oublier aucun cas.

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Points : 41
    Points
    41
    Par défaut
    Merci bien ! La première solution me semble la moins laborieuse. Reste à étudier un peu le SQL pour apprendre à écrire mes conditions. J'y cours...

  5. #5
    Invité
    Invité(e)
    Par défaut Pour les conditions...
    Pour les conditions, il suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim Cond(6) ' Pour 6 conditions
    ' *** PREMIERE CONDITION = ZONE DE LISTE (1 colonne)
    ' Le critère est alphanumérique
    Cond(1) = "[LeChampPourCritère1]= '" & Me.ListeDéroulante.Column(0) &"'"
    ' Le critère est numérique
    Cond(1) = "[LeChampPourCritère1]= " & Me.ListeDéroulante.Column(0)
    ' *** DEUXIEME CONDITION = CASE A COCHER
    Cond(2) = "[LeChampPourCritère2]= " & Me.CaseACocher.value
    ' Etc...
    ' Ensuite on créé la requète de ListeUtil
    Me.ListeUtil.RowSource = "SELECT * FROM TableUtil WHERE " & Cond(1) & " AND " & Cond(2) & " OR " & Etc...
    Me.ListeUtil.Requery
    J'espère être clair

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Points : 41
    Points
    41
    Par défaut
    Si j'ai bien compris, je dois créer une nouvelle table (disons TableCritere) où seront stockés les critères selon ce qu'on choisis dans le formulaire. Et le code donnerait à peu près ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub ListeUtil_On_GotFocus(Cancel As Integer)
    Me.ListeUtil.RowSource = "SELECT * FROM TableUtil WHERE TableUtil.Champ1 LIKE TableCritere.Critere1 AND TableUtil.Champ2 LIKE TableCritere.Critere2;"
    Me.ListeUtil.Requery
    Edit: J'avais pas vu la réponse. Merci !

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Points : 41
    Points
    41
    Par défaut


    Je n'arrive pas à mes fins. Voilà mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub ListeUtil_On_GotFocus(Cancel As Integer)
    Dim Cond(2)
    Cond(1) = "Main.Site= '" & Me.Listederoulante.Column(0) & "'"
    Cond(2) = "Main.Logxact= " & Me.Caseacocher.Value
    Me.ListeUtil.RowSource = "SELECT * FROM Main.Last_Name WHERE " & Cond(1) & " AND " & Cond(2)
    Me.ListeUtil.Requery
    Quand je cré les élements Listederoulante, Caseacocher et ListeUtil, dois je sélectionner "Je taperai les valeurs souhaités" ?

    Merci d'avance ...

  8. #8
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut Requête paramétrée
    Salut Kimar, salut à tous

    Mieux vaut un exemple qu'un long bla bla

    Je joint une fichier MDB et vois ce que tu veux dedans. J'espère tout simplement que cela va t'aider.

    A +
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi!
    Albert Einstein

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Points : 41
    Points
    41
    Par défaut
    C'est plus que sympathique de ta part. J'arrive enfin à ce que je veux . Pour ceux que ca aiderait aussi, il y a ce tutorial dans le même style: http://cafeine.developpez.com/access...echerchemulti/


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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/08/2008, 03h33
  2. Requete recherche par parametre
    Par piogo113 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 09/11/2007, 12h59
  3. requete avec parametre sur des formulaires
    Par warix dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 12/09/2007, 17h48
  4. Formulaire et requete parametrée
    Par Terminator dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 16/02/2007, 20h20
  5. Réponses: 9
    Dernier message: 25/01/2006, 14h29

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