IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

test sur saisie de date dans un textbox?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    développeur VB
    Inscrit en
    Avril 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : développeur VB

    Informations forums :
    Inscription : Avril 2011
    Messages : 33
    Par défaut test sur saisie de date dans un textbox?
    Bonjour Chers amis.

    je cherche un code source en vb (VS2012) qui contrôle lors du saisie de la date dans un textbox. C.a.d lorsque je tape une date quelconque
    (exp: 33/14/20013), le code m'indique dans un MsgBox que le jour ou le mois sont incorrecte. et que si j'entre pour le mois "02" (qui est février) le nombre de jour saisie ne doit pas dépasser le 28 ou 29.
    autre exemple: si je tape 31/06 il n'indique que le moi Juin compte 30 jours. J’espère que ma demande est lisible.

    Merci comme même pour tous le monde.

  2. #2
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : autre
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Par défaut
    DateTime.TryParse

    Pourquoi ne pas utiliser un DateTimePicker au lieu d'un TextBox ?

  3. #3
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Citation Envoyé par meziantou Voir le message
    DateTime.TryParse

    Pourquoi ne pas utiliser un DateTimePicker au lieu d'un TextBox ?


    Sinon tu peux tenter avec des tests via Regex.
    Ou alors utiliser une maskedTextBox au format Date et tester des substrings à l'intérieur ou tester le total avec un Ctype(taDate, Date).

    Il y a plein de solutions !

  4. #4
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Septembre 2005
    Messages : 28
    Par défaut
    Bonjour,

    Et comme ceci, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Private Sub TextBox1_LostFocus(sender As Object, e As System.EventArgs) Handles TextBox1.LostFocus
            If Not IsDate(TextBox1.Text) Then
                Select Case Val(Microsoft.VisualBasic.Mid(TextBox1.Text, 4, 2))
                    Case 1, 3, 5, 7, 8, 10, 12
                        If Val(Microsoft.VisualBasic.Left(TextBox1.Text, 2)) Then
                            MsgBox("Le mois " & Val(Microsoft.VisualBasic.Mid(TextBox1.Text, 4, 2)) & " ne compte pas plus de 31 jours")
                        End If
                    Case 4, 6, 9, 11
                        If Val(Microsoft.VisualBasic.Left(TextBox1.Text, 2)) Then
                            MsgBox("Le mois " & Val(Microsoft.VisualBasic.Mid(TextBox1.Text, 4, 2)) & " ne compte pas plus de 30 jours")
                        End If
                    Case 2
                        If (Val(Microsoft.VisualBasic.Right(TextBox1.Text, 2)) / 4) = 0 Then
                            REM année bissextile
                            MsgBox("Le mois " & Val(Microsoft.VisualBasic.Mid(TextBox1.Text, 4, 2)) & " ne compte pas plus de 29 jours")
                        Else
                            MsgBox("Le mois " & Val(Microsoft.VisualBasic.Mid(TextBox1.Text, 4, 2)) & " ne compte pas plus de 28 jours")
                        End If
                    Case Else
                        MsgBox("L'année ne compte pas plus de 12 mois")
                End Select
            End If
        End Sub

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Pourquoi utiliser un textbox plutôt qu'un datetimepicker ?

    Bonne question, néanmoins si on désire apporter une attention particulière à la vitesse et l'efficacité de la saisie dans le formulaire au clavier (Un formulaire ou on prend le temps de configurer correctement les TabStops et les Tabindex...), je pense qu'un opérateur de saisie ira plus rapidement sur un textbox qu'un datetimepicker. Par contre un maskedtextbox est à mon avis la meilleure solution dans ce cas.

    Sinon la solution de Meziantou est la bonne.

    A utiliser dans l'évenement validating du textbox. Si la conversion est un échec alors il faut changer la propriété e.Cancel à true pour empêcher le changement du contrôle au focus et indiquer l'erreur (Msgbox, icone d'erreur, changement de couleur du contrôle ou du text, etc...).

  6. #6
    Membre averti
    Homme Profil pro
    développeur VB
    Inscrit en
    Avril 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : développeur VB

    Informations forums :
    Inscription : Avril 2011
    Messages : 33
    Par défaut probleme resolut
    La réponse de tovin m'a beaucoup aider.
    car en plus je dois mettre dans mon prg une condition lors de l'ajout d'un nouveau fonctionnaire, par sa date de naissance je calcule sa date de retraite. et sa date de retraite ne doit pas être a la date du système (c.a.d il ne doit pas être en retraite avant même sa recrutement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [A-03] Test sur des dates dans des textBox
    Par moilou2 dans le forum IHM
    Réponses: 3
    Dernier message: 27/10/2008, 13h39
  2. Saisie d'une date dans une textbox
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 23/11/2007, 12h51
  3. controle sur un champ date dans un formulaire
    Par fraizas dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/03/2007, 13h17
  4. [Javascript] appui sur la touche entrée dans une textbox
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 02/01/2006, 11h19
  5. Réponses: 3
    Dernier message: 19/03/2003, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo