Méthode applicable par le biais d'un bouton et d'une macro disposé sur le formulaire de consultation des enregistrements de la table concerné.
1- ajouter une nouvelle macro au sein du document
il est necessaire de changer le nom du formulaire, et celui du controle textbox: "txtNOM" et "Form_Inventaire" en fonction des vôtres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Sub DUPLIREC_ToLast() DIM sVal,strSQL as string Dim oStatement,oForm As Object oForm = ThisComponent.Drawpage.Forms.getByName("Form_Inventaire") sVal =oForm.getByName("txtNOM").text oStatement = ThisDatabaseDocument.CurrentController.ActiveConnection.createStatement() strSQL ="INSERT INTO TAB_INVENTAIRE(TYPE, SERIEDUTYPE, NOM, DATE_ACHAT, BUDGET_ACHAT, FOURNISSEUR, SERIALNUMBER, MARQUE, SYSTEMES, RAM, SSD, SALLE) SELECT TYPE, SERIEDUTYPE, NOM, DATE_ACHAT, BUDGET_ACHAT, FOURNISSEUR, SERIALNUMBER, MARQUE, SYSTEMES, RAM, SSD, SALLE FROM TAB_INVENTAIRE WHERE NOM='"+sval+"' ;" oStatement.execute(StrSQL) oForm.moveToInsertRow oForm.Last END SUB
il est nécéssaire de modifier la commande SQL en foncion du nom de votre table, et de vos champs de données necessaire à la copie: ( NOMS DE CHAMPS ET TABLE EN ITALIQUE )
INSERT INTO TAB_INVENTAIRE(TYPE, SERIEDUTYPE, NOM, DATE_ACHAT, BUDGET_ACHAT, FOURNISSEUR, SERIALNUMBER, MARQUE, SYSTEMES, RAM, SSD, SALLE)
SELECT TYPE, SERIEDUTYPE, NOM, DATE_ACHAT, BUDGET_ACHAT, FOURNISSEUR, SERIALNUMBER, MARQUE, SYSTEMES, RAM, SSD, SALLE FROM TAB_INVENTAIRE
WHERE NOM='"sval+"' ;"
ATTENTION CEPENDANT: IL EST EVIDEMENT IMPOSSIBLE DE COPIER DES CHAMPS DEFINI COMME CLE UNIQUE......., je présupose que vos enregistrements sont basés sur un identifiant unique autoincrémenté.
2 -poser un bouton sur le formulaire et associez lui sur l'évènement "éxecuter" la marco précédentetraduction litterale de la commande SQL:
: j'insert dans un nouvel enregistrement les champs listé de la table cité
: je remplis les précédent champs avec une selection de champ a partir de la table cité
: mais seulement a partir de l'enregistrement qui contient la valeur contenu par le textbox actuel "txtNOM" du formulaire 'Form_Inventaire"
l'ajout du nouvel enregistrement se fait à la fin de la table, on fini donc la macro par un déplacement en fin de liste d'enregistrements.
Je vous conseil de lancer un rafraichissement du formulaire avant de pointer vers le dernier enregistrement. ( insérer votre fonction perso juste avant)
Partager