Formatage de date
Résolu
Ouistiti73
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
Ouistiti73 Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
Ouistiti73 Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un formulaire avec une date de naissance. Dans la table elle est enregistrée sous la forme jj/mm/aaaa.
Le demandeur lui importe peu pour l'instant le jour et le mois, il aimerait avoir 01/01/ et seulement l'année à renseigner. J'ai regardé les différents formats,mais je pense qu'il va falloir que je fasse une macro. Je ne renseignerai que l'année puis avec la macro forcer 01 pour le jour et pour le mois.
Qu'en pensez-vous et si vous avez le code et la façon de le faire je suis preneuse.
Bonne soirée
PS par contre, je ne veux pas modifier le jour et le mois pour les enregistrements déjà créés.
J'ai un formulaire avec une date de naissance. Dans la table elle est enregistrée sous la forme jj/mm/aaaa.
Le demandeur lui importe peu pour l'instant le jour et le mois, il aimerait avoir 01/01/ et seulement l'année à renseigner. J'ai regardé les différents formats,mais je pense qu'il va falloir que je fasse une macro. Je ne renseignerai que l'année puis avec la macro forcer 01 pour le jour et pour le mois.
Qu'en pensez-vous et si vous avez le code et la façon de le faire je suis preneuse.
Bonne soirée
PS par contre, je ne veux pas modifier le jour et le mois pour les enregistrements déjà créés.
Configuration: Windows / Firefox 88.0
A voir également:
- Formatage de date
- Formatage clé usb - Guide
- Formatage pc - Guide
- Publipostage date inversée ✓ - Forum Word
- Airpods 3 date de sortie - Guide
- Formatage conditionnel excel - Guide
11 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, quel est le type du champ dans la table?
tu ne dis rien de ton formulaire, ni de comment le formulaire provoque la création d'un enregistrement.
tu peux peut-être utiliser la fonction DateSerial, pour transformer l'année en une date, exemple:
DateSerial(2054,1,1)
tu ne dis rien de ton formulaire, ni de comment le formulaire provoque la création d'un enregistrement.
tu peux peut-être utiliser la fonction DateSerial, pour transformer l'année en une date, exemple:
DateSerial(2054,1,1)
Bonjour, Merci pour votre retour rapide.
C'est un formulaire pour mettre à jour une table Adhérent, dans cette table il y a un champ Né le -
(en aparté je n'aime pas ce nom de champ, mais ce n'est pas moi qui ai créé cette BD). je viens juste apporter des modifs et régler certains problèmes.
le format de Né le est en Date, général et le format est 00/00/00;0;_
L'utilisateur voudrait ne taper que l'année lors d'une inscription et que cela inscrive dans la table 01/01/1972 par ex.
Par contre il veut conserver pour les adhérents déjà créés leur date d'anniversaire car si marche arrière, il n'y aura que les nouveaux à modifier.
Il y a un bouton "Nouvelle Inscription" avec ce contenu sur clic :
Private Sub Commande193_Click()
On Error GoTo Err_Commande193_Click
DoCmd.GoToRecord , , acNewRec
If Month(Date) < 8 Then
INSCRADH = Year(Date) - 1
Else
INSCRADH = Year(Date)
End If
[Insen cours] = DLookup("[AnnéeCours]", "Année en cours")
Me.CivADH.SetFocus
Me.Code_intervenant = 1
Exit_Commande193_Click:
Exit Sub
Err_Commande193_Click:
MsgBox Err.Description
Resume Exit_Commande193_Click
End Sub
Le format de la date dans le formulaire est texte brut avec un masque de saisie 00/00/00;0;_
J'aurais voulu que dans le champ né le, le curseur arrive directement sur
l'année type 01/01/???? lors d'un nouvel enregistrement et en Modification, c'est pas grave, on modifie rarement des dates d'anniversaire, à moins d'une erreur. Et donc dans la table on obtiendrait 01/01/1972
J'espère que cela vous paraît clair.
Merci à vous
Il y a longtemps que je ne pratique plus et beaucoup de choses oubliées et des nouveautés à couper le souffle. Style on point sur la table principale et on clic sur formulaire et là magique tout apparait.
C'est un formulaire pour mettre à jour une table Adhérent, dans cette table il y a un champ Né le -
(en aparté je n'aime pas ce nom de champ, mais ce n'est pas moi qui ai créé cette BD). je viens juste apporter des modifs et régler certains problèmes.
le format de Né le est en Date, général et le format est 00/00/00;0;_
L'utilisateur voudrait ne taper que l'année lors d'une inscription et que cela inscrive dans la table 01/01/1972 par ex.
Par contre il veut conserver pour les adhérents déjà créés leur date d'anniversaire car si marche arrière, il n'y aura que les nouveaux à modifier.
Il y a un bouton "Nouvelle Inscription" avec ce contenu sur clic :
Private Sub Commande193_Click()
On Error GoTo Err_Commande193_Click
DoCmd.GoToRecord , , acNewRec
If Month(Date) < 8 Then
INSCRADH = Year(Date) - 1
Else
INSCRADH = Year(Date)
End If
[Insen cours] = DLookup("[AnnéeCours]", "Année en cours")
Me.CivADH.SetFocus
Me.Code_intervenant = 1
Exit_Commande193_Click:
Exit Sub
Err_Commande193_Click:
MsgBox Err.Description
Resume Exit_Commande193_Click
End Sub
Le format de la date dans le formulaire est texte brut avec un masque de saisie 00/00/00;0;_
J'aurais voulu que dans le champ né le, le curseur arrive directement sur
l'année type 01/01/???? lors d'un nouvel enregistrement et en Modification, c'est pas grave, on modifie rarement des dates d'anniversaire, à moins d'une erreur. Et donc dans la table on obtiendrait 01/01/1972
J'espère que cela vous paraît clair.
Merci à vous
Il y a longtemps que je ne pratique plus et beaucoup de choses oubliées et des nouveautés à couper le souffle. Style on point sur la table principale et on clic sur formulaire et là magique tout apparait.
tu n'as pas répondu à ma question, peux-tu confirmer que le type du champ "né le" est "Date/Heure"? Le format n'a en général que très peu d'importance.
Le plus propre, je pense, serait de créer un champ année dans la table, au lieu d'enregistrer une fausse date de naissance dans ce cas.
Sinon, ajouter un contrôle
Le plus propre, je pense, serait de créer un champ année dans la table, au lieu d'enregistrer une fausse date de naissance dans ce cas.
Sinon, ajouter un contrôle
année de naissancedans le formulaire, et, quand ce contrôle est modifié, adapter la valeur du contrôle
né ledu formulaire.
Oui désolée, j'ai oublié de préciser c'est bien "Date/Heure".
Elle ne veut pas d'un autre champ, je lui avais demandé.
Ce que je pensais, c'est de modifier le formulaire. Remplacer le champ "né le" par "AnnéeNaissance" et après modif, il crée 01/01/Année renseignée dans le champ "AnnéeNaissance" et met à jour le champ "né le" qui pourrait rester dans le formulaire en non visible. (je ne sais plus s'il doit apparaitre sur le formulaire ou non pour qu'il soit maj)
Le jour où ils veulent revenir à la saisie complète, il suffira de modifier ce champ par "né le"
Qu'est ce que vous en pensez ? Par contre les dates rendant parfois des choses bizarres, je ne sais pas trop comment faire ça.
Cela revient à votre deuxième point. Je peux laisser les 2 en visuel mais ne pouvoir modifier que le champ "AnnéeNaissance" du formulaire.
Elle ne veut pas d'un autre champ, je lui avais demandé.
Ce que je pensais, c'est de modifier le formulaire. Remplacer le champ "né le" par "AnnéeNaissance" et après modif, il crée 01/01/Année renseignée dans le champ "AnnéeNaissance" et met à jour le champ "né le" qui pourrait rester dans le formulaire en non visible. (je ne sais plus s'il doit apparaitre sur le formulaire ou non pour qu'il soit maj)
Le jour où ils veulent revenir à la saisie complète, il suffira de modifier ce champ par "né le"
Qu'est ce que vous en pensez ? Par contre les dates rendant parfois des choses bizarres, je ne sais pas trop comment faire ça.
Cela revient à votre deuxième point. Je peux laisser les 2 en visuel mais ne pouvoir modifier que le champ "AnnéeNaissance" du formulaire.
Bonjour,
Comment créer un champ indépendant dans un formulaire pour enregistrer une valeur qui sera année de naissance et pouvoir par vba inscrire dans né le 01/01/année de naissance ?
Merci à vous
Comment créer un champ indépendant dans un formulaire pour enregistrer une valeur qui sera année de naissance et pouvoir par vba inscrire dans né le 01/01/année de naissance ?
Merci à vous
Bonjour, J'ai réduit ma base au minima, par contre je ne sais pas comment vous l'envoyer. C'est la 1ère fois.
Merci
Merci
https://accounts.google.com/ServiceLogin?service=wise&passive=1209600&continue=https://drive.google.com/file/d/1vUGeyH1_WIwEMUyks8HbGDmzQMxD0HOt/view?usp%3Dsharing&followup=https://drive.google.com/file/d/1vUGeyH1_WIwEMUyks8HbGDmzQMxD0HOt/view?usp%3Dsharing
En espérant bonne réception.
En fait je ne voudrais entrer qu'une année de naissance et forcer 01/01 en jour et mois pour alimenter mon champ né (e).
Comme ça si un jour on veut revenir en arrière, il sera possible de remettre le champ né (e) .
Merci à vous.
En espérant bonne réception.
En fait je ne voudrais entrer qu'une année de naissance et forcer 01/01 en jour et mois pour alimenter mon champ né (e).
Comme ça si un jour on veut revenir en arrière, il sera possible de remettre le champ né (e) .
Merci à vous.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
https://www.cjoint.com/c/KEeu1m0mLqE
bonsoir
tu trouveras dans ce lien un fichier compressé avec diffirent format de date
tiens moi au courant
bonsoir
tu trouveras dans ce lien un fichier compressé avec diffirent format de date
tiens moi au courant
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
voilà, je propose ceci:
- créer un nouveau contrôle de type "boîte de texte" nommé "andn" dans le formulaire, destiné à contenir l'année de naissance
- rendre non modifiable le contrôle nommé "Né__e_" (ou le cacher, mais pas le supprimer)
- ajouter ce code dans le formulaire:
- créer un nouveau contrôle de type "boîte de texte" nommé "andn" dans le formulaire, destiné à contenir l'année de naissance
- rendre non modifiable le contrôle nommé "Né__e_" (ou le cacher, mais pas le supprimer)
- ajouter ce code dans le formulaire:
Private Sub Form_Current() If Not IsNull(Me.Né__e_) Then Me.andn = Year(Me.Né__e_) Else Me.andn = Null End If End Sub Private Sub andn_AfterUpdate() If Not IsNull(andn) Then If IsNumeric(andn) Then If Int(andn) = CSng(andn) And Int(andn) > 0 Then Me.Né__e_ = DateSerial(andn, 1, 1) End If End If End If End Sub
Super, cela répond exactement à mes besoins, j'ai rajouté un masque de saisie : 0000;;_ à ce champ "andn" de façon qu'il ne tape que 4 chiffres.
Je ne connaissais pas le code CSng ou je ne m'en souviens plus c'est tellement loin la programmation.
J'aimerai bien que vous me l'expliquiez, par contre est-il utile du fait que j'ai mis un masque de saisie ?
Grand merci à vous
Je ne connaissais pas le code CSng ou je ne m'en souviens plus c'est tellement loin la programmation.
J'aimerai bien que vous me l'expliquiez, par contre est-il utile du fait que j'ai mis un masque de saisie ?
Grand merci à vous
csng() convertit le texte en un nombre (de type
comme tu l'as deviné, les lignes 10, 11, 13 et 14 sont inutiles en présence de ce masque de saisie. elles vérifient que le texte est un nombre entier positif.
je les ai ajoutées après avoir supprimé le masque de saisie que j'avais créé initialement, ne sachant si tu pouvais ou voulais utiliser un tel masque (surtout, pour éviter d'expliquer le masque).
single).
comme tu l'as deviné, les lignes 10, 11, 13 et 14 sont inutiles en présence de ce masque de saisie. elles vérifient que le texte est un nombre entier positif.
je les ai ajoutées après avoir supprimé le masque de saisie que j'avais créé initialement, ne sachant si tu pouvais ou voulais utiliser un tel masque (surtout, pour éviter d'expliquer le masque).