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 une date jj/mm/aaAA en chiffres


Sujet :

VBA Access

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Convertir une date jj/mm/aaAA en chiffres
    Bonjour,

    J'ai une date jj/mm/aaaa stockée dans une variable Date1 et je souhaiterais que celle-ci se transforme en chiffre à l'aide d'une fonction.
    Par exemple :
    Date1 =12/02/2009
    Date2 = fonction(Date1)
    --> Date2 = 39856

    Sauriez vous la fonction à utiliser pour avoir un tel résultat??

    Merci d'avance,

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    2 questions :
    1/ pour quoi faire ?
    2/ comment obtiens-tu 39856 ?
    [Access] Les bases du débogage => ici

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Pour répondre à tes 2 questions :
    1) En fait dans un formulaire j'ai un champ texte ou je saisis une date, par exemple le 12/02/2009 et j'appuie sur un bouton, ca doit m'ouvrir un autre formulaire avec tous les enregistrements dont la date est le 12/02/2009.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Commande51_Click()
        Date_Modif = (Forms!Frm_Accueil![zt_date_modif])
        DoCmd.OpenForm "Modif_Statut_Seance", acNormal, , "[Date_Formation]=" & Date_Modif
    End Sub
    ou Date_Formation est un champ texte de mon 2ème formulaire.

    Le problème c'est que quand le 2ème formulaire s'ouvre, il ne trouve aucun enregistrement correspondant à la date là (alors qu'il y en a 2!)

    2)Pour obtenir 39856, je suis passée par excel qui m'a donné le numéro de série de la date 12/02/2009. Et par exemple, si je mets comme commande de mon bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Commande51_Click()
        Date_Modif = (Forms!Frm_Accueil![zt_date_modif])
        DoCmd.OpenForm "Modif_Statut_Seance", acNormal, , "[Date_Formation]=39856"
    End Sub
    Lorsque le 2ème formulaire s'ouvre, il trouve bien les 2 enregistrements correspondants à la date du 12/02/2009.

    Voilou, j'espère que c'est assez clair....

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour,
    je crois qu'il s'agît du nombre de jours écoulés depuis le 01/01/1900.
    Soit tu fais le calcul:
    365*(annee-1900)+int((annee - 1900)/4)+1+IndiceJourAnnee
    Soit tu convertis la date : Date2=CLng(DateModif)

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    oki merci ilank c'est tout bon!!

  6. #6
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    Ca fonctionne peut-être, mais y'a une quand même une erreur de conception.
    Sans transformer ta date, ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Commande51_Click()
    dim Date_Modif as date
        Date_Modif = (Forms!Frm_Accueil![zt_date_modif])
        DoCmd.OpenForm "Modif_Statut_Seance", acNormal, , "[Date_Formation]=#" & format(Date_Modif, "MM/DD/YYYY") & "#"
    End Sub
    Ca sera quand même plus propre.
    [Access] Les bases du débogage => ici

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 549
    Points : 556
    Points
    556
    Par défaut
    C'est clair que la solution de modifier en nombre est vraiment pas propre
    Comme dis kloon, c'est un problème de format de date

    Je m'explique, tu recherches 12/02/2008 dans ta table qui en contient
    Le problème, dans la requêtes, access doit la transformer en 02/12/2008..


    A mon avis, sans rien changer, si tu recherches 02/12/2008, il t'en sortira comme par hasard 2 qui seront en fait les 12/02/2008

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par ilank Voir le message
    Bonjour,
    je crois qu'il s'agît du nombre de jours écoulés depuis le 01/01/1900.
    Soit tu fais le calcul:
    365*(annee-1900)+int((annee - 1900)/4)+1+IndiceJourAnnee
    Soit tu convertis la date : Date2=CLng(DateModif)

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

Discussions similaires

  1. [AC-2003] Convertir Une date en chiffre
    Par taz devil dans le forum VBA Access
    Réponses: 3
    Dernier message: 09/07/2015, 08h49
  2. Réponses: 18
    Dernier message: 07/02/2008, 15h04
  3. [Vba] Convertir une date en chiffre
    Par lapa-jh dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/06/2007, 18h07
  4. Convertir une date au format excel en datetime SQL server
    Par ALLB dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 20/07/2004, 11h28
  5. Convertir une date en type string
    Par ziboux dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 29/10/2003, 10h52

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