[Résolu] Répéter une valeur dans un champ

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.
Avatar de l’utilisateur
Verdastel
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 05 oct. 2013 20:58
Localisation : Savoie, France

[Résolu] Répéter une valeur dans un champ

Message par Verdastel »

Bonjour,
Existe-t-il un raccourci clavier permettant de répéter dans un champ de table ou de formulaire, la même valeur que celle de l'enregistrement précédent ?
Par exemple si j'ai un champ date et que j'ai de nombreux enregistrements à cette date, comment ne pas répéter sa saisie, mais rappeler la date de l'enregistrement précédent par une touche ?
Merci pour vos conseils.
Dernière modification par Verdastel le 26 déc. 2013 08:14, modifié 1 fois.
Verdastel
LibreOffice 6.0.6.2, MySQL
Ubuntu 18.04, 64 bits, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17219
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Répéter une valeur dans un champ

Message par jeanmimi »

Bonjour,
Je ne sais pas quelle est la structure de ta Base, mais c'est possible avec deux tables : une avec la date et une avec les détails des enregistements pour cette date.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
Verdastel
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 05 oct. 2013 20:58
Localisation : Savoie, France

Re: Répéter une valeur dans un champ

Message par Verdastel »

Bonjour,
Pour répondre à ta question Jeanmimi :
Dans une table j'ai les noms de plantes, dans une autre j'ai les communes, dans la troisième qui s'appelle "enregistrements plantes" je lie 1 plante à 1 commune et à 1 date. Quand je reviens de ma sortie je prends ma liste de plantes et pour chaque plante notée, je dois créer un enregistrement dans cette table.
Pour cela j'utilise un formulaire dans lequel j'ai une liste déroulante pour choisir les plantes, une pour les communes et un champ date. Comment faire pour ne pas avoir à taper la date à chaque enregistrement ?
La structure décrite est simplifiée pour ne pas surcharger le message.
Merci
Verdastel
LibreOffice 6.0.6.2, MySQL
Ubuntu 18.04, 64 bits, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17219
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Répéter une valeur dans un champ

Message par jeanmimi »

Verdastel a écrit : Comment faire pour ne pas avoir à taper la date à chaque enregistrement ?
Je verrai bien une Table T_sorties avec un champ ID_sortie en INTEGER Auto_Valeur et un champ Date, et une Table T_detail_sortie avec un champ ID_detail en INTEGER Auto_Valeur, un champ ID_sortie en INTEGER, un champ ID_Plante. Le champ ID_Commune peut être soit dans la table T_sortie, si pour une date tu ne parcours qu'une seule commune, ou dans la table T_detail_sortie si ta sortie t'emmène dans plusieurs communes.
Pour le formulaire, la structure sera Formulaire : relié à la Table T_sorties et le sous-formulaire à la Table T_detail_sortie, le champ ID_sortie fera le lien entre le Formulaire et le sous-fomulaire.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: Répéter une valeur dans un champ

Message par Piaf »

Bonsoir
Je pense que tu fais référence à Access où ce raccourci existe (autant que je me souvienne).
A ma connaissance cette fonctionnalité n'existe pas dans Base, mais il est possible de la créer par macro.
Voir : [Base] Copier valeur Champ enregistrement précédent
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
Verdastel
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 05 oct. 2013 20:58
Localisation : Savoie, France

Re: Répéter une valeur dans un champ

Message par Verdastel »

Je ne démarre pas la conception d'une base mais j'ai migré une base depuis Access. Dans ma table enregistrement il y a 40000 enregistrements (base MySQL pilotée avec Base). Ce que j'ai appelé commune dans la présentation pour simplifier, c'est en fait une table "stations" qui contient les éléments nombreux permettant de définir un point précis inventorié : commune, lieu-dit, altitude, coordonnées géographiques, pente, exposition, type de formation végétale, etc. donc dans une même journée j'ai de nombreuses stations dans la même commune. Je peux très bien recenser la même plante 10 fois dans 10 stations différentes de la même commune.
La table enregistrements met en relation une plante + une station + une date + quelques autres éléments
Les noms de plantes ainsi de ques stations sont issus de plusieurs tables liés qui permettent de disposer de toutes les infos dont on peut avoir besoin pour exploiter les données.
Je ne peux donc pas refondre la base. Dans Access il y a un raccourci clavier permettant de répéter la valeur de l'enregistrement précédent pour un champ (ex : même date). Ou bien avec une case à cocher et du code je lui disais que tant que la case est cochée, il faut reporter la même date. Ce que je ne suis pas capable de faire pour l'instant avec Base.
Bien conscient que je dois me défaire des habitudes d'Access et qu'il y a peut être des outils différents à découvrir, mais transition n'est pas facile. Je trouve des tutoriels de base, mais de la documentation plus complète, je n'ai pas vraiment trouvé pour l’instant...
Merci.
Verdastel
LibreOffice 6.0.6.2, MySQL
Ubuntu 18.04, 64 bits, Thunderbird, Firefox
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: Répéter une valeur dans un champ

Message par Piaf »

Bonsoir
Dans un premier temps, tu veux automatiser une fonction qui n'existe pas dans Base, donc : déjà poster dans la bonne section !
Verdastel a écrit :Dans Access il y a un raccourci clavier permettant de répéter la valeur de l'enregistrement précédent pour un champ
En quoi la macro du message envoyé en solution ne répond pas à la question ?
Verdastel a écrit :Ou bien avec une case à cocher et du code je lui disais que tant que la case est cochée, il faut reporter la même date.
Où est le rapport avec la question précédente ?
Verdastel a écrit :Bien conscient que je dois me défaire des habitudes d'Access et qu'il y a peut être des outils différents à découvrir
Une des grandes différences entre Access et Base, est que le premier te permet de faire ce que les développeurs ont prévus et que le second te permet de faire ce que tu veux obtenir... mais il faut fouiller un peu.
Et pour fouiller des programmeurs ont fournis des outils indispensables XRay et/ou MRI.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
Verdastel
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 05 oct. 2013 20:58
Localisation : Savoie, France

Re: Répéter une valeur dans un champ

Message par Verdastel »

Bonjour,
Merci PIAF pour ta réponse. La macro répond bien à la question, mais en fait nos réponses se sont croisées. Cela fonctionne très bien sur la base test que tu m'as envoyée. Maintenant je vais l'implanter sur la mienne.
Bonne journée.
Verdastel
LibreOffice 6.0.6.2, MySQL
Ubuntu 18.04, 64 bits, Thunderbird, Firefox