|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() |
Bonjour,
Je travail avec Access 2003, vba 6.4. J'utilise la fonction CDate pour parser de string à Date. Le problème c'est que des fois j'ai des String genre "30.02.2010"...et la fonction retourne "Error 13 <Incompatibilité de type>". J'ai essayé de récupérer cette erreur avec "On error GoTo"...mais ça ne fonctionne pas. Quand j'ai cette erreur, la ligne devient jaune et le programme est bloqué...le seul moyen c'est de tout arrêter et recommencer... Il y a un autre moyen pour récupérer cette erreur et de permettre ainsi à ma boucle de continuer jusqu'à sa fin?? |
|
|
00
|
|
|
#2 | ||
|
Membre habitué
![]() Inscription : juillet 2010 Messages : 117 ![]() |
Salutations,
Je pense que ton problème vient du fait que le format "DD.MM.YYYY" n'est pas reconu. Pour le contourner il faudrait que tu remplaces les "." par des "/". Pour ce faire je te propose le code suivant (à adapter bien sûr) : Code :
__________________
"Je suis capable du meilleur comme du pire, mais dans le pire, c'est moi le meilleur" Coluche. |
||
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() |
Merci beaucoup pour la réponse!
Malheureusement le format de la date ce n'est pas la cause de l'erreur. Le souci c'est les dates qui n'existent pas.. 30, 31 février, 31 avril, 31 juin... Si je met 28 février tout ce passe bien. J'aimerais récupérer l'erreur, de façon à signaler les champs avec une date inexistante et faire continuer mon code sur les champs qui sont ok. |
|
|
00
|
|
|
#4 | ||
|
Membre habitué
![]() Inscription : juillet 2010 Messages : 117 ![]() |
Autant pour moi, je n'avais effectivement pas compris l'origine du problème.
Donc étant donné que parfois c'est ta date d'entrée qui est fausse, on peut imaginer une solution qui consiste à déterminer le dernier jour du mois correspondant à ta date et ensuite comparer les numéros de jour. Si celui que tu as en entrée est plus grand que celui renvoyé par la fonction alors c'est que tu es en erreur. Je te propose la fonction suivante puor récupérer le dernier jour existant réellement sur le mois : Code :
Voilà, j'espère ne pas avoir tapé à côté cette fois. Cordialement,
__________________
"Je suis capable du meilleur comme du pire, mais dans le pire, c'est moi le meilleur" Coluche. |
||
|
|
10
|
|
|
#5 |
![]() ![]() |
Bonjour
Regardes du coté de la fonction IsDate. Sinon, pourquoi as-tu des dates erronées ? D'où viennent-elles ? Est-ce qu'il s'agit de mauvaises saisies ? Si oui il y a des solutions pour canaliser celle-ci. Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
30
|
|
|
#6 |
|
Membre régulier
![]() |
Merci pour toutes les réponses!
Les dates erronées sont effectivement des mauvaises saisies...mais pas à cause de vba ou de la bdd. C'est un programme externe java qui a fais ça... bug des mois de 0 à 11... (le 30.02.2010 serais donc le 30 mars 2010...) De plus, ces dates sont contenues dans un champ texte, et non pas date, je dois les extraire et y ajouter un mois. Mais seulement pour celles avant une certaine date, car après le programme java a été corrigé... d'où l'utilisation du CDate pour ensuite les comparer. Les 2 solutions fonctionnent je vais retenir le IsDate, beaucoup plus simple et qui me permet de garder le "vraie" jour du mois Merci beaucoup!!
|
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : juillet 2010 Messages : 117 ![]() |
Je prends note aussi du IsDate que je ne connaissais pas. *s'en va simplifier ses codes
*
__________________
"Je suis capable du meilleur comme du pire, mais dans le pire, c'est moi le meilleur" Coluche. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com