[Résolu] Dupliquer un enregistrement depuis un formulaire

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 09:14

[Résolu] Dupliquer un enregistrement depuis un formulaire

Message par El_Brouno »

Bonjour,

J'ai beaucoup de matériel de même type et j'aimerais par exemple pouvoir, au travers de mon formulaire "AJOUT DE MATOS", créer un premier enregistrement "OBJET N°01", Puis en créer un second basé ce même premier enregistrement, mais en lui affectant par exemple cette fois le nom "OBJET N°02".

Pourriez vous m'aiguiller ?
Je vous joins une base test.

D'avance merci.
Bruno
Pièces jointes
Dupliquer un enregistrement depuis le formulaire AJOUT DE MATOS.odb
Dupliquer un enregistrement
(491.29 Kio) Téléchargé 193 fois
Dernière modification par El_Brouno le 15 mars 2021 20:40, modifié 1 fois.
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1398
Inscription : 18 janv. 2008 10:02
Localisation : Val de Marne

Re: Dupliquer un enregistrement depuis un formulaire

Message par jeanmi2403 »

Bonjour,
Je ne vois pas d'autre solution que par macro.
D'autre part, si solution il y a :
El_Brouno a écrit : basé sur ce même premier enregistrement,
C'est un peu flou, il faudrait savoir quels sont les champs à conserver.
Cordialement,
Jean-Michel
LibO 7.5.9 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 7.6 sur OpenSuse & Linux MX
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 09:14

Re: Dupliquer un enregistrement depuis un formulaire

Message par El_Brouno »

Merci pour ta réponse aussi peu aidante soit elle à cet instant.
Par macro ... Mais qui est le preux chevalier ou chevalière qui volerait à mon secours quant à me donner explication voire une mise à disposition d'un tel résultat ?

Si le faut, je suis à même de pouvoir lui fournir ici et maintenant le contenu des champs que je souhaite pouvoir conserver dans la copie d'un enregistrement en vue de le dupliquer.
Il en est même bien plus simple car en effet l'ensemble des éléments contenus dans le formulaire AJOUT DE MATOS de ma base exemple postée plus haut devrait pouvoir être reproduit.

Bien amicalement et vous remerciant Tous d'avance.
Bruno
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Dupliquer un enregistrement depuis un formulaire

Message par jeanmimi »

Bonjour,
SI OBJET est un début d'enregistrement très fréquent, il est intéressant dans ce cas d'avoir une Table principale contenant les OBJET et une Table secondaire en relation pour les détails 1, 2, 3, etc.
 Ajout : 
Base_El_Brouno.odb
(12.54 Kio) Téléchargé 209 fois
 
Dernière modification par jeanmimi le 21 nov. 2020 14:15, modifié 1 fois.
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 09:14

Re: Dupliquer un enregistrement depuis un formulaire

Message par El_Brouno »

Merci, Malheureusement ce n'est pas le cas.

En effet l'appellation OBJET va nécessiter plusieurs enregistrement de quasi même contenu mais une fois tous les objets entrés dans la base, nous n'y reviendrons plus.
Par contre, nous pouvons être amené par la suite à devoir entrer dans la base un nouveau type de MEUBLE ( par exemple une soixantaine ) il est important que chacun est son enregistrement unique notamment pour pouvoir indiquer les N° de série, leur état et leurs années de fabrication.

Comment faire pour entrer un enregistrement et le dupliquer 59 fois en ne changeant que les valeurs désirés ?
Si les macros sont la solution, je vais avoir aussi avoir besoin d'un coup de pouce.

J'espère, au travers de ces images, avoir éclairer tes lanternes quant à mes besoins.
Bruno
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Dupliquer un enregistrement depuis un formulaire

Message par jeanmimi »

Comme je ne vois pas où est la difficulté : il n’y a pas à dupliquer 59 fois ...
Peux-t-on avoir des exemples un peu plus précis que OBJETS ou MEUBLES 1,2,3 ?
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25143
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: Dupliquer un enregistrement depuis un formulaire

Message par Dude »

Salut,
jeanmimi a écrit :Comme je ne vois pas où est la difficulté : il n’y a pas à dupliquer 59 fois ...
+1

D'autant que la solution est dans la question :
El_Brouno a écrit :nous pouvons être amené par la suite à devoir entrer dans la base un nouveau type de MEUBLE
Type devrait donc être une table à part entière.
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 09:14

Re: Dupliquer un enregistrement depuis un formulaire

Message par El_Brouno »

Bonsoir à tous les deux.
Comme je ne vois pas où est la difficulté : il n’y a pas à dupliquer 59 fois ...
Ravi de vous le voir écrire. Mais comment faire alors ?

Prenons un cas pour exemple :

Je viens de recevoir 40 nouveaux microphones de mêmes marque et même modèle. J'aimerais les intégrer à ma base de données dans la famille SON et la catégorie MICROPHONES DYNAMIQUES. je créer donc un enregistrement comprenant les informations suivantes; Date d'ajout à la base, Marque, Modèle, Informations diverses, N° de Série et Année d'achat.

A ce stade, j'ai bien enregistré le premier micro des 40 que je viens de recevoir et il va me falloir les ajouter eux aussi à la base de données.

Seulement, je ne sais pas comment récupérer les informations de mon premier micro, ne changer que le N° de Série et créer un nouvel enregistrement. (le second micro)

Pour l'instant, j'entre 40 fois les mêmes données dans 40 enregistrements différents ou seul différ le numéro de série de chacun

J'espère vous avoir éclairé sur ma requête.
Y voyez vous une quelconque solution ?

