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

IHM Discussion :

Recherche multi-critères et zone de liste


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2013
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Recherche multi-critères et zone de liste
    Bonjour,

    J'ai suivi le très bon tuto de Caféine sur la recherche multi-critère (ici)

    J'aimerais pouvoir choisir plusieurs champs dans ma liste déroulante et que le résultat s'affiche dans mon tableau en fonction dans champs sélectionnés.
    Je sais que je dois choisir une "zone de liste" et dans les propriétés mettre la "Sélection multiple" à "Étendue".
    Mais plus aucun résultat ne s'affiche...
    Je sais qu'il faudrait modifier le code du résultat mais je ne sais pas comment.

    Quelqu'un pourrait-il m'aider?
    Merci par avance.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 841
    Points : 7 975
    Points
    7 975
    Par défaut
    Bonsoir,

    Il faudrait qu'on ait le code (la partie où ça bloque) et les éléments qui interagissent pour pouvoir t'aider.

    @+

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2013
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Alors voici le code du tableau résultat:

    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
    Private Sub RefreshQuery()
    Dim SQL As String
    Dim SQLWhere As String
     
    SQL = "SELECT CodeInformatique, ChoixLieu, ChoixSalle, Materiel, NumInventaire, NomCommande FROM T_Informatique Where T_Informatique!CodeInformatique <> 0 "
     
    If Not Me.chkInv Then
        SQL = SQL & "And T_Informatique!NumInventaire like '*" & Me.txtInv & "*' "
     End If
    If Not Me.chkBL Then
        SQL = SQL & "And T_Informatique!NomCommande = '" & Me.cmbBL & "' "
     End If
    If Not Me.chkLieu Then
        SQL = SQL & "And T_Informatique!ChoixLieu = '" & Me.cmbLieu & "' "
     End If
    If Not Me.chkSalle Then
        SQL = SQL & "And T_Informatique!ChoixSalle = '" & Me.cmbSalle & "' "
     End If
    If Not Me.chkMateriel Then
        SQL = SQL & "And T_Informatique!Materiel = '" & Me.cmbMateriel & "' "
     End If
     
    SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     
    SQL = SQL & ";"
     
    Me.LblStats.Caption = DCount("*", "T_Informatique", SQLWhere) & " / " & DCount("*", "T_Informatique")
    Me.LstResults.RowSource = SQL
    Me.LstResults.Requery
     
    End Sub
    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
    Private Sub Form_Load()
     
    Dim ctl As Control
     
    For Each ctl In Me.Controls
        Select Case Left(ctl.Name, 3)
            Case "chk"
                ctl.Value = -1
     
            Case "lbl"
                ctl.Caption = "- * - * -"
     
            Case "txt"
                ctl.Visible = False
                ctl.Value = ""
     
            Case "cmb"
                ctl.Visible = False
     
        End Select
    Next ctl
     
    Me.LstResults.RowSource = "SELECT CodeInformatique, ChoixLieu, ChoixSalle, Materiel, NumInventaire, NomCommande FROM T_Informatique;"
    Me.LstResults.Requery
     
    End Sub

    Je veux pouvoir choisir plusieurs salles dans ma liste déroulante "cmbSalle" (en violet dans le code) et non pas juste une seule.

  4. #4
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour Anastasiane,

    Pour choisir plusieurs valeurs dans une zone de liste il faut se servir de "ItemsSelected".

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim vaVariable as Variant
    For Each vaVariable In TaListe.ItemsSelected
         MsgBox TaListe.ItemData(vaVariable)
    Next
    Bonne journée

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2013
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour Robert et merci beaucoup pour votre réponse!

    je dois donc placer ce code (TaListe=cmbSalle)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim vaVariable As Variant
    For Each vaVariable In cmbSalle.ItemsSelected
         MsgBox cmbSalle.ItemData(vaVariable)
         Next
    mais où ?

    Désolée je suis encore novice en code, mais j'apprécierais vraiment votre aide. J'espère ne pas trop vous déranger.
    Merci d'avance

  6. #6
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour Anastasiane,

    Difficile de répondre comme ça. Mais supposons que tu veux paramétrer la requête pour faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = SQL & "And T_Informatique!ChoixSalle In (" & TesChoix & ")"  'ligne 17 ou TesChoix est le résultat des choix de la liste
    tu dois te servir de ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    'Déclarer ces variable en début de code
    Dim TesChoix as String
    Dim vaVariable as Variant
    'Remplacer la ligne 17 par
         For Each vaVariable In cmbSalle.ItemsSelected  'Parcours la liste des choix sélectionnés
                If TesChoix = "" Then
                    TesChoix = cmbSalle.ItemData(vaVariable)  'Le premier choix
                Else
                    TesChoix = TesChoix & ", " & cmbSalle.ItemData(vaVariable)  'Les autres choix
                End If
         Next
    Ici j'ai choisi un IN(...) tu pourrais aussi faire un Or c'est ton choix.

    Bonne journée

  7. #7
    Futur Membre du Club
    Inscrit en
    Octobre 2013
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Re-bonjour Robert,

    Je te remercie pour ton aide mais malheureusement je n'y arrive pas. Aucun résultat ne s'affiche dans mon tableau de résultats

  8. #8
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour Anastasiane,

    Pourtant ça devrait fonctionner. Peut-être question de format. Je te joints un exemple regarde comment ça fonctionne.

    Bonne journée
    Fichiers attachés Fichiers attachés

  9. #9
    Futur Membre du Club
    Inscrit en
    Octobre 2013
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    J'y ai passé la journée et je crois que je m'embrouille dans tous mes codes...

    Je joins ma base si vous avez le temps de jeter un coup d’œil à "Rechercher Matériel Informatique" mais je comprendrais que non.
    En tout cas un GRAND merci pour votre aide et je garde le fichier précieusement pour d'autres recherches multicritères.
    Fichiers attachés Fichiers attachés

  10. #10
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour Anastasiane,

    Je n'ai pas réellement saisi ce que tu voulais faire, ton code était un peu confus. Voici ce que j'ai fait: Quand tu cliques sur un des boutons j'ouvre le champ texte ou autre. Quand tu sélectionnes j'applique le filtre. Quand tu fermes je supprime le filtre. Je n'ai pas regardé le reste du code mais il semblait fonctionner.

    Regarde ce que ça donne, j'espère que ça répond à tes besoins.

    Bonne journée
    Fichiers attachés Fichiers attachés

  11. #11
    Futur Membre du Club
    Inscrit en
    Octobre 2013
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    C'est exactement ça!!! Quand on clique sur le bouton, la liste choisie apparait et on peut y choisir plusieurs salles parmi les champs. Merci beaucoup Robert!!!!!

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

Discussions similaires

  1. [AC-2003] Filtre Multi critères sur zone de liste par zone de texte
    Par yieiyiei dans le forum VBA Access
    Réponses: 4
    Dernier message: 26/02/2015, 13h38
  2. Réponses: 15
    Dernier message: 04/03/2013, 02h20
  3. Réponses: 1
    Dernier message: 28/02/2012, 09h45
  4. Réponses: 35
    Dernier message: 24/04/2007, 17h11
  5. Procédure stockée: recherche multi-critères
    Par biroule dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 01/09/2004, 16h02

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