Calcul age dans un sous formulaire Libre Office Base

Résolu/Fermé
DUME06 Messages postés 292 Date d'inscription mardi 27 mars 2012 Statut Membre Dernière intervention 10 avril 2024 - 2 oct. 2021 à 08:34
DUME06 Messages postés 292 Date d'inscription mardi 27 mars 2012 Statut Membre Dernière intervention 10 avril 2024 - 5 oct. 2021 à 17:09
Bonjour à Vous Tous
J'avais d'abord effectué le calcul d'age avec une requête => cela fonctionnait bien; mais la fonction nouvel enregistrement restait inactive dans le formulaire!!
Aussi j'ai opté pour le calcul à partir d'un sous formulaire avec la commande suivante dans la table Vue crée à partir de la T.Adhérents:

YEAR( NOW( ) ) - YEAR( "T.Adhérents"."DateNaissance" ) - CASE WHEN ( MONTH( NOW( ) ) < MONTH( "T.Adhérents"."DateNaissance" ) OR ( MONTH( NOW( ) ) = MONTH( "T.Adhérents"."DateNaissance" ) AND DAY( NOW( ) ) < DAY( "T.Adhérents"."DateNaissance" ) ) ) THEN 1 ELSE 0 END

çà fonctionne très bien; mais je voudrai obtenir comme avec la requête; après le nombre Age '50' , le mot 'ans' soit '50 ans'.
SVP; puis-je faire un ajout à ma commande ? Si oui, comment et où puis-je l'incorporer ?
Merci par avance pour votre aide.
Cordialement
DUME06
A voir également:

3 réponses

acefalo Messages postés 68 Date d'inscription vendredi 5 décembre 2014 Statut Membre Dernière intervention 27 février 2024 15
Modifié le 4 oct. 2021 à 02:18
Bonjour,

Quand je fais éditer dans le champ de la vue de la table Contacts (VueAGE) du fichier, j'obtiens :

YEAR( NOW( ) ) - YEAR( "Contacts"."DDN" ) - CASE WHEN ( MONTH( NOW( ) ) < MONTH( "Contacts"."DDN" ) OR ( MONTH( NOW( ) ) = MONTH( "Contacts"."DDN" ) AND DAY( NOW( ) ) < DAY( "Contacts"."DDN" ) ) ) THEN 1 ELSE 0 END


