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 :

enlever une valeur d'une liste déroulante quand elle a deja été utilisée


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2019
    Messages : 9
    Points : 8
    Points
    8
    Par défaut enlever une valeur d'une liste déroulante quand elle a deja été utilisée
    Bonsoir,

    Je suis un retraité qui prends ces premiers pas dans access et j'ai besoin d'aide.
    J'ai crée 3 tables nommées "distribution", "eleves" et "stock"
    Les tables "eleves" et "stock" sont utilisées dans la table distribution comme listes déroulantes.
    La table "distribution" a un formulaire nommé aussi "repartition". Dans le formulaire, je souhaite que lorsque je choisis une valeur dans chaque liste déroulante, je ne puisse plus la sélectionner à nouveau.

    L'application est intitulée "test" et est annexée à la présente.

    cordialement.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 647
    Points : 14 624
    Points
    14 624
    Par défaut
    bonsoir,

    Comme les listes déroulantes sont basées sur des tables, il faut ajouter un champ booléen pour indiquer si l'élément a été sélectionné, car on ne peut pas travailler directement sur les valeurs de la liste puisqu'elle n'est pas basée sur une liste de valeurs mais une requête.
    La requête contiendra uniquement ceux dont le champ (appelons-le sélectionné) est à non, par exemple, pour la table eleves:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT nom, prenom, matricule FROM eleves WHERE sélectionné=False;
    Ensuite, sur l'évènement "Après mise à jour" du formulaire, il faut mettre à jour la table en mettant le champ booléen à oui et recharger la liste (avec la clé primaire incluse dans la 3ème colonne de la liste)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Form_AfterUpdate()
    Dim strSQL As String
     
    ' mise à jour de la table eleves après sélection
    strSQL = "Update eleves set sélectionné = True where matricule = " & Me.Liste0.Column(2) & ";"
    CurrentDb.Execute strSQL, dbFailOnError
     
    'rechargement de la liste avec les nouvelles valeurs
    Me.Liste0.RowSource = Me.Liste0.RowSource
     
    End Sub
    Après, cela va dépendre si ce choix a un caractère définitif ou non car à un moment il faudra initialiser le champ pour pouvoir faire de nouveaux choix ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut
    Même approche que celle de tee_Grandbois (voir annexe):
    Fichiers attachés Fichiers attachés

  4. #4
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2011
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 380
    Points : 247
    Points
    247
    Par défaut
    Bonjour
    apparemment votre problème n'est pas résolu!

    Je me permets une remarque sur la structure vos tables.
    1) distribution
    les champs devrait être :
    -num
    -matricule
    -code

    2) eleves
    les champs devrait être :
    -matricule
    -nom
    -prenom
    - flag (boolean 0=dans liste sinon 1)
    3) stock
    les champs devrait être :
    -code
    -libelle
    -taille
    - quantite (je suppose qu'il y-a plusieurs lots)

    Avec utilisation d'un sous-formulaire pour la répartition, plutôt qu'une liste.
    Il faudra de toute façon, passer par la programmation (basic/sql)
    Windows 10
    Microsoft Edge (64 bits)
    Google Chrome Version 67.0.3396.99 (Build officiel) (64 bits)

  5. #5
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2019
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Zekraoui_Jakani Voir le message
    Même approche que celle de tee_Grandbois (voir annexe):
    Bonsoir,
    J'ai mis du temps avant de réagir car je ne me sentais pas bien.
    tee_Grandbois, quant je veux ouvrir ton application, elle se referme automatiquement.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2019
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    bonsoir,
    à mon sens, ce sujet serait plutôt à poster dans le sous-forum IHM ...

    Ceci étant dit, comme les listes déroulantes sont basées sur des tables, il faut ajouter un champ booléen pour indiquer si l'élément a été sélectionné, car on ne peut pas travailler directement sur les valeurs de la liste puisqu'elle n'est pas basée sur une liste de valeurs mais une requête.
    La requête contiendra uniquement ceux dont le champ (appelons-le sélectionné) est à non, par exemple, pour la table eleves:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT nom, prenom, matricule FROM eleves WHERE sélectionné=False;
    Ensuite, sur l'évènement "Après mise à jour" du formulaire, il faut mettre à jour la table en mettant le champ booléen à oui et recharger la liste (avec la clé primaire incluse dans la 3ème colonne de la liste)
    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 Form_AfterUpdate()
    Dim strSQL As String
     
    ' mise à jour de la table eleves après sélection
    strSQL = "Update eleves set sélectionné = True where matricule = " & Me.Liste0.Column(2) & ";"
    CurrentDb.Execute strSQL, dbFailOnError
     
    Bonsoir,
    Désolé du retard que j'ai mis car je ne sentais pas.
    Avec ta méthode, le code AprèsMAJ pour le formulaire ne me permet de continuer. Voir PJ 
     
    'rechargement de la liste avec les nouvelles valeurs
    Me.Liste0.RowSource = Me.Liste0.RowSource
     
    End Sub
    Après, cela va dépendre si ce choix a un caractère définitif ou non car à un moment il faudra initialiser le champ pour pouvoir faire de nouveaux choix ...
    Images attachées Images attachées  

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 647
    Points : 14 624
    Points
    14 624
    Par défaut
    bonsoir,
    tee_Grandbois, quant je veux ouvrir ton application, elle se referme automatiquement.
    euh ... il s'agit de celui Zekraoui_Jakani

    pour ce qui est de ton dernier message (sic!) mon code n'est qu'un exemple et est à adapter en tenant compte des noms des objets:
    dans Me.Liste0 il faut remplacer Liste0 par le nom de ta liste déroulante: nom1 d'après ton document Word et si, bien sûr, le nombre de colonnes est le même
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  8. #8
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2019
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    bonsoir,

    euh ... il s'agit de celui Zekraoui_Jakani

    pour ce qui est de ton dernier message (sic!) mon code n'est qu'un exemple et est à adapter en tenant compte des noms des objets:
    dans Me.Liste0 il faut remplacer Liste0 par le nom de ta liste déroulante: nom1 d'après ton document Word et si, bien sûr, le nombre de colonnes est le même
    Merci de votre promptitude. Je vous reviendrai

  9. #9
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2019
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Remerciements
    Merci à tous ceux qui m'on aidé : tee_grandbois, zerkraoui_zakani et papyxy

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/10/2015, 03h27
  2. Réponses: 0
    Dernier message: 05/06/2010, 00h08
  3. Réponses: 6
    Dernier message: 27/11/2008, 16h37
  4. Une liste déroulante est-elle toujours en 1er plan ?
    Par Marc365 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 01/05/2006, 20h16
  5. valeur d'une liste déroulante
    Par leeloo076 dans le forum ASP
    Réponses: 7
    Dernier message: 15/04/2004, 16h11

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