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 :

Récupere une valeur precise dans une zone de liste


Sujet :

IHM

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Récupere une valeur precise dans une zone de liste
    Bonjour a tous,

    je vais tenter d'être explicite.

    J'ai un formulaire avec dans ce formulaire une liste déroulante (lst_ref) qui a pour contenu les references produit de ma table "articles"

    Dans une zone de liste(lsttest) j'affiche la quantite correspondant au produit (stocker dans la meme table "articles") selectionner dans ma zone deroulante.

    Mon probleme: je n'arrive pas a recuper cette valeur dans une zone de texte.(result)

    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
     
    Private Sub Form_load()
     
       Me.result = ""
       Me.lst_ref = ""
     
       Me.lsttest.RowSource = ""
       Me.lsttest.Requery
     
    End Sub
     
    Private Sub lst_ref_AfterUpdate()
     
       Refreshquery
     
    End Sub
     
    Private Sub Refreshquery()
      Dim SQL As String
     
      SQL = "SELECT Qtéenstock FROM Articles WHERE Articles!Réference = '" & Me.lst_ref & "'"
      SQL = SQL & ";"
     
      Me.lsttest.RowSource = SQL
      Me.lsttest.Requery
     
      Me.result = Me.lsttest.Value
     
    End Sub
    Pour etre clair en fait je recupere une valeur qui est toujours la meme. J'ai l'impression qu'il me recupere la valeur ou est positionner le focus sur la zone de liste.

    Merci pour votre aide.

  2. #2
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Exemple dans l'aide Access:

    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
     
    Public Sub Read_ListBox()
     
        Dim intNumColumns As Integer
        Dim intI As Integer
        Dim frmCust As Form
     
        Set frmCust = Forms!frmCustomers
        If frmCust!lstCustomerNames.ItemsSelected.Count > 0 Then
     
            ' Any selection?
            intNumColumns = frmCust!lstCustomerNames.ColumnCount
            Debug.Print "The list box contains "; intNumColumns; _
                IIf(intNumColumns = 1, " column", " columns"); _
                 " of data."
     
            Debug.Print "The current selection contains:"
            For intI = 0 To intNumColumns - 1
                ' Print column data.
                Debug.Print frmCust!lstCustomerNames.Column(intI)
            Next intI
        Else
            Debug.Print "You haven't selected an entry in the " _
                & "list box."
        End If
     
        Set frmCust = Nothing
     
    End Sub
    Comme quoi la légende de la touche est bien vérifiée...

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 136
    Points : 163
    Points
    163
    Par défaut
    bonjour,

    si j'ai compris le pb la solution est relativement simple

    dans la propriété source de la liste il y a une requete qui comporte un certain nb de champs

    On retrouve ce nb dans la Ppté nb de colonnes

    Dans ta zone de texte il te suffit de mettre en source:

    NomZoneListe.colonne(x) où x correspond à la colonne/champ que tu souhaites récupérer

    des que tu changes de valeur dans la liste, la zone de texte se met à jour

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    j'ai essayer les deux solutions.

    La premiere je ne voie pas tres bien ou je dois la placer car dans le cas present si je rajjoute juste la sub il ne se passe rien de plus.

    pour la deuxieme solution lorsque je met mazoneliste.colonne(1) en l'occurence car je n'ai qu'une ligne dans ma zone de liste il ne trouve aucune valeur.

    Je signale que je suis débutant et que j'avoue que la soluce de franck je ne l'a comprends pas trop.

    Merci.

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    si je rajoute ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private sub lsttest_click()
     
    Me.result = Me.lsttest.value
     
    End sub
    Si je clique sur la valeur de la zone de liste cela fonctionne.
    Mais j'aimerai eviter ce click et que cela se fasse automatiquement.

    Merci.

  6. #6
    Membre éprouvé Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    842
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations forums :
    Inscription : Février 2005
    Messages : 842
    Points : 919
    Points
    919
    Par défaut
    Salut,

    je comprends pas bien l'utilité de ta deuxième liste
    lsttest
    Ils ne savaient pas que c'était impossible, alors il le réalisèrent (Mark Twain)

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Et bien en fait je veux recuperer la valeur pour ensuite faire un calcul dessus.
    Hors il me semble qu'il est impossible de recuperer une requete SQL autrement que dans une zone de liste.(je me trompe peut etre).

    Donc j'aimerais recuperer la quantite pour l'ajouter a une autre quantite (un autre champs du formualire) en faisant le calcul au niveau de la zone de texte "result".

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    je te donne un exemple avec l'evement sur click qui fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub lsttest_Click()
     
    Me.result = Me.lsttest.Value + Me.txt_qte
     
    End Sub
    "en plus du code en haut"

    txt_qte etant mon autre quantite dans une partie du formulaire et la ca marche !!
    Donc si j'arrivais a obtenir ma valeur dans Me.lsttest.Value sans le click ca serait parfait.

  9. #9
    Membre éprouvé Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    842
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations forums :
    Inscription : Février 2005
    Messages : 842
    Points : 919
    Points
    919
    Par défaut
    Je pense que tu te compliques la vie pour pas grand chose.

    Si j'ai bien compris, dans ta table, tu as un enregistrement avec Reference et Quantité.

    Ta zone de liste est basée sur une requête dans laquelle tu récupères les champs Reference et quantite de ta table article.
    Dans les propriétés /format, tu mets Nbre de colonnes 2 et largeur colonne ;0 (pour masquer la 2eme colonne)

    Puis sur l'evenement Apres mise à jour, tu mets ce bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.result.value=Me.lst_ref.column(1)
    Ils ne savaient pas que c'était impossible, alors il le réalisèrent (Mark Twain)

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    il me semble que dans ton code tu as pris ma zone deroulante et non de liste.

    Mais j'avais deja essayé ca et cela ne fonctionne pas.

    Cependant dans ma zone de liste je fais une requete seulement sur la quantite et non sur la reference.

    Enfin ce n'est pas grave j'ai dû mal m'exprimer, ce n'est pas grave, je vais chercher et je trouverai bien une méthode.

    Merci a tous de votre aide meme si cela n'a pas avancé mon schmilblick

  11. #11
    Membre éprouvé Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    842
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations forums :
    Inscription : Février 2005
    Messages : 842
    Points : 919
    Points
    919
    Par défaut
    Faut pas baisser les bras comme ça...

    Dans ta table, tu peux avoir plusieurs fois la même réference avec diverses quantité ?

    C'est a dire que ta deuxieme liste affiche plusieurs valeurs.

    Ai-je bien compris ?
    Ils ne savaient pas que c'était impossible, alors il le réalisèrent (Mark Twain)

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    non je ne peux avoir qu'une seule quantite par reference.

    Ma cle primaire est base sur la reference article.

    La quantite dont je te parle et en fait ma quantite en stock.
    Elle doit etre mise a jour mais c'est tout

  13. #13
    Nouveau Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Je vais t'expliquer clairement ce que je veux faire.

    j'ai donc une table articles avec une quantite unique en stock par reference.
    Cette quantite en fonction des achats et des ventes va variée.

    J'ai donc un formulaire de saisie pour les achats et un formulaire de saisie vente avec leur propre table. (ici les doublons sont acceptes car je peux acheter ou vendre le meme articles plusieurs seule la date et la quantite et peut etre le prix va varié)

    Il faut donc que j'arrive a mettre a jour cette quantite en stock en fonction des achats et des ventes.

    J'ai l'impression que ce n'est pas evident et comme je suis un debutant en VB je sens que je vais faire chié pas mal de monde, donc comme j'aime bien chercher aussi, je ne baisse pas les bras mais je ne veux pas embeter tout le monde

    Merci de ton aide en tout cas.

  14. #14
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 136
    Points : 163
    Points
    163
    Par défaut
    salut,

    je voulais aficher une image pour illustrer mon propos mais je rencontre quelques difficultes

    je vais donc essayer d'expliquer mieux ma suggestion

    ta zone de liste a, dans la propriété 'contenu' une requete

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT DISTINCT produits.NUMART, produits.REFEXT, produits.FCOD, produits.DESIGNATION, produits.CASIER, produits.TVA, produits.CONDIT, produits.PVTE, produits.MOTPRINC, produits.REFINT, produits.STOCK
    FROM produits;
    elle a aussi un certain nb de colonne a ta convenance

    a coté, dans ton formulaire tu as ta zone de texte, et dans la propriété source controle, tu mets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =[NomListe].column(10)
    (ici 10 est le n° de la colonne dans laquelle se trouve l'info stock)

    c'est réellement pas possible que ça ne fonctionne pas...

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/04/2011, 08h06
  2. Réponses: 82
    Dernier message: 05/02/2011, 14h34
  3. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  4. Réponses: 1
    Dernier message: 11/06/2008, 13h33
  5. Réponses: 2
    Dernier message: 17/05/2006, 18h19

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