J'avais eu des problèmes de date, et j'en ai à nouveau...
Dans une zone texte ayant pour masque de saisie 00/00/0000;0;_ , l'utilisateur doit entrer une date. Celle-ci semble être présentée sous le format jj/mm/aaaa, puisqu'en entrant la date 12/31/2000, la valeur affichée après changement du focus est 31/21/2000.
A la fin de sa saisie, l'utilisateur active un bouton, j'utilise "INSERT INTO" pour enregistrer les données dans une table, où les données semblent présentée sur le même schéma jj/mm/aaaa. (j'ai une date 30/06/1112 affichée) Lors de cette insertion, j'ajoute 6 mois à la date renseignée dans la zone de texte.
Et là, problème. Concernant les dates ayant un jour > 12, rien à signaler, tout se passe comme désiré. Pour les autres, par contre, c'est la valeur du jour qui est modifiée dans la table, alors que l'année change aussi.
J'utilise ce code :
Ainsi, quand 31/12/2000 devient bien 31/06/2001, 11/11/1111 devient par contre 05/11/1112...
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmd.RunSQL "INSERT INTO TblDocs VALUES ('" & Replace(Me.txtNomST.Value, Chr(39), " ") & "', '" & Me.lbldoc1.Caption & "', #" & DateAdd("m", 6, Me.txtdoc1.Value) & "#) "
Si l'utilisateur veut modifier ces dates, il peut rouvrir le formulaire. Je cherche donc à afficher la date qu'il a renseignée, non pas celle qui a été enregistrée, et là je n'ai aucun soucis que le jour soit supérieur ou inférieur à 12. Enfin, aucun problème, si on considère que la date enregistrée est la bonne, ce qui est rarement le cas...
J'ai essayé d'appliquer la fonction CDate a mon code de cette façon :
et de cette façon :
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmd.RunSQL "INSERT INTO TblDocs VALUES ('" & Replace(Me.txtNomST.Value, Chr(39), " ") & "', '" & Me.lbldoc1.Caption & "', #" & CDate(DateAdd("m", 6, Me.txtdoc1.Value)) & "#) "
mais sans succès...
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmd.RunSQL "INSERT INTO TblDocs VALUES ('" & Replace(Me.txtNomST.Value, Chr(39), " ") & "', '" & Me.lbldoc1.Caption & "', #" & DateAdd("m", 6, CDate(Me.txtdoc1.Value)) & "#) "
En vous remerciant d'avance pour votre aide,
wulfram
Partager