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 :

Rafraichir une zone de liste à partir d'une zone de texte


Sujet :

IHM

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 132
    Points : 68
    Points
    68
    Par défaut Rafraichir une zone de liste à partir d'une zone de texte
    Salut à tous.
    Voila j'explique mon problème.
    J'ai fait un formulaire de recherches multi-critères sur la base de celui-ci
    http://cafeine.developpez.com/access...echerchemulti/
    Merci à toi Caféine.
    Je voudrais rafraichir ma zone de liste en meme temps que je rentre des données dans mes zones de textes.
    J'ai essayé sur pas mal d'évènements de ma zone de texte mais je n'ai pas trouvé.
    Comment puis je faire ?
    Merci

    PS : Apparement le code présent sur le site pour le formulaire de recherches multi-critères est différent de celui de la base exemple. Le code source du site ne marche pas.

  2. #2
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    Est-ce que tu as pensé à faire un Requery ???

    En gros, si j'ai bien compris ce que tu cherches à faire c'est lorsque tu remplis le champ A et le champ B alors mettre a jour le sous-formulaire X ...

    Essaie de faire ceci :

    Sur entrée ( de tes champ ) ou alors sur changement si c'est une zone de liste déroulante ... ....

    Ou au pire si tu ne veux pas faire comme cela, tu peux essayer de mettre le code sur les évènements : Perte ou réception focus ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom_du_sous_formulaire.Requery
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 132
    Points : 68
    Points
    68
    Par défaut
    Je sais pas si tu as regardé le tuto de Caféine sur le formulaire multi-recherche.
    Il y à 3 zone de texte.
    Le problème (enfin c'est pas un problème mais plutot une amélioration)
    je voudrai que dès que je rentre quelque chose dans un de ces champs il me mette à jour ma zone de liste en bas.

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 132
    Points : 68
    Points
    68
    Par défaut
    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
    32
    33
    34
    35
    36
    Private Sub RefreshQuery()
    Dim sql As String
    Dim sqlWhere As String
    Dim strStats As String
    Dim iResult As Integer
     
    sql = "SELECT Numproc,RefProc,LibelleProc,LibelleCateg,LibelleSousCateg " _
        & "FROM dbo_tbProcedures,dbo_tbCategories,dbo_tbSousCateg WHERE dbo_tbProcedures!NumProc <> 0 " _
        & "AND (dbo_tbProcedures.RefCateg=dbo_tbCategories.RefCateg) " _
        & "AND (dbo_tbProcedures.RefSousCateg=dbo_tbSousCateg.RefSousCateg)"
     
    If Me.ChkCateg Then
        sql = sql & "AND (dbo_tbCategories.LibelleCateg = '" & Me.CbbCateg & "') "
    End If
    If Me.ChkSousCateg Then
        sql = sql & "AND (dbo_tbSousCateg.LibelleSousCateg = '" & Me.CbbSousCateg & "') "
    End If
    If Me.ChkLibProc Then
        sql = sql & "AND (dbo_tbProcedures.LibelleProc LIKE '*" & Me.TxtLibProc & "*') "
    End If
    If Me.ChkRefProc Then
        sql = sql & "AND (dbo_tbProcedures.RefProc LIKE '*" & Me.TxtRefProc & "*') "
    End If
     
    sqlWhere = Trim(Right(sql, Len(sql) - InStr(sql, "WHERE") - Len("WHERE") + 1))
    sql = sql & ";"
    Me.LstResult.RowSource = sql
    Me.LstResult.Requery
    iResult = Me.LstResult.ListCount - 1
    If iResult = -1 Then
        strStats = String(1, "0")
    Else
        strStats = Me.LstResult.ListCount - 1
    End If
    strStats = strStats & "/" & DCount("*", "dbo_tbProcedures")
    Me.LblStats.Caption = strStats
    Je met le code de ma fonction qui me sert de requery pour ma liste.
    Cette fonction est appelé après chaque évenement afterupdate des zones de textes.

    Dolphy35
    J'ai vu ton message mais ça ne fonctionne pas. Enfin si, ça fonctionne mais pas comme je veut. Je voudrai faire une mise à jour en direct, c'est à dire que quand je commence à taper une lettre dans ces zones de textes, je voudrai que la zone de liste se mette à jour directement sans avoir à cliquer ailleur.
    J'èspère être assez clair. Désolé j'ai un peu de mal à expliquer mon problème.

  5. #5
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    re,

    au lieu de AfterUpdate mais Change (sur changement).

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 132
    Points : 68
    Points
    68
    Par défaut
    Effectivement avec l'évenement Changela zone de liste est mis à jour, mais la modifications de la zone de texte n'est pas prise en compte car quand j'affiche un
    Il ne m'affiche rien.
    Il faut encore que je clique ailleur pour que les modifications soit prise en compte sur mes champs zones de texte.

  7. #7
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Me.txtLibProc.Text
    Cela fonctionne.
    Bon Week

  8. #8
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 132
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par Dolphy35
    salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Me.txtLibProc.Text
    Cela fonctionne.
    Bon Week
    Ok merci. ça fonctionne.
    Mais maintenant il me dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (erreur d'execution 2185: impossible de faire reference à
    une propriete ou de la definir pour un controle si ce
    dernier n'est pas activé.)
    ça me génère cette erreur quand je coche pour la première fois la case pour afficher la zones de texte.

  9. #9
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 132
    Points : 68
    Points
    68
    Par défaut
    C'est bon j'ai trouvé une solution. J'ai modifié mon code.
    L'ancien :
    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
    Private Sub ChkLibProc_Click()
    If Me.ChkLibProc Then
        Me.TxtLibProc.Visible = True
    Else
        Me.TxtLibProc.Visible = False
    End If
        RefreshQuery
    End Sub
    -----------------------------------------------------------------------------------
    If Me.ChkCateg Then
        sql = sql & "AND (dbo_tbCategories.LibelleCateg = '" & Me.CbbCateg & "') "
    End If
    If Me.ChkSousCateg Then
        sql = sql & "AND (dbo_tbSousCateg.LibelleSousCateg = '" & Me.CbbSousCateg & "') "
    End If
    If Me.ChkLibProc Then
            sql = sql & "AND (dbo_tbProcedures.LibelleProc LIKE '*" & Me.TxtLibProc & "*') "
    End If
    If Me.ChkRefProc Then
        sql = sql & "AND (dbo_tbProcedures.RefProc LIKE '*" & Me.TxtRefProc & "*') "
    End If
    Le nouveau :
    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
    Private Sub ChkLibProc_Click()
    If Me.ChkLibProc Then
        Me.TxtLibProc.Visible = True
    Else
        Me.TxtLibProc.Visible = False
        RefreshQuery
    End If
    ----------------------------------------------------------------------------------
    End Sub
    If Me.ChkCateg Then
        sql = sql & "AND (dbo_tbCategories.LibelleCateg = '" & Me.CbbCateg & "') "
    End If
    If Me.ChkSousCateg Then
        sql = sql & "AND (dbo_tbSousCateg.LibelleSousCateg = '" & Me.CbbSousCateg & "') "
    End If
    If Me.ChkLibProc Then
            sql = sql & "AND (dbo_tbProcedures.LibelleProc LIKE '*" & Me.TxtLibProc.Text & "*') "
    End If
    If Me.ChkRefProc Then
        sql = sql & "AND (dbo_tbProcedures.RefProc LIKE '*" & Me.TxtRefProc.Text & "*') "
    End If
    Merci à tous.
    Et merci beaucoup à toi Dolphy35.

  10. #10
    Membre du Club

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 117
    Points : 65
    Points
    65
    Par défaut
    euh... il est tard je suis surement fatigué et peut-être miro mais... je ne vois pas la défférence entre l'ancien et le nouveau code.

    De plus j'ai beau mettre mes "txt..." sur "sur changement" et bien, ma zone de liste ne s'actualise pas au fur et à mesure...

    Quelqu'un pourrait-il détailler la manip' svp?

  11. #11
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 132
    Points : 68
    Points
    68
    Par défaut
    La différence est la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If Me.ChkLibProc Then
            sql = sql & "AND (dbo_tbProcedures.LibelleProc LIKE '*" & Me.TxtLibProc & "*') "
    End If 
    ---------------------------------------------------------------------------------
    If Me.ChkLibProc Then
            sql = sql & "AND (dbo_tbProcedures.LibelleProc LIKE '*" & Me.TxtLibProc.Text & "*') "
    End If
    La différence est que j'ai mi Me.TxtLibProc.Text au lieu de Me.TxtLibProc

    Mais aussi

    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
     
    Le nouveau
    Private Sub ChkLibProc_Click()
    If Me.ChkLibProc Then
        Me.TxtLibProc.Visible = True
    Else
        Me.TxtLibProc.Visible = False
        RefreshQuery
    End If 
     
    L'ancien
    Private Sub ChkLibProc_Click()
    If Me.ChkLibProc Then
        Me.TxtLibProc.Visible = True
    Else
        Me.TxtLibProc.Visible = False
    End If
        RefreshQuery
    End Sub
    Et ici j'ai mi l'appel de ma fonction RefreshQuery dans ma condition If

  12. #12
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Salut

    Sur changement tu viens tu viens prendre ta valeur dans ta zone par
    Ensuite selon la source de ta zone de liste sois tu rafraichis
    exemple:
    Sois tu parmètre la source exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Maliste.RowSource = "SELECT .... WHERE " & MaListe & ";"

  13. #13
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 132
    Points : 68
    Points
    68
    Par défaut
    Je peut mettre le sujet à résolu ?

  14. #14
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    re,

    Si c'est Ok pour toi met le en je répondais juste à SpyesX.

  15. #15
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 132
    Points : 68
    Points
    68
    Par défaut
    Ok merci.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    Bonsoir,

    Je me permets de ré ouvrir cette discussion.
    J'ai créé une zone de liste qui se met à jour à chaque fois que je tape une lettre dans un champ de texte.

    Cela fonctionne, sauf que les données de ma zone de liste sont Invisibles !!

    Il me les trouve, je peux les selectionner, les utiliser, mais c'est invisible.

    Voila mon code:

    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
    Private Sub recherche_Change()
    On Error GoTo Err_recherche_Change
     
    Dim sql As String
     
    sql = "Select nclient From [Clients] Where nclient Like """ & Me.recherche.Text & "*"";"
    Me.liste.RowSource = sql
     
    Exit_recherche_Change:
    Exit Sub
     
    Err_recherche_Change:
    MsgBox Err.Number & " " & Err.Description
    Resume Exit_recherche_Change
    End Sub
    Merci de votre aide.
    Maxime

  17. #17
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    il y a eu un correctif Microsoft pour le problème concernant les listes déroulantes vides

    A voir ?

    Bonne continuation
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    Merci de ta réponse Jeannot.
    Ne pensant pas que quelqu'un lise cette discussion sachant qu'elle avait été notée Résolue par son créateur, j'avais créé un post à ce sujet.

    Et FreeAccess m'a donné la même adresse que toi, ce qui à résolu mon problème.

    Merci de ton aide dans tous les cas

  19. #19
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Puisque tu as réouvert la discussion et qu'une solution semble te convenir, pense à cliquer sur le bouton pour recloturer celle-ci

    merci et bonne continuation
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/01/2007, 15h56
  2. zone de liste à partir d'une zone de liste
    Par ludo50 dans le forum Access
    Réponses: 3
    Dernier message: 22/11/2006, 20h17
  3. remplir une liste à partir d'une liste
    Par LeXo dans le forum Access
    Réponses: 7
    Dernier message: 14/04/2006, 12h29
  4. Zone de liste dépendant d'une autre liste
    Par JimmyB dans le forum Access
    Réponses: 7
    Dernier message: 31/03/2006, 22h36
  5. Réponses: 6
    Dernier message: 24/01/2005, 11h06

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