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 en cascade dans formulaire et sous-formulaire


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 16
    Points : 10
    Points
    10
    Par défaut suppression en cascade dans formulaire et sous-formulaire
    Bonjour,
    J'aimerais pouvoir en cliquant sur le bouton supprimer (qui permet la suppression de l'enregistrement courant) supprimer aussi les enregistrement dans les sous-formulaires!
    En effet quand je supprime une inscription a une formation et que j'ai renseigne dans le sous-formulaire la session et les options choisies elle disparaissent bien a l'ecran mais des que je choisis la meme formation les enregistrement lies apparaissent a nouveau
    n'y a t il pas un moyen de faire une suppression en cascade?
    j'ai essaye de faire une routine qui supprime l'enregistrement que j'execute dans le code de suppression
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    Public Sub suppression_cascade(ByVal id As Long, ByVal ftion As String, ByVal sess As Long)
     
    Dim db As Database
    Dim rssupp_app As Recordset
    Dim rssupp_opt As Recordset
     
    Set db = CurrentDb
     
    Set rssupp_app = db.OpenRecordset("appartient")
    Set rssupp_opt = db.OpenRecordset("choisit")
     
    Do Until rssupp_app.EOF
        If ((rssupp_app![id_stag] = id) And (rssupp_app![id_session] = sess) And (rssupp_app![type] = ftion)) Then
            rssupp_app.Delete
        End If
     
        rssupp_app.MoveNext
    Loop
     
    End Sub
     
    Do Until rssupp_opt.EOF
        If ((rssupp_opt![id_stag] = id) And (rssupp_opt![id_session] = sess) And (rssupp_opt![type] = ftion)) Then
            rssupp_opt.Delete
        End If
     
        rssupp_opt.MoveNext
    Loop
     
    End Sub
    est-ce qu'il n'y a pas plus simple?

  2. #2
    say
    say est déconnecté
    Membre expérimenté
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 300
    Points
    1 300
    Par défaut
    tu peux pas juste utiliser l'intégrité référentielle avec un DELETE ON CASCADE?

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Très bonne idée en effet

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Je le mets ou mon delete on cascade? et comment ?

  5. #5
    say
    say est déconnecté
    Membre expérimenté
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 300
    Points
    1 300
    Par défaut
    dans la fenêtre des relations....au niveau de ta jointure

  6. #6
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 81
    Points : 67
    Points
    67
    Par défaut
    C'est quand tu lie tes tables entre elles avec clé-primaire / clé-étrangère.
    Puis ya une coche à mettre "supprimer en cascade".

    Voila en gros si tu vois ce ce que je veux dire... sinon qqn d'autre t'expliqueras tres probablement mieux que moi

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Ca ete fait des la conception mais ca ne supprime pas en cascade ( le cote que je veux supprimer est du cote n).
    mon schema donne a peu pres ca, j'espere que c'est assez clair:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    stagiaire    inscrit      formation
       1           n    n           1
    formation session
     1              n
    stagiaire   appartient    session
    1            n          n        1
    stagiaire      choisit         module 
    1                n    n             1
    mon formulaire est structure de la sorte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    formulaire stagiaire (table stagiare)  qui contient
    le ss-formulaire inscription(table appartient table formation) qui contient
    le ss-formulaire session ( appartient - session) qui contient
    le formulaire de choix d'options (choisit - module)
    je voudrais donc supprimer l'inscription du stagiaire (enregistrement dans inscription) et que ca engendre la suppression de l'appartenance a la session (enregitrement dans appartient) et la suppression du choix de l'option (suppression dans la table choisit)

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Ben finalement j'ai utilise le code en haut puisqu'apparement il n'y a pas plus simple!

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

Discussions similaires

  1. Lier un sous-formulaire à un sous-formulaire
    Par bobosh dans le forum IHM
    Réponses: 2
    Dernier message: 02/03/2021, 11h45
  2. Réponses: 5
    Dernier message: 06/05/2015, 12h24
  3. Réponses: 2
    Dernier message: 24/06/2013, 09h31
  4. Réponses: 2
    Dernier message: 23/06/2013, 21h07
  5. Accéder à un sous-formulaire de sous-formulaire
    Par touftouf57 dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/11/2008, 19h04

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