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

VBA Access Discussion :

Suppression définitive d'un enregistrement d'une liste déroulante avec RemoveItem Access


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2017
    Messages : 34
    Points : 20
    Points
    20
    Par défaut Suppression définitive d'un enregistrement d'une liste déroulante avec RemoveItem Access
    Bonjour,

    Je souhaiterais avoir vos retours sur le code suivant:

    J'ai en fait un formulaire sur lequel j'ai une liste déroulante qui propose plusieurs choix d'enregistrements.
    A chaque fois qu'un enregistrement est sélectionné , je souhaite le supprimer définitivement de la liste en appuyant sur un bouton.

    Pour ce faire , j'ai le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Commande1_Click()
    If a.ListIndex >= 0 Then
          a.RemoveItem a.ListIndex
    End If
       Me.Requery
       Me.Refresh
    End Sub
    La suppression marche très bien à chaque sélection d'un enregistrement de données.
    Par contre quand je ferme et que j'ouvre à nouveau le formulaire .Je retrouve ma liste déroulante avec l'ensemble des enregistrements : je retrouve ceux qui ont été supprimés.
    Une fois qu'un enregistrement est supprimé , je ne souhaite plus l'avoir dans ma liste déroulante après fermeture et réouverture du formulaire .

    J'espère que je me suis pas perdues sur les explications. Je me tiens à disposition pour reformuler à nouveau ma question si besoin .

    Merci d'avance pour votre aide.

    Gloirez

  2. #2
    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 600
    Points
    24 600
    Par défaut
    Bonjour,
    Si c'est un enregistrement, c'est qu'il est contenu dans une table.

    Removeitem supprime un item de la liste, mais pas de la source (table).

    Utilise plutôt une requête de suppression puis recharge la liste.

    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

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2017
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    Bonjour Loufab,

    Merci pour ce retour,

    La liste déroulante est bien alimentée par une requête effectuée sur une table.
    Et justement , mon souci réside sur le fait que je ne veux pas supprimer l'enregistrement de la table d'origine mais seulement sur la liste
    ( je ne sais même pas si c'est possible car à chaque réouverture du formulaire la liste se réinitialise avec les enregistrements supprimés sans doute parce que la table d'origine est restée inchangée).

  4. #4
    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 600
    Points
    24 600
    Par défaut
    Si tu ne supprimes pas l'enregistrement de la source celle(s)-ci remontera(ront) systématiquement...
    A moins de le écarter de la sélection.

    Deux solutions :

    1) Un champ supplémentaire dans la table. Type booléen (True = écarté de la liste / False (defaut) = pris en compte) et adapter la source de ta liste en conséquence.

    2) Un table annexe où tu mets les Id unique de la table source qui ne doivent pas être pris en compte. Et tu adaptes la source de la liste en conséquence : Un simple tableSource.id Not Exist(Select id From cette_nouvelle_table) fera l'affaire.

    au choix suivant tes obligations/contrainte.

    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

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2017
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    J'ai appliqué la première solution proposée et ça marche très bien.

    C'est génial.

    Merci encore une fois loufab!!!!

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 18/10/2007, 10h34
  2. Réponses: 1
    Dernier message: 14/09/2007, 18h04
  3. Limiter les enregistrements d'une liste déroulante
    Par Dafbau dans le forum Access
    Réponses: 3
    Dernier message: 30/11/2006, 20h11
  4. Enregistrement dans une liste déroulante & Msgbox
    Par tintinmarre dans le forum Access
    Réponses: 6
    Dernier message: 29/09/2005, 13h27
  5. Réponses: 2
    Dernier message: 16/10/2004, 14h33

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