(Les noms des champs diffèrent de votre description, mais j'imagine que ce sont deux fichiers différents.)

Pour ajouter " ans" (ce que j'ai ajouté est en gras) :

CONCAT( YEAR( NOW( ) ) - YEAR( [Contacts].[DDN] ) - CASE WHEN ( MONTH( NOW( ) ) < MONTH( [Contacts].[DDN] ) OR ( MONTH( NOW( ) ) = MONTH( [Contacts].[DDN] ) AND DAY( NOW( ) ) < DAY( [Contacts].[DDN] ) ) ) THEN 1 ELSE 0 END, ' ans' )




Je ne sais pas si cela pose problème, mais s'il n'y a pas de date de naissance "ans" apparaîtra seul dans la case. Au lieu d'avoir une case vide. Je pense qu'on peut ajouter un IF THEN ELSE ou quelque chose du genre.
1
DUME06 Messages postés 292 Date d'inscription mardi 27 mars 2012 Statut Membre Dernière intervention 10 avril 2024 20
4 oct. 2021 à 11:33
Je te remercie infiniment pour ta célérité et ton aide...
J'avais posté la même question sur le Forum LibreOffice et j'ai reçu une réponse hier après midi.
J'ai donc testé sur mon modèle test et ensuite appliqué sur mon formulaire 'Adhérents'.
çà fonctionne parfaitement bien... Ci-dessous la commande SQL que j'ai appliqué dans mon formulaire de test :
YEAR( NOW( ) ) - YEAR( "Contacts"."DDN" ) - CASE WHEN ( MONTH( NOW( ) ) < MONTH( "Contacts"."DDN" ) OR ( MONTH( NOW( ) ) = MONTH( "Contacts"."DDN" ) AND DAY( NOW( ) ) < DAY( "Contacts"."DDN" ) ) ) THEN 1 ELSE 0 END ||' ans' AS "ans",
Je vais donc passer le sujet en résolu......
En te renouvelant tous mes remerciements; je te souhaite une agréable journée
Bien Amicalement
DUME06
0
DUME06 Messages postés 292 Date d'inscription mardi 27 mars 2012 Statut Membre Dernière intervention 10 avril 2024 20
5 oct. 2021 à 09:30
Bonjour ACEFALO
Suite à ton message; j'ai appliqué ta solution et çà fonctionne également très bien.
J'ai voulu également obtenir une DDN complète format "jj/mm/aaaa" ; j'ai donc modifié le format DDN dans la table Contacts et ensuite recréé une table Vue1 + appliqué ta commande =>le résultat est le mème qu'avec la table VueAge : format DDN inchangé "jj/mm/aa"
Faut-il rajouter un autre paramètre dans la table Vue1 pour obtenir "jj/mm/aaaa"
Merci d'avance pour ta compréhension et ton aide.
Bian amicalement
DUME06
0
DUME06 Messages postés 292 Date d'inscription mardi 27 mars 2012 Statut Membre Dernière intervention 10 avril 2024 20 > DUME06 Messages postés 292 Date d'inscription mardi 27 mars 2012 Statut Membre Dernière intervention 10 avril 2024
5 oct. 2021 à 17:09
Je répond à mon message...
J'ai trouvé la solution = dans le formulaire => transformer le champ DDN en 'Champ Formaté' puis dans 'Propriétés des Contrôles' aller dans 'Formatage' et passer en format Date jj/mm/aaaa.....
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié le 2 oct. 2021 à 10:33
Bonjour,

tu peux le faire en mettant au bout de ta formule
&" ans" 


Mais c'est mieux de changer le format de ta colonne.
Sélectionne-la, clic-droit dessus et 'Formater des cellules..."
En bas de la fenêtre tu mets
0" ans"
et tu valides
L'avantage c'est que ça reste un nombre au lieu d'être un texte, que tu pourra tester facilement, trier, etc.
eric


0
DUME06 Messages postés 292 Date d'inscription mardi 27 mars 2012 Statut Membre Dernière intervention 10 avril 2024 20
2 oct. 2021 à 18:21
Bonsoir ERIC
Tout d'abord, merci infiniment pour ta célérité et ton aide.
Malheureusement çà ne fonctionne pas => ci joint l'exemple que j'ai créé

En te renouvelant mes remerciements ; je te souhaite une bonne soirée
Bien amicalement
DUME06
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
2 oct. 2021 à 18:54
Bonjour,

dépose ton fichier sur cjoint.com et colle ici le lien fourni
eric
0
DUME06 Messages postés 292 Date d'inscription mardi 27 mars 2012 Statut Membre Dernière intervention 10 avril 2024 20
2 oct. 2021 à 19:22
Merci ERIC
Ci-dessous le Lien de mon exemple:
https://www.cjoint.com/c/KJcru56xnAR
En te renouvelant mes remerciements; je te souhaite une bonne soirée
Bien amicalement
DUME06
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213 > DUME06 Messages postés 292 Date d'inscription mardi 27 mars 2012 Statut Membre Dernière intervention 10 avril 2024
3 oct. 2021 à 12:43
Bonjour,

désolé, je pensais que tu étais sur Calc.
Je ne connais pas Base
eric
0
DUME06 Messages postés 292 Date d'inscription mardi 27 mars 2012 Statut Membre Dernière intervention 10 avril 2024 20 > eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024
3 oct. 2021 à 17:30
Pas de soucis ERIC.
Je te renouvelle encore tous mes remerciements pour ton aide et ta célérité.
Bonne soirée à toi
Bien amicalement
DUME06
0