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 :

Débutant: Problème zone de liste


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Points : 61
    Points
    61
    Par défaut Débutant: Problème zone de liste
    Bonjour,

    Je développe un formulaire de recherche du type de celui de caféine. Mon souci concerne les zones de liste.
    Les choix proposés dans ma zone de liste sont des noms de champs. En effet j'ai conçu celle ci sur plusieurs champs de ma table et je n'arrive par conséquent pas à la faire fonctionner. Le code de caféine dans ce cas ne fonctionne pas dans ce cas.

    Voici mon code:

    If Me.chkActivity Then
    SQL = SQL & "And VSH!Activity = '" & Me.cmbRechActivity & "*' "
    End If

    Le champ Activity n'existe pas dans ma table. Les possibilités de ma combobox sont plusieurs champs. Je ne sais pas comment la faire fonctionner dans mon formulaire de recherche. Suis-je obligé de créer un champs dans ma table qui reprend d'autres champs?

    Merci d'avance à ceux qui m'aideront

  2. #2
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    Citation Envoyé par jrogron
    If Me.chkActivity Then
    SQL = SQL & "And VSH!Activity = '" & Me.cmbRechActivity & "*' "
    End If
    Deja retire l'etoile a la fin de ton code entre les " " car a mon avis il sert pas à grand chose je pense, sinon
    Le champ Activity n'existe pas dans ma table. Les possibilités de ma combobox sont plusieurs champs. Je ne sais pas comment la faire fonctionner dans mon formulaire de recherche. Suis-je obligé de créer un champs dans ma table qui reprend d'autres champs?
    je n'ai pas compris dsl

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    Ok je m'explique.
    J'ai créé une zone de liste déroulante dans laquelle les possibilités font références à plusieur champs de ma table. Ces champs sont de type OUi/NON. En faite j'ai cela dans les propriétés de ma zone de liste déroulante:
    Origine source = liste des champs
    Je voudrais connaitre le code pour faire fonctionner ma zone de liste déroulante. Je souhaite faire apparaitre les entreprises ,dans une zone de liste, pour lesquelles le critère selectionné dans la zone déroulante est vrai. Donc si je sélectionne le critère X dans ma zone de liste et que dans ma table j'ai des entreprises pour lesquels le champs X est Vrai alors je veux que celles-ci apparaissent dans ma zone de liste de réponse.

    C pas évident d'être clair, dsl

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    je le permet de rancer car je ne trouve toujours pas la solution.

    Merci

  5. #5
    Invité
    Invité(e)
    Par défaut


    Quel est le rapport entre
    J'ai créé une zone de liste déroulante dans laquelle les possibilités font références à plusieur champs de ma table
    et

    Je voudrais connaitre le code pour faire fonctionner ma zone de liste déroulante. Je souhaite faire apparaitre les entreprises ,dans une zone de liste, pour lesquelles le critère selectionné dans la zone déroulante est vrai
    A+

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    Salut Bruno!!!

    Je ne comprends pas trop ta question.
    En faite j'ai le code suivant:

    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
    Private Sub RefreshQuery()
    Dim SQL As String
    Dim SQLWhere As String
     
    SQL = "SELECT Company, Country, Turnover FROM VSH Where VSH!NumCompany <> 0 "
     
    If Me.chkCompany Then
        SQL = SQL & "And VSH!Company like '*" & Me.txtRechCompany & "*' "
    End If
     
    If Me.chkCountry Then
        SQL = SQL & "And VSH!Country like '*" & Me.txtRechCountry & "*' "
    End If
     
    If Me.chkTurnover Then
        SQL = SQL & "And VSH!Turnover like '*" & Me.txtRechTurnover & "*' "
    End If
     
     
    SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     
    SQL = SQL & ";"
     
    Me.lblStats.Caption = DCount("*", "VSH", SQLWhere) & " / " & DCount("*", "VSH")
    Me.lstResults.RowSource = SQL
    Me.lstResults.Requery
     
    End Sub
    donc pas de problème avec mes 3 zones de texte. Maintenant j'ai rajouté une zone de liste déroulante dans laquelle les différentes possibilités font références à des champs de ma table (comme tu m'avais dit: dans propriété origine source = liste des champs). Je souhaite donc mettre en ouvre cette liste dans mon formulaire de recherche mais je ne sais pas comment encodé cette liste déroulante.

    En espérant que quelqu'un puisse m'aider

  7. #7
    Invité
    Invité(e)
    Par défaut
    En fait dans ta liste déroulante sur l'évènement "AfterUpdate" (par exemple) il faut que tu fasses un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub LaListeChamp_AfterUpdate()
     SQL = "[" & Me.LaListeChamp.value &"] LIKE '*" & LaValeur & "*'"
    End Sub
    C'est ça que tu voulias savoir ?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    En faite il faut que je complète le code ci dessous (Private Sub RefreshQuery()).

    Le code ke je pensais donc rajouter est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Me.chkActivity Then
        SQL = "[" & Me.cmbRechActivity.Value & "] like '*" & ??????? & "*' "
    End If
    Je ne sais pas si c'est correct et je ne sais pas quoi mettre à la place de mes ???????

    Merci pour ton aide Bruno

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    Histoire de remettre le sujet dans les premières pages pour qu'il ne soit pas oublié, Merci

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Citation Envoyé par jrogron
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Me.chkActivity Then
        SQL = "[" & Me.cmbRechActivity.Value & "] like '*" & ??????? & "*' "
    End If
    Bonjour,

    Dans le code ci-dessus je présume que le cmdRechActivity contient le nom valide d'un champ de la table.

    Donc le ????? devrait contenir soit une variable dûment déclarée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SQL = "[" & Me.cmbRechActivity.Value & "] like '*" & Mavariable & "*' "
    soit le nom d'un controle de type texte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = "[" & Me.cmbRechActivity.Value & "] like '*" & me.montrole & "*' "
    Soit du texte (bien que cette dernière solution est totalement inutile)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SQL = "[" & Me.cmbRechActivity.Value & "] like '*" & "montexte" & "*' "
    Maintenant je te conseille d'éviter le simple-cote ' et de privilégier plutot l'emploi des doubles-cote ".

    Pourquoi ? (j'ai l'impression d'être un Ara perché sur son papayer)

    Dans le cas ou ton critére (le ?????) contient une apostrophe genre "L'orthographe" ta requête restera vide.

    Donc il vaut mieux écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SQL = "[" & Me.cmbRechActivity.Value & "] like ""*" & ?????? & "*"""
    Si tu est totalement certain que jamais tu ne tombera sur des mots comportant une apostrophe tu peux coder avec les simple-cotes.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    J'ai donc mis le code suivant mais sans succès:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Me.chkTurnover Then
     SQL = "[" & Me.cmbRechActivity.Value & "] LIKE ""*" & Me.cmbRechActivity & "*"""
    End If
    Le problème c'est que cela ne fonctionne pas et qu'aucune erreur s'affiche.
    Le cmdRechActivity contient bien le nom valide de plusieurs champs de la table et nom un. Mon souci c'est que quand je sélectionne un des champs dans la combobox le tri dans ma zone de liste de résultat (je rapelle que c'est pour un formulaire recherche) ne se fait pas.

    Merci de votre aide

  12. #12
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    En mettant un point d'arrêt après ton code et vérifiant la variable SQL tu t'apercevra que ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = "[" & Me.cmbRechActivity.Value & "] LIKE ""*" & Me.cmbRechActivity & "*"""
    Donne ceci :

    SQL = SELECT .... FROM .... WHERE [Monchamp] LIKE "*Monchamp*"
    C'est donc normal que tu n'es pas de résultat.

    après le like il faut une valeur et pas de nouveau le nom de ton champ.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    Ok loufab, j'ai donc écrit le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Me.chkTurnover Then
     SQL = "[" & Me.cmbRechActivity.Value & "] like ""*" & True & "*"""
    End If
    Toujours rien ne se passe.
    Ce que je ne comprends pas dans le code que j'ai tapé (ou recopié plutôt lol ) c'est comment il trouve dans quel table cherché car mes 2 données sont: la valeur des champs de ma zone de liste déroulante (Me.cmbRechActivity.Value) et a quoi ils doivent correspondre pour être sélectionné (True car ce sont des champs de type booléens oui/non)

    Mais est ce qu'il est possible de faire une recherche par zone de liste déroulante sur plusieurs champs? Car c'est ce que je tente de faire or je m'appuie sur le tuto de caféine sur le formulaire de recherche multi critère et lui sa zone de liste déroulante fait référence à un seul champ dans sa table et le code est par conséquent celui-ci ce que je comprends:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Not Me.chkFamille Then
        SQL = SQL & "And Medias!Famille = '" & Me.cmbRechFamille & "' "
    End If
    Par ce code, on recherche le champs famille dans la table média qui correspond au texte sélectionné dans la zone de liste déroulante.

    Donc comment faire pour recherché dans plusieurs champs d'une table et en suite il faut que le champs que j'ai sélectionné soit vrai pour être gardé.

    C'est pas évident.

  14. #14
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Euh excusez moi de vous déranger, mais si le but est de lister les enregistrements pour lequel tel champ est égal à Oui, alors le code sera :

    If Me.chkActivity Then
    SQL = SQL & " AND [" & Me.cmbRechActivity & "] "
    End If
    Rien de plus

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    Trop fort Tofalu.

    Je ne comprend pas pourquoi mais cela marche.

    En faite j'ai deux liste de zone déroulante et cela ne marche que pour une.
    J'ai bien entendu fait de même pour la seconde en mettant ce code là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Me.chkProducts Then
    SQL = SQL & " AND [" & Me.cmbRechProducts & "] "
    End If
    Je me demande si le problème ne vient pas du fait que les champs présents sur cette zone de liste déroulante ne provienne pas d'une autre table. Pourtant j'ai bien renseigné dans la propriété contenu de ma zone de liste sur quelle table sont les champs.

    Tu as une idée du pourquoi du bug? Quand je coche la checkbox c'est bon mais après quand je sélectionne quelque chose dans la liste sa plante.

    Merci encore

  16. #16
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Citation Envoyé par Tofalu
    Euh excusez moi de vous déranger, mais si le but est de lister les enregistrements pour lequel tel champ est égal à Oui, alors le code sera :
    J'avais même pas compris que ce champ était booléen !!!
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

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

Discussions similaires

  1. [AC-2003] Problème zone de liste déroulante
    Par lucas-18 dans le forum IHM
    Réponses: 2
    Dernier message: 12/08/2009, 19h51
  2. [AC-2002] Problème zone de liste
    Par Jean-Luc80 dans le forum IHM
    Réponses: 5
    Dernier message: 16/04/2009, 05h50
  3. Réponses: 3
    Dernier message: 25/10/2007, 21h57
  4. [Débutant] Affichage Zone de liste
    Par zenzolarticho dans le forum IHM
    Réponses: 16
    Dernier message: 04/07/2007, 16h43
  5. [Débutant] problème avec une liste déroulante
    Par stan21 dans le forum Access
    Réponses: 3
    Dernier message: 12/07/2006, 14h52

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