[Résolu][Base] Comment dupliquer des enregistrements à partir d'un SELECT

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Fabrice61
NOOuvel adepte
NOOuvel adepte
Messages : 21
Inscription : 06 juin 2022 08:54

[Résolu][Base] Comment dupliquer des enregistrements à partir d'un SELECT

Message par Fabrice61 »

Bonsoir à toutes et à tous !

J'ai fouillé, comme j'ai pu mais je n'ai pas trouvé de post qui correspond à mon problème...

Je joins à ce post l"ODB correspondant et, le PB est le suivant :

Je souhaite dupliquer (créer de nouveaux enregistrements avec quasiment les mêmes champs via une macro) de tous les enregistrements de la table T_ACTIVITES dont T_ACTIVITES.T_ACTIVITES_Ref_Saisons = 4 en mettant à jour T_ACTIVITES_Ref_Saisons à 6 mais aussi recréer tous les TARIFS associés/liés (sous-entendu tous les tarifs de T_ACTIVITES dont T_ACTIVITES.T_ACTIVITES_Ref_Saisons = 4).
AssoSix1PourForum.odb
CaptureDuplicateRowAsso61.png
et je ne sais pas comment m'y prendre...

Exemple du résultat à obtenir pour toutes les ACTivites dont T_ACTIVITES.T_ACTIVITES_Ref_Saisons = 4

AVANT TRAITEMENT (avant macro) :

Code : Tout sélectionner

T_ACTIVITES.ID_ACT  | T_ACT_Ref_Saisons
20                  | 4

T_TARIFS.ID_TAR   | T_TARIFS.TAR_Ref_Activite | TAR_Ref_Saison
25                | 20                        | 4
26                | 20                        | 4
APRES TRAITEMENT (après macro) :

Code : Tout sélectionner

T_ACTIVITES.ID_ACT  | T_ACT_Ref_Saisons
20                  | 4
23                  | 6

T_TARIFS.ID_TAR     | T_TARIFS.TAR_Ref_Activite | TAR_Ref_Saison
25                  | 20                        | 4
26                  | 20                        | 4
29                  | 23                        | 6
30                  | 23                        | 6
Merci pour vos pistes et vos conseils, car là, je sèche !
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Oukcha le 10 nov. 2024 19:44, modifié 3 fois.
Raison : Ajout coche verte (balise présente)
Libre Office 6.4.7.2 sous LinuxMint 20.03 Cinnamon (dernière version en date du dépôt officiel de LinuxMint)
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Comment dupliquer des enregistrements à partir d'un SELECT

Message par Dude »

Salut,

Dans un modèle relationnel propre, on ne duplique pas les tuples.
Si à la création d'une activité il faut rattacher un tarif, il suffit de définir celui-ci par défaut.
Et j'aurais plutôt vu l'id du tarif dans la table des activités.
Fabrice61
NOOuvel adepte
NOOuvel adepte
Messages : 21
Inscription : 06 juin 2022 08:54

Re: [Base] Comment dupliquer des enregistrements à partir d'un SELECT

Message par Fabrice61 »

Bonsoir Dude,

Mais oui, tu as tout à fait raison et c'est une erreur que j'ai commise dans l’analyse initiale il y a 3 ans...

A l'heure où je suis en train de préparer une version non personnalisée et libre de mon projet (Gestion Association/MJC/Centre de Loisirs), j'essaie de mettre au propre et de proposer un projet où les futurs utilisateurs n'auront pas à mettre les mains dans le cambouis avec, par exemple, purge des données anciennes, anonymisation de données (pour le droit à l'oubli), démarrage d'une nouvelle saison etc.

Je vais donc mettre au "propre" cette anomalie plutôt que de "bricoler" :wink:

Merci et bonne soirée.
Libre Office 6.4.7.2 sous LinuxMint 20.03 Cinnamon (dernière version en date du dépôt officiel de LinuxMint)