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

Modélisation Discussion :

Automatiser suppression de tous les enregistrements de tables avec intégrité référentielle. [AC-365]


Sujet :

Modélisation

  1. #1
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 270
    Points : 107
    Points
    107
    Par défaut Automatiser suppression de tous les enregistrements de tables avec intégrité référentielle.
    Bonjour,

    J'ai une base de tests dans laquelle je créé des enregistrements. À la fin des tests je dois supprimer tous les enregistrements de certaines tables. Pour toutes mes tables j'ai l'intégrité référentielle de coché à part la suppression. Il va sans dire que lorsque je désire supprimer les enregistrements, je dois supprimer selon l'intégrité.

    J'aimerais automatiser le tout.

    J'ai vérifié via l'objet Relation mais je ne comprend pas le résultat donné par les propriétés Name, Table, ForeignTable, etc...
    Je crois que je dois trouver les relations de 1 à plusieurs et pouvoir les identifier correctement afin de détruire les tables contenant des informations provenant d'une autre.

    J'ai aussi pensé d'activer la partie suppression de l'intégrité référentielle, à ce moment je crois que je pourrais supprimer les enregistrements dans n'importe quel ordre, mais je ne sais pas comment procéder et je trouve cette solution dangereuse car je pourrais être confronté à des enregistrements orphelins.

    Existe-t-il une solution avec l'objet Relation ou toute autre façon ?

    Merci.

  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 598
    Points
    24 598
    Par défaut
    Bonjour,

    Il suffit de définir la suppression en cascade dans les propriétés de relation. Le moteur fera le job à ta place.
    Tu supprimes l'enregistrement père et tous ses descendants suivront (enfants, petit-enfant...).

    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 régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 270
    Points : 107
    Points
    107
    Par défaut
    Bonjour loufab,

    Y a-t-il moyen de placer cette suppression automatiquement ou dois-je le faire manuellement ?

    Merci.

  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 598
    Points
    24 598
    Par défaut
    On peut le faire via VBA en explorant l'objet DAO.relation ou encore via des requètes Create Foreign Key.
    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
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Personnellement je me suis fait un bout de code qui attaque mes tables "dans le bon ordre" en supprimant les enfants puis les parents puis les grand parents.

    C'est moins bien qu'un parcourt des relations mais c'est assez simple à faire.

    Une autre méthode plus "brutale" consiste à parcourir la liste des tables et d'essayer de supprimer tous les enregistrements de chacune des tables.
    On fait cela en boucle jusqu'à ce qu'on ai plus d'erreur quand on demande la suppression.
    Ce n'est pas très élégant ni très performant, ça peut prendre pas mal de passages, mais ça marche bien.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 270
    Points : 107
    Points
    107
    Par défaut
    Bonjour loufab et marot_r,

    Tout d'abord merci de l'attention que vous avez porté à ma discussion.

    Solution de loufab :
    Étant donné que j'ai déjà effectué beaucoup de recherches sur l'objet DAO.relation et que je n'ai pas pu encore maîtriser le tout, j'ai abandonné cette solution.

    Solutions de marot_r :
    J'utilise déjà la première solution mais lorsque l'on modifie la base il faut toujours revérifier si les suppressions se font dans le bon ordre, ce qui, pour moi, me complique la vie.

    J'ai alors opté pour la deuxième solution et j'ai développé le code en conséquence. C'est certain qu'il va y avoir plusieurs passes mais on ne demande pas l'exécution à toutes les minutes, alors je peux vivre avec les contraintes de cette solution.

    Merci à vous deux et j'inscris la discussion comme résolue.

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    J'utilise déjà la première solution mais lorsque l'on modifie la base il faut toujours revérifier si les suppressions se font dans le bon ordre, ce qui, pour moi, me complique la vie.
    Moi aussi :-).

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/07/2013, 09h58
  2. suppression de tous les enregistrements ayant deux champs vides
    Par adelsunwind dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/04/2009, 17h30
  3. Réponses: 2
    Dernier message: 12/12/2006, 00h22
  4. Suppression de tous les enregistrements
    Par Bouillon dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/11/2006, 22h44
  5. Afficher tous les enregistrements d'une table
    Par bertrand_declerck dans le forum QuickReport
    Réponses: 2
    Dernier message: 08/07/2005, 08h35

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