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 :

Conversion d'une date du calendrier républicaine en date du calendrier grégorien [AC-2010]


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Conversion d'une date du calendrier républicaine en date du calendrier grégorien
    Bonjour à tous,

    Je recherche le code VBA qui me permettrait de convertir une date écrite dans le calendrier républicain en une date du calendrier grégorien.

    Exemple : 12 messidor An IX en 1 juillet 1801

    J'essaie d'élaborer une petite application en Access 2010 pour saisir des données généalogiques.

    Il existe des convertisseurs de dates, mais je souhaiterais que la conversion se fasse au moment de la saisie.

    Un grand merci d'avance pour les renseignements que vous pourriez me fournir.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Bonjour,

    Tu as quelque chose sur les calendriers ici :

    http://mhubiche.ftp-developpez.com/v...ions_dates.pdf

    Pour la mise en place il te faut traiter le problème sur le AfterUpdate.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonsoir Loufab et un grand merci pour ta réponse.

    Je viens de lire avec attention le document que tu m'as indiqué : cela ne répond pas à mon problème.
    Apparemment, le problème semble difficile à résoudre par des fonctions.

    Après réflexion, je vais traiter le problème autrement : je vais élaborer une table avec 2 champs, l'un au format du calendrier grégorien, l'autre au format du calendrier républicain (cela demandera un peu de temps, mais il existe des convertisseurs pour cela).

    Dans la petite application que je souhaite créer, quand je voudrais traduire une date d'un calendrier dans l'autre, il suffira d'utiliser DLookUp () pour obtenir la réponse.

    Merci encore à toi, bien amicalement,

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Salut,

    Tu peux t'en sortir avec des fonctions VBA à mettre dans 1 module :

    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
    Function bissextile(Annee As Integer) As Boolean
    bissextile = ((Annee - 3) Mod 4) = 0
     
    End Function
     
    Public Function ConversionDateGregorienRepublicain(dt1 As Date) As String
    Dim nj As Long
    Dim nm As Long
    Dim na As Integer
     
    nj = DateDiff("d", #9/22/1792#, dt1)
    na = 1
     
    Do
     
       If bissextile(na) Then
          If nj < 366 Then
             Exit Do
          End If
       Else
          If nj < 365 Then
             Exit Do
          End If
       End If
     
       If bissextile(na) Then
          nj = nj - 366
       Else
          nj = nj - 365
       End If
     
       na = na + 1
     
    Loop
     
    nm = (nj \ 30) + 1
    nj = (nj Mod 30) + 1
     
    ConversionDateGregorienRepublicain = (nj & "/" & nm & "/" & na)
     
    End Function
     
    Public Function ConversionDateRepublicainGregorien(dt1 As String) As Date
    Dim nj As Long
    Dim nm As Long
    Dim na As Integer
     
    na = (Year(dt1) - 2000)
    nm = Month(dt1)
    nj = Day(dt1) + (nm - 1) * 30
     
    Do Until (na = 1)
     
       na = na - 1
     
       If bissextile(na) Then
          nj = nj + 366
       Else
          nj = nj + 365
       End If
     
    Loop
     
    ConversionDateRepublicainGregorien = DateAdd("d", nj - 1, #9/22/1792#)
     
    End Function
    Ici 4/13/1 désigne le 4ème jour complémentaire de l'An I

    4/1/1 désigne le 4ème jours du mois Vendémiaire de l'en I.

    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonsoir User,

    J'ai pris connaissance de ta réponse hier soir, mais j'ai voulu prendre le temps de bien comprendre ta proposition : je suis un Pappy bidouilleur, il me faut un certain temps !!!.

    Effectivement, c'est beaucoup plus "élégant" que ce que je m'étais résolu à faire pour obtenir le même résultat.

    Un très grand merci à toi, même s'il me faudra peaufiner un peu pour obtenir ce que je souhaite exactement (le nom du mois en républicain par exemple : un Select Case résoudra ce petit problème).

    Je suis très heureux de voir qu'un professionnel de l'informatique accepte de renseigner le petit amateur que je suis.

    Merci encore et à une prochaine fois peut-être.

    Bien amicalement...

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

Discussions similaires

  1. [AC-2010] Problème de conversion d'une chaine de texte en format date.
    Par Axe_Débutant dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 02/01/2015, 03h29
  2. Conversion date calendrier républicain
    Par p1xl_01 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 12/07/2011, 09h52
  3. Conversion d'une date du calendrier grégorien
    Par Infosams dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 30/12/2010, 02h11
  4. [date] conversion d'une date et compatibilité access
    Par WriteLN dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 10/01/2005, 14h03

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