Formatage de date

Résolu/Fermé
Ouistiti73 Messages postés 18 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 6 mai 2021 - Modifié le 2 mai 2021 à 20:02
Ouistiti73 Messages postés 18 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 6 mai 2021 - 6 mai 2021 à 18:55
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.



Configuration: Windows / Firefox 88.0

11 réponses

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
2 mai 2021 à 21:27
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)
0
Ouistiti73 Messages postés 18 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 6 mai 2021
Modifié le 3 mai 2021 à 09:41
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.
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
3 mai 2021 à 10:22
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
année de naissance
dans le formulaire, et, quand ce contrôle est modifié, adapter la valeur du contrôle
né le
du formulaire.
0
Ouistiti73 Messages postés 18 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 6 mai 2021
3 mai 2021 à 10:59
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.
0
Ouistiti73 Messages postés 18 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 6 mai 2021
4 mai 2021 à 15:47
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
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
4 mai 2021 à 16:12
peux-tu partager ton fichier?
0
Ouistiti73 Messages postés 18 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 6 mai 2021 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
5 mai 2021 à 11:02
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
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > Ouistiti73 Messages postés 18 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 6 mai 2021
5 mai 2021 à 12:54
il faut publier le fichier sur internet (google drive, one drive, cjoint.com, ...) puis partager ici un lien vers le fichier publié.
0
Ouistiti73 Messages postés 18 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 6 mai 2021 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
5 mai 2021 à 13:04
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.
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > Ouistiti73 Messages postés 18 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 6 mai 2021
5 mai 2021 à 13:42
le fichier n'est pas public.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ouistiti73 Messages postés 18 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 6 mai 2021
4 mai 2021 à 20:52
Bonsoir
Oui je veux bien mais quel fichier dans une BD access ?
Merci
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
4 mai 2021 à 21:03
en as-tu plusieurs?
0
Ouistiti73 Messages postés 18 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 6 mai 2021 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
5 mai 2021 à 11:03
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
0
https://www.cjoint.com/c/KEeu1m0mLqE
bonsoir
tu trouveras dans ce lien un fichier compressé avec diffirent format de date
tiens moi au courant
0
Ouistiti73 Messages postés 18 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 6 mai 2021
5 mai 2021 à 12:01
Merci à vous.
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
6 mai 2021 à 15:24
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:
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
0
Ouistiti73 Messages postés 18 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 6 mai 2021
6 mai 2021 à 17:28
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
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
6 mai 2021 à 17:39
csng() convertit le texte en un nombre (de type
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).
0
Ouistiti73 Messages postés 18 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 6 mai 2021
6 mai 2021 à 18:19
Ok, c'est ce que j'ai fait. Le masque c'est mieux, sinon il vont me mettre une virgule par erreur ou autre.
Merci
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
6 mai 2021 à 18:39
peux-tu alors marquer la discussion comme résolue?
0
Ouistiti73 Messages postés 18 Date d'inscription samedi 1 mai 2021 Statut Membre Dernière intervention 6 mai 2021
6 mai 2021 à 18:55
Je reviendrai plus tard sur un autre problème si je n'arrive pas à le résoudre, c'est pour insertion d'une photo sur mon formulaire.
A bientôt
0