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 :

Votre avis sur ce module de classe perso


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 72
    Points : 61
    Points
    61
    Par défaut Votre avis sur ce module de classe perso
    bonjour

    Je vous demande votre avis sur un module de classe que j'ai créé afin de palier au probleme du format de date dans les requetes access.

    cette classe ne fonctionne que sur les machines francaises et est tres basique.

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    Option Compare Database
    Option Explicit
     
    'recupere le nom du jour de semaine en anglais
    Property Get WeekDayNameUS(ByVal JourSemaine As Long) As String
        Select Case JourSemaine
            Case vbSunday 'Dimanche
                WeekDayNameUS = "Sunday"
            Case vbMonday 'Lundi
                WeekDayNameUS = "Monday"
            Case vbTuesday 'Mardi
                WeekDayNameUS = "Tuesday"
            Case vbWednesday 'Mercredi
                WeekDayNameUS = "Wednesday"
            Case vbThursday 'Jeudi
                WeekDayNameUS = "Thursday"
            Case vbFriday 'Vendredi
                WeekDayNameUS = "Friday"
            Case vbSaturday 'Samedi
                WeekDayNameUS = "Saturday"
        End Select
    End Property
     
    'recupere le nom du mois en anglais
    Property Get MonthNameUS(ByVal Mois As Long) As String
        Select Case Mois
            Case 1
                MonthNameUS = "January"
            Case 2
                MonthNameUS = "February"
            Case 3
                MonthNameUS = "March"
            Case 4
                MonthNameUS = "April"
            Case 5
                MonthNameUS = "May"
            Case 6
                MonthNameUS = "June"
            Case 7
                MonthNameUS = "July"
            Case 8
                MonthNameUS = "August"
            Case 9
                MonthNameUS = "September"
            Case 10
                MonthNameUS = "October"
            Case 11
                MonthNameUS = "November"
            Case 12
                MonthNameUS = "December"
        End Select
    End Property
     
    'convertir la date au format francais
    Property Get CdateFR(ByVal Expression As String, Optional ByVal NamedFormat As VbDateTimeFormat = vbGeneralDate) As String
        If IsDate(Expression) Then
            Select Case NamedFormat
                Case vbGeneralDate
                    CdateFR = Day(Expression) & "/" & Month(Expression) & "/" & Year(Expression) & " " & Format(Hour(Expression) & ":" & Minute(Expression) & ":" & Second(Expression), "Hh:Nn:Ss")
                Case vbShortDate
                    CdateFR = Day(Expression) & "/" & Month(Expression) & "/" & Year(Expression)
                Case vbLongDate
                    CdateFR = WeekdayName(Weekday(Day(Expression), vbMonday), False, vbMonday) & " " & Day(Expression) & " " & MonthName(Month(Expression), False) & " " & Year(Expression)
                Case vbShortTime
                    CdateFR = Format(Hour(Expression) & ":" & Minute(Expression), "Hh:Nn")
                Case vbLongTime
                    CdateFR = Format(Hour(Expression) & ":" & Minute(Expression) & ":" & Second(Expression), "Hh:Nn:Ss")
            End Select
        End If
    End Property
     
    'convertir au format US
    Property Get CdateUS(ByVal Expression As String, Optional ByVal NamedFormat As VbDateTimeFormat = vbGeneralDate) As String
        If IsDate(Expression) Then
            Select Case NamedFormat
                Case vbGeneralDate
                    CdateUS = Month(Expression) & "/" & Day(Expression) & "/" & Year(Expression) & " " & Format(Hour(Expression) & ":" & Minute(Expression) & ":" & Second(Expression), "Hh:Nn:Ss")
                Case vbShortDate
                    CdateUS = Month(Expression) & "/" & Day(Expression) & "/" & Year(Expression)
                Case vbLongDate
                    CdateUS = WeekDayNameUS(Weekday(Day(Expression), vbSunday)) & ", " & MonthNameUS(Month(Expression)) & " " & Day(Expression) & ", " & Year(Expression)
                Case vbShortTime
                    CdateUS = Format(Hour(Expression) & ":" & Minute(Expression), "Hh:Nn")
                Case vbLongTime
                    CdateUS = Format(Hour(Expression) & ":" & Minute(Expression) & ":" & Second(Expression), "Hh:Nn:Ss")
            End Select
        End If
    End Property
     
    'donne la date du jour au format US
    Property Get DateUS()
        DateUS = Me.CdateUS(Date, vbShortDate)
    End Property
     
    Property Get NowUS()
        NowUS = Me.CdateUS(Now, vbGeneralDate)
    End Property
     
    'donne la date du jour au format FR
    Property Get DateFR()
        DateFR = Me.CdateFR(Date, vbShortDate)
    End Property
     
    Property Get NowFR()
        NowFR = Me.CdateFR(Now, vbGeneralDate)
    End Property
    A votre avis, je me suis embeté pour rien ou vous auriez procédé autrement.
    toutes vos critiques m'intéresse.

    merci de votre participation

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Hello

    Peut être plus évolutif ainsi :

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    Option Compare Database
     
     
    Option Explicit
    Enum langue
        us
        fr
    End Enum
     
    'recupere le nom du jour de semaine
    Property Get MyWeekDayName(ByVal JourSemaine As Long, pays As langue) As String
     
        Select Case pays
            Case fr 
                MyWeekDayName = Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche")(JourSemaine)
            Case us
                MyWeekDayName = Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")(JourSemaine)
        End Select
    End Property
     
     
    'recupere le nom du mois
    Property Get MyMonthName(ByVal Mois As Long, pays As langue) As String
        Select Case pays
            Case fr
                MyMonthName = Array("Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", _
                            "Aout", "Septembre", "Octobre", "Novembre", "Décembre")(Mois - 1)
            Case us
                MyMonthName = Array("January", "February", "March", "April", "May", "June", "July", _
                            "August", "September", "October", "November", "December")(Mois - 1)
        End Select
    End Property
     
    'convertir la date au format
    Property Get MyCdate(ByVal Expression As String, pays As langue, Optional ByVal NamedFormat As VbDateTimeFormat = vbGeneralDate) As String
    Dim strFormat As String
        If IsDate(Expression) Then
            Select Case pays
                Case fr
                    strFormat = "dd/mm/yy"
                Case us
                    strFormat = "mm/dd/yy"
            End Select
     
            Select Case NamedFormat
                Case vbGeneralDate
                    MyCdate = Format(Expression, strFormat & " Hh:Nn:Ss")
                Case vbShortDate
                    MyCdate = Format(Expression, strFormat)
                Case vbLongDate
                    Select Case pays
                        Case fr
                            MyCdate = MyWeekDayName(Weekday(Expression), fr) & " " & Day(Expression) & " " & MyMonthName(Month(Expression), fr) & " " & Year(Expression)
                        Case us
                            MyCdate = MyWeekDayName(Weekday(Expression), us) & ", " & MyMonthName(Month(Expression), us) & " " & Day(Expression) & ", " & Year(Expression)
                    End Select
                Case vbShortTime
                    MyCdate = Format(Expression, "Hh:Nn")
                Case vbLongTime
                    MyCdate = Format(Expression, "Hh:Nn:Ss")
            End Select
        End If
    End Property
     
     
    'donne la date du jour au format US
    Property Get myDate(pays As langue)
        myDate = Me.MyCdate(Date, pays, vbShortDate)
    End Property
     
    Property Get myNow(pays As langue)
        myNow = Me.MyCdate(Now, pays, vbGeneralDate)
    End Property
    Surtout, ça évite la dupplication des propriétés en passant le pays en paramètre

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 72
    Points : 61
    Points
    61
    Par défaut
    merci je n'avais pas pensé a l'énumération par pays

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/10/2013, 13h24
  2. Votre avis sur un diagramme de classe login/inscription
    Par Gaspoute dans le forum Diagrammes de Classes
    Réponses: 0
    Dernier message: 10/07/2012, 23h22
  3. Réponses: 4
    Dernier message: 12/09/2007, 08h14
  4. Votre avis sur un diagramme de classe
    Par bassim dans le forum Diagrammes de Classes
    Réponses: 3
    Dernier message: 12/06/2007, 02h24
  5. [java.lang.class] Votre avis sur une portion de code
    Par be_tnt dans le forum Langage
    Réponses: 3
    Dernier message: 18/10/2006, 16h55

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