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

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    mars 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2019
    Messages : 1
    Points : 1
    Points
    1

    Par défaut Comment avoir différente marque et quantité à partir de la référence sélectionnée dans une liste déroulante ?

    Bonjour,

    Je débute sur Access depuis peu et j'essaie de concevoir une application dont une partie permettra de gérer les entrées en stock.

    Sauf que je galère depuis un moment , et j'ai vraiment besoin de votre aide.

    Dans un premier temps j'ai voulu afficher la marque du produit et sa quantité à partir de la référence sélectionnée dans une liste déroulante.

    (Je précise que la table entree est reliée aux tables produit et fournisseur formant des relations plusieurs à plusieurs.

    Donc les propriétés de la table entree sont: idprod , idfour , qte, date.)

    Et pour se faire, j'ai executé le code vba ci-dessous qui marche très bien mais le souci c'est qu'il ne me donne pas le résultat souhaité.

    Lorsqu'on sélectionne une référence dans la première ligne par exemple,

    la même marque de produit ainsi que sa quantité sont répétés dans les autres lignes.

    Alors le truc ici c'est comment faire pour obtenir différente marque et quantité à partir

    de la référence sélectionnée dans une liste déroulante pour chaque ligne du formulaire.

    Quelqu'un pourrait il m'aidez svp.

    Merci d'avance !

    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
     Private Sub list_ref_Change()
     
    Dim enrg As Recordset: Dim base As Database
    Set base = Application.CurrentDb
    Set enrg = base.OpenRecordset("SELECT marque, qteprod FROM produit WHERE idprod=" & list_ref & ";", dbOpenDynaset)
    qteapp.Value = 0: qteac.Value = 0
     
    enrg.MoveFirst
    marque.Value = enrg.Fields("marque").Value
    qteac.Value = enrg.Fields("qteprod").Value
     
    qteapp.SetFocus
     
    enrg.Clone
    base.Close
     
    Set enrg = Nothing
    Set base = Nothing
     
    End sub

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    13 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 13 048
    Points : 19 760
    Points
    19 760

    Par défaut

    Bonjour.

    La répétition vient du fait qu'en Access il ne semble n'y avoir qu'un seul "enregistrement" affiché pour les champs indépendants et qu'il est recopié sur toute la liste.
    Donc une modif sur une ligne, se répercute sur TOUTES les autres lignes. C'est assez frustrant.

    La solution est de déplacer l'affichage dans la source de données en utilisant une jointure (solution la plus efficace) ou la fonction Dfirst().
    Donc il faut que tu ajoutes les champs nécessaires à ce qui alimente ton formulaire.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/12/2013, 21h38
  2. Réponses: 4
    Dernier message: 08/01/2013, 15h53
  3. Réponses: 2
    Dernier message: 14/11/2008, 18h31
  4. Comment récupérer le texte sélectionné dans une liste déroulante ?
    Par Je-cherche-pfe dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/09/2007, 20h35

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