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 :

supprimer un enregistrement d'une zone de liste


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut supprimer un enregistrement d'une zone de liste
    Bonjours a tous,

    Je suis bloqué dans ma suppression d'enregistrement se trouvant dans une zone de liste.

    J'ai 4 colonnes dont la première contient l'ID de mes enregistrements dans ma zone de liste.

    Mais mon gros problème est qu'en fait je dois supprimer les enregistrements que dans la table associative et pas de leur table d'origine. ce qui fait que l'ID ne sert plus forcément à grand chose.. je me trompe peut'être.

    Si j'arrive à les supprimer de ma table associative, ils disparaitront de ma zone de liste.. mais je ne sais vraiment pas comment m'y prendre... J'ai donc vraiment besoin de votre aide.

    Poser moi toutes les questions qui vous seront nécaissaires..

    Merci d'avance,
    Cyriusix

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    Si j'ai bien compris tu cherches a supprimer des enregistrement uniquement dans la table qui a les id en clé étrangère.

    Tu as tenté avec une requete du type DELETE?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim SQL as string
    SQl = "DELETE * FROM [TABLE] WHERE [CONDITION]"
    docmd.runSQL SQL
    Est ca?

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par vavou Voir le message
    Si j'ai bien compris tu cherches a supprimer des enregistrement uniquement dans la table qui a les id en clé étrangère.
    Oui c'est exactement ça..

    Citation Envoyé par vavou Voir le message
    Tu as tenté avec une requete du type DELETE?
    J'ai essayé avec ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim DB As Database
        Dim RS As DAO.Recordset
        Set DB = CurrentDb()
        Set RS = DB.OpenRecordset("tblRegroupe")
     
        bd.Execute "DELETE * FROM tblRegroupe WHERE IDPersonne=" & suppr_frs.Column(0)
        suppr_frs.Requery
    Mais ça ne marche pas..

    J'ai également essayé avec ton code, mais au niveau de la condition, ça croche un peu.. comment lui faire comprendre que ce que je veux c'est: supprimer le num_tblPersonne dans la table tblRegroupe qui est égal à l'IDPersonne (column(0)) séléctionné dans la liste lstListe de mon formulaire?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    Ca ne marche pas???? Il fait quoi? Il dit quoi?

    Citation Envoyé par Cyriusix Voir le message
    Oui c'est exactement ça..



    J'ai essayé avec ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim DB As Database
        Dim RS As DAO.Recordset
        Set DB = CurrentDb()
        Set RS = DB.OpenRecordset("tblRegroupe")
     
        bd.Execute "DELETE * FROM tblRegroupe WHERE IDPersonne=" & suppr_frs.Column(0)
        suppr_frs.Requery
    Alors,

    De quel type est IDPersonne? numérique?
    Quand tu fais afficher ta requete SQL ça donne quoi?
    Prends le affichage de ta requete (debug.print) et execute le dans le requeteur d'access. est ce que ca passe?

    Eva.

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Oui effectivement, j'aurai put être plus précis.. dsl..

    il me met un petit message box affichant: "Objet requis" juste après être passé sur la requête.

    Mon IDPersonne est un NumAuto

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    pas de soucis
    Citation Envoyé par Cyriusix Voir le message
    Oui effectivement, j'aurai put être plus précis.. dsl..

    il me met un petit message box affichant: "Objet requis" juste après être passé sur la requête.

    Mon IDPersonne est un NumAuto

    Quand tu mets ta requete dans un chaine que tu afficches ca te dit quoi?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim SQL as string
    SQL = "ta requete"
    debug.print SQl

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Je ne sais pas si ma requête est corectement formée, je l'ai mis comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL = "DELETE * FROM tblRegroupe WHERE IDPersonne=" & suppr_frs.Column(0)
        Debug.Print SQL
    Et toujours le même message.. objet requis.. quand je fais du pas à pas.. il passe directement de la requête au message d'erreur sans passer par le debug.print..

  8. #8
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Est-ce que quelqu'un d'autre pourrait me venir également en aide?

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Bon je crois que je vais présenter mon besoin d'une manière différente.

    Je fais une application servant à gérer plusieurs camps.
    mon problème concerne les tables suivantes:

    tblCamp
    tblPersonne
    tblFonction
    tblRegroupe (table associative des trois tables précédente)

    à l'interieur de tblRegroupe, j'ai donc num_tblCamp, num_tblPersonne et num_tblFonction.

    Quand je crée dans un camp (par rapport à l'IDCamp) un nouveau participant, il va s'enregistrer dans la table tblRegroupe avec l'IDCamp dans num_tblCamp, l'IDPersonne dans num_tblPersonne et l'IDFonction dans num_tblFonction. Pour ça, tout va bien.

    Maintenant, dans mon formulaire, frmGestionParticipant, j'ai fait une zone de liste, lstParticipants, qui contient pour chaque camps (en fonction de l'IDCamp) les participants qui y sont inscrit avec leur fonction (Responsable, animateur, participant...). Cette zone de liste est basée sur la table tblRegroupe et affiche donc tout les résultats que contient tblRegroupe par rapport à l'IDCamp.

    Maintenant suite à cela, j'aimerai pouvoir en séléctionnant un participant dans la zone de liste, le retirer complétement de ma table tblRegroupe. Mais le problème est qu'un même participant peut participer à plusieur camp. donc il faudrai le supprimer par rapport à l'IDCamp. Et je ne sais pas comment faire cette requête qui sera exécutée lors du clic d'un bouton après avoir séléctionné un participant à supprimer.

    Je remercie infiniment vavou d'être venu à mon secour, malheureusement ce n'est toujours pas résolu.. alors merci à tout ceux qui voudront bien m'aider.

    Cyriusix

  10. #10
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Euréka.. j'ai enfin réussi à faire ma petite requête.. je suis donc désolé de vous avoir dérangé,

    merci à toi vavou.

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

Discussions similaires

  1. Supprimer un enregistrement d'une zone de liste
    Par accessgalérien dans le forum IHM
    Réponses: 3
    Dernier message: 20/08/2014, 15h52
  2. Réponses: 6
    Dernier message: 12/03/2007, 13h02
  3. Réponses: 1
    Dernier message: 08/03/2007, 19h41
  4. Enregistrement dans une Zone de liste déroulante
    Par w3sk3r dans le forum Access
    Réponses: 23
    Dernier message: 20/08/2006, 19h10
  5. Réponses: 3
    Dernier message: 22/03/2006, 09h47

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