D'avance merci.
Bruno
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Dupliquer un enregistrement depuis un formulaire

Message par jeanmimi »

El_Brouno a écrit :Y voyez vous une quelconque solution ?
Oui, celle ébauchée dans l’exemple joint ici :
https://forum.openoffice.org/fr/forum/v ... 86#p344699
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 09:14

Re: Dupliquer un enregistrement depuis un formulaire

Message par El_Brouno »

Ok désolé je n'avais pas vu le fichier joint la première fois.

Merci pour vos propositions, mais je ne comprends pas du tout ce que vous essayer de m'expliquer.
Pensant avoir fait mon possible pour essayer d'exprimer clairement mon besoin, je n'ai malheureusement pas réussi vous le faire comprendre.
Je vais essayer de me passer de cette option.

Cordialement
Bruno
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Dupliquer un enregistrement depuis un formulaire

Message par jeanmimi »

El_Brouno a écrit :Pensant avoir fait mon possible pour essayer d'exprimer clairement mon besoin, je n'ai malheureusement pas réussi vous le faire comprendre.
Je suis d'accord, j'ai été un peu lent à la compréhension.
En regardant à nouveau la première base Ajout de Matos, je propose plutôt cette Relation entre Tables :
Base Matos Relations.jpg
La Table TMatérielFiche n'est pas conforme : elle ne devrait contenir que les données du Matériel, mais pas les données variables comme les Festivals et les Factures Fournisseurs qui vont changer au fur et à mesure des réassortiments et entrées en stock.
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1398
Inscription : 18 janv. 2008 10:02
Localisation : Val de Marne

Re: Dupliquer un enregistrement depuis un formulaire

Message par jeanmi2403 »

Bonjour,
Effectivement, il y a la possibilité d'améliorer la structure, notamment les noms de champ, pour y voir plus clair.
Par exemple, dans la table Catégorie, la clé primaire peut s'appeler tout simplement ID, de même que dans la table Marques. Et également les Refxxx en relation avec les IDxxx
Mais une structure améliorée ne répond pas à la question (qui m'intéresse aussi) : comment dupliquer un enregistrement à partir du dernier saisi ?
Bon dimanche,
Jean-Michel
LibO 7.5.9 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 7.6 sur OpenSuse & Linux MX
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Dupliquer un enregistrement depuis un formulaire

Message par jeanmimi »

jeanmi2403 a écrit :comment dupliquer un enregistrement à partir du dernier saisi ?
Quelle en serait l’intérêt dans une Base relationnelle comme celle de AOO ou de LO ?
Une Table de Base n'est pas normalement une feuille de Calc, c’est la raison pour laquelle la Table TMaterielFiches n'est pas complètement conforme à ce qui est attendu dans une Base relationnelle (le camp Fournisseur devrait être de type INTEGER).
 Ajout : Maintenant, si c'est essentiel, on peut se rapporter à cette Macro de Piaf :
https://forum.openoffice.org/fr/forum/v ... =8&t=41504 
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
Dahu
Membre lOOyal
Membre lOOyal
Messages : 45
Inscription : 20 août 2017 21:49

Re: Dupliquer un enregistrement depuis un formulaire

Message par Dahu »

Bonjour,
Pour dupliquer un enregistrement :
- intégrer dans le formulaire un"contrôle de table" (qui présente les enregistrement en liste)
- vérifier, dans les attributs, que "marqueur d'enregistrement" est à "oui"
- sélectionner l'enregistrement par un clic souris sur le marqueur (rectangle sur la bordure gauche) - avec la souris, déplacer l'enregistrement à l'intérieur du tableau (le curseur souris deviens un symbole de document avec un + en haut à gauche) et relâcher la souris.

Un nouveau enregistrement est créé, identique au premier.
Cette manipulation fonctionne aussi sur les tables.
IMPORTANT : il vaut mieux avoir une clé primaire auto incrémentée pour éviter les conflits.

Ceci étant dit, si le même produit est stocké en plusieurs exemplaires, il vaut mieux créer une table "produit" avec les caractéristiques du produits, et une table "achat" liée par la réf du produit contenant la date de commande, la date de livraison, la quantité livrée.
Ensuite, une table "vente" avec la réf du produit, la date de vente, et la quantité vendue.
Une requête "stock" pourra calculer la différence entre les achats et les ventes pour chaque produit.

Bien cordialement
François
LO 7.4.6.2 / Windows 10
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 09:14

Re: Dupliquer un enregistrement depuis un formulaire

Message par El_Brouno »

Bonsoir et merci pour ta solution.

Malheureusement si je tente cette méthode. Libre office crash et je dois le redémarrer.

J'utilise la version 7.1.1

Davance merci.
Bruno
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Dupliquer un enregistrement depuis un formulaire

Message par jeanmimi »

Dahu a écrit :Un nouveau enregistrement est créé, identique au premier.
Je viens de le tester sur une Table, et ça fonctionne.
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 09:14

Re: Dupliquer un enregistrement depuis un formulaire

Message par El_Brouno »

Merci Jean mimi,

En effet directement dans la table ça marche aussi chez moi.

Bonne soirée.
Bruno
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
Avatar de l’utilisateur
Dahu
Membre lOOyal
Membre lOOyal
Messages : 45
Inscription : 20 août 2017 21:49

Re: Dupliquer un enregistrement depuis un formulaire

Message par Dahu »

Heureux d'avoir aidé,
Pensez à mettre le fil en "résolu"... :)
LO 7.4.6.2 / Windows 10
Verrouillé