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

Access Discussion :

Validation champs heure dans un formulaire [AC-2003]


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Validation champs heure dans un formulaire
    Bonjour tout le monde,

    J'ai un champs au format heure (short time) : 00:00

    Dans un formulaire servant à la saisie de ce champs, je voudrais créer un code VBA qui puisse valider le champs sans être obligé de remplir les minutes. En gros, s'il faut rentrer 1 heure (01:00), j'aimerais pouvoir encoder 01 ou 1, puis tabulation, sans que le message d'erreur d'Access apparaisse... (erreur de format)

    Merci par avance pour votre aide.

    Elokapo

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Je ne suis pas arrivé à gérer cela avec les événements "Avant MAJ" ou "Sur Erreur".
    L'erreur est affichée avec l'événement "Avant MAJ".
    Dans l'événement "Sur Erreur" on n'est pas autorisé à modifier ni la valeur, ni le texte du contrôle.

    Le seul moyen que j'ai trouvé c'est d'intercepter les touches TAB et ENTREE au niveau de la zone de texte.
    Il faut donc utiliser une de ces deux touches pour quitter le contrôle.
    Si le quitte à la souris on a l'erreur qui te gêne.
    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
    24
    25
    26
    27
    28
    29
    Private Sub NomControle_KeyDown(KeyCode As Integer, Shift As Integer)
    Dim sCtlText As String
     
    On Error GoTo ErrH
     
    If KeyCode = 9 Or KeyCode = 13 Then
       sCtlText = Me.dtHeure.Text
       ' Si commence par #: ou ##: ajouter 00
       If (sCtlText Like "#:") Or (sCtlText Like "##:") Then
          Me.dtHeure.Text = sCtlText & "00"
       ' Si commence par # ou ## ajouter :00
       ElseIf (sCtlText Like "#") Or (sCtlText Like "##") Then
          Me.dtHeure.Text = sCtlText & ":00"
       End If
    End If
     
    SubExit:
    Exit Sub
     
    ErrH:
    Select Case Err.Number
        Case 2113 ' Valeur non valide pour ce champ.
             ' On ignore l'erreur et on laisse Access afficher le message
             Resume SubExit
    End Select
     
    MsgBox "Erreur No." & Err.Number & " : " & Err.Description, vbExclamation
    Resume SubExit
    End Sub
    A+

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Parfait !
    Excellent ! C'est exactement le résultat que je recherchais ! Merci beaucoup.

    J'ai simplement modifié le code en sachant que mon masque de saisie m'impose d'avoir une valeur par défaut quand le champs est vide. Dans mon cas, j'ai des underscores : __

    J'ai donc ceci quand le champs est vide: __:__

    Il suffit donc d'ajouter les underscores dans le code et de récupérer la donnée avec la fonction left.

    Encore merci !

    Elokapo

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

Discussions similaires

  1. [2.x] Problème validation champs entity dans formulaire service
    Par Naezys dans le forum Symfony
    Réponses: 2
    Dernier message: 09/02/2015, 13h55
  2. Réponses: 1
    Dernier message: 04/06/2013, 14h50
  3. [OL-2003] Champs heure dans un formulaire
    Par elokapo dans le forum Outlook
    Réponses: 2
    Dernier message: 06/05/2013, 13h45
  4. Réponses: 1
    Dernier message: 17/03/2010, 16h41
  5. Problème heure dans un formulaire
    Par Faro dans le forum Access
    Réponses: 7
    Dernier message: 15/09/2005, 11h11

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