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

VBA Access Discussion :

Convertir nombre en date [AC-2013]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 126
    Par défaut Convertir nombre en date
    Salut, J'ai un formulaire dans lequel il y a deux zone de texte, "txtDate" dans lequel je dois convertir en date, je mets les codes que j'ai actuellement.
    1- Les fonctions :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Sub SelectionTexte(txt As Access.TextBox)
        txt.SelStart = 0
        txt.SelLength = Len(txt.Text)
    End Sub
     
    ' Teste si année est bissextile
    Public Function IsLeapYear(ByVal lngYear As Long) As Boolean
        IsLeapYear = ((lngYear Mod 4 = 0) And (lngYear Mod 100 = 0)) _
            Or (lngYear Mod 400 = 0)
    End Function
     
    ' Transforme 25092014 en 25/09/2014
     
    Function TransformerEnDate(ByVal strDateDepart As String) As Date
     
    Dim strJour As String
    Dim strMois As String
    Dim strAnnee As String
     
    If Len(strDateDepart) = 8 Then
        Exit Function
    End If
     
    ' Extraire les 3 parties de la date
    strJour = Left(strDateDepart, 2)
    strMois = Mid(strDateDepart, 3, 2)
    strAnnee = Right(strDateDepart, 5)
     
    Select Case strMois
        Case "01", "03", "05", "07", "08", "10", "12"
            If strJour > "31" Then
                Exit Function
            End If
        Case "04", "06", "09", "11"
            If strJour > "30" Then
                Exit Function
            End If
        Case "02"
            If strJour > "29" Then
                Exit Function
            Else
                If (strJour = "29") And (IsLeapYear(strAnnee) = False) Then
                    Exit Function
                End If
     
            End If
        Case Else
            Exit Function
    End Select
     
    TransformerEnDate = DateSerial(strAnnee, strMois, strJour)
     
    End Function
    2- Code sur la zone de texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub txtDate_Exit(Cancel As Integer)
    If txtDate = vbNullString Then Exit Sub
     
    If TransformerEnDate(txtDate) Then
        txtDate = TransformerEnDate(txtDate)
    Else
        MsgBox "Non valide"
        SelectionTexte Me.txtDate
        Cancel = True
    End If
    End Sub
    Qand je mets la date Par exemple : 25022013 le format doit être 25/02/2013 mais il me sort le message non valide.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 62
    Par défaut Convertir nombre en date
    Bonjour kabamel,

    Je pense que le test n'est pas le bon, il faut <> au lieu de =:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Len(strDateDepart) = 8 Then
        Exit Function
    End If
    de plus le code ...,5 devrait être ,4 (prendre que 4 chiffres):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strAnnee = Right(strDateDepart, 5)
    A+
    Riton

  3. #3
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 962
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 962
    Par défaut
    Bonsoir kabamel,
    Pourrais-tu nous dire la raison pour laquelle tu n'utilises pas un champ de type date ?

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

Discussions similaires

  1. Convertir nombre de jours en date.
    Par Chrysostome dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/01/2016, 18h35
  2. Convertir Nombre(date) en string
    Par ced0802 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/12/2015, 14h03
  3. convertir texte en nombre ou date
    Par 20100. dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/04/2008, 08h12
  4. Convertir un nombre en date
    Par Skalp dans le forum Framework .NET
    Réponses: 2
    Dernier message: 27/08/2007, 13h23
  5. Pb convertir nombre en date
    Par aurelie83 dans le forum SQL
    Réponses: 11
    Dernier message: 02/08/2007, 17h56

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