Contrôle de saisie

Fermé
Reivax91 Messages postés 253 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 30 juillet 2014 - Modifié par Reivax91 le 6/12/2010 à 18:27
Reivax91 Messages postés 253 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 30 juillet 2014 - 4 janv. 2011 à 09:13
Bonjour,
J'ai créé un formulaire Access avec un programme VBA derière, qui, lorsqu'on rentre une date (format spécial : jjMm ex : 22Nov), va chercher dans une base de données les détails d'appels téléphoniques par tranche horaire.
Je voudrais pouvoir faire du contrôle de saisie avec le VBA pour qu'on ne puisse pas demander de voir les détails d'une date qui n'existe pas. Par exemple, afficher un message d'erreur si on rentre "35Nov" ou "22Nvembre" ...
Un grand Merci d'avance, je suis perdu là .. ^^
Reivax91

4 réponses

Reivax91 Messages postés 253 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 30 juillet 2014 28
Modifié par Reivax91 le 6/12/2010 à 12:18
J'ai commencé par essayer de verifier le nombre de caractères saisis.
Voici mon code qui ne fonctionne pas ........ Help please

If DateSelect = "?????" Then 
   MsgBox ("Date correcte") 
   Else 
   MsgBox ("Vous avez fait une erreur lors de la saisie de la date, merci de recommencer") 
End If
0
Reivax91 Messages postés 253 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 30 juillet 2014 28
Modifié par Reivax91 le 6/12/2010 à 12:18
J'ai trouvé la solution, pour le nombre de caractère du moins :
SaisieNbCar = Len(DateSelect) 
If SaisieNbCar <> 5 Then 
    MsgBox ("Vous avez fait une erreur lors de la saisie de la date, merci de recommencer") 
    Else 
    MsgBox ("Date correcte") 
End If
0
Gaunts Messages postés 1125 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 18 mars 2012 116
Modifié par Gaunts le 6/12/2010 à 14:50
Salut,

C'est possible mais je pense assez fastidieux.
Tu vas devoir commencer par vérifier le mois avec la fonction:
Mid(string, start[, length])
puis vérifier que le numéro est valide, toujours avec cette même fonction, ainsi que la fonction:
Val(string)


PS: et éventuellement pour le mois de février, tester si l'année est bissextile..
Si tu arrives à extraire le jour et le mois, tu peux transformer ta chaine en format date avec la fonction valdate(), et il doit exister une fonction capable de tester une date mais je ne la connais pas.

PPS: après test, la fonction DateValue("date") renvoie une erreur si tu entres une date invalide, tu peux t'en servir

J'ai un rêve. C'est que tous les supporters de football se tiennent par la main...
...Et se jettent dans le vide
0
Reivax91 Messages postés 253 Date d'inscription mardi 30 novembre 2010 Statut Membre Dernière intervention 30 juillet 2014 28
4 janv. 2011 à 09:13
Merci a toi je vais tester
0