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

Access Discussion :

Suppression de toutes les données saisies dans sous-formulaire [AC-2002]


Sujet :

Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Polynésie

    Informations forums :
    Inscription : Juin 2013
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Suppression de toutes les données saisies dans sous-formulaire
    Bonjour,

    Débutant plus ou moins avec Access, j'ai essayé de me débrouiller jusqu'à maintenant mais là, je bloque.
    Mon problème est le suivant :

    J'ai 2 tables :
    une table contact (T_Contact)
    une table Organisme (T_Organisme). Un organisme peut être une association, une entreprise, une administration, ...

    Comme un contact peut être dans plusieurs organismes et dans un organisme, on peut avoir plusieurs contacts, j'ai créé une table T_ContactOrganisme avec les clés primaires de T_Contact et T_organisme.

    J'ai créé un formulaire F_contact dans lequel on renseigne les données relatives aux contacts.
    Il y a un champ "Fait-il partie d'un organisme ?" avec une case à cocher.
    Lorsque la case est cochée, cela active un sous-formulaire qui permet de renseigner le ou les organismes en question, par le biais d'une liste déroulante basée sur T_Organisme, pour remplir T_ContactOrganisme.
    Comme il peut y avoir plusieurs organismes, le sous-formulaire est un formulaire continu, et en face de chaque enregistrement, il y a un bouton de suppression de l'enregistrement.
    Tout ça marche très bien.

    Mon blocage :
    J'aimerais que si on décoche la case "Fait-il partie d'un organisme ?", tous les enregistrements du sous-formulaire soient supprimés (sinon, ça n'a pas de sens).
    Donc, il faudrait pouvoir supprimer tous les enregistrements de la table T_ContactOrganisme pour lesquels IdContact est celui du formulaire ou pour l'enregistrement en cours.
    Est-ce qu'il faut passer par une requête suppression ? par du code vba ? J'ai essayé de partir du code des boutons de suppression mais ça me dépasse un peu.

    Peut-être que cette question a été abordée dans une autre discussion mais je n'ai pas réussi à trouver.
    Est-ce que quelqu'un peut m'aider ?

    Je vous remercie d'avance.

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 867
    Points
    56 867
    Billets dans le blog
    40
    Par défaut
    bonsoir,

    essaie avec le code suivant sur l'évènement " sur clic" du bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub boutonSupprimer_Click()
    If MsgBox("Confirmer la suppression", vbYesNo) = vbNo Then Exit Sub
     
    CurrentDb.Execute "DELETE * FROM " & NomDuSousForm.Form.RecordSource & " WHERE IDContact = " & IDContact
     
    ' mettre à jour le sous-formulaire
    NomDuSousForm.Form.Requery
     
    End Sub
    NomDuSousForm doit être remplacé par le nom du sous-formulaire

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Polynésie

    Informations forums :
    Inscription : Juin 2013
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci f-leb

    Alors, j'ai adapté le code que tu m'as conseillé par rapport à ma case à cocher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Rattachement_Click()
    Me.SF_PersonneOrganisme.Enabled = Me.Rattachement
     
    If Me.Rattachement = False Then
    If MsgBox("Confirmer la suppression des organismes", vbYesNo) = vbNo Then
    Me.Rattachement = True
    Exit Sub
    Else
    CurrentDb.Execute "DELETE * FROM " & SF_PersonneOrganisme.Form.RecordSource & " WHERE Personne = " & IdPersonne
     
    SF_PersonneOrganisme.Form.Requery
    où :
    Rattachement est ma case à cocher
    Et j'ai rajouté une ligne pour que si je réponds NON à la confirmation de suppression, la case reste cochée.

    Et ça marche !!!

    Merci beaucoup et bon week-end

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/08/2010, 16h11
  2. Réponses: 1
    Dernier message: 02/05/2010, 10h26
  3. Réponses: 3
    Dernier message: 05/09/2008, 07h41
  4. Réponses: 2
    Dernier message: 02/06/2007, 17h21
  5. Recuperer les données saisie dans un formulaire
    Par hunzi dans le forum XMLRAD
    Réponses: 3
    Dernier message: 29/08/2006, 15h22

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