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 champ au format date + traitement


Sujet :

VBA Access

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 54
    Points
    54
    Par défaut conversion champ au format date + traitement
    Bonjour

    J'ai des champs au format texte de la forme "2009/03/15". Quelles fonctions utiliser pour le transformer en type date et en extraire le numéro de la semaine et le numéro du mois ?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 274
    Points
    34 274
    Par défaut
    Bonjour,
    les fonctions à étudier sont :
    IsDate()
    CDate()
    Month()
    PartDate()

    et un lien dans la pour aider un peu pour la dernière fonction
    http://access.developpez.com/faq/?page=dates#InfoDate
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 54
    Points
    54
    Par défaut
    Finalement c'est un peu plus compliqué : le champ de départ est au format "decimal" (il comprend des valeurs du style "20090315" pour le 15 mars 2009) faut-il le convertir au format string puis date ou y-a-t il une fonction pour le faire directement ?

    Merci

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 274
    Points
    34 274
    Par défaut
    en l'occurence tu dois passer par
    - soit un bout de code
    - soit par des manipulations dans ta requête

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function RetourneDate(a As Double) As Date
    RetourneDate = Dateserial(cint(left(str(a),4)),cint(mid(str(a),5,2)),cint(right(str(a),2)))
    End Function
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 54
    Points
    54
    Par défaut
    merci beaucoup

    Je vois le principe, mais il y a une petite erreur : pour "20090314", çà me renvoie 14/06/207 !!
    Je suis en train d'étudier çà mais comme tu es sûrement plus rapide que moi...

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Points : 54
    Points
    54
    Par défaut
    Finalement, non...
    Il y avait juste un petit décalage dans le Left et le Mid
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function RetourneDate(a As Double) As Date
        RetourneDate = DateSerial(CInt(Left(Str(a), 5)), CInt(Mid(Str(a), 6, 2)), CInt(Right(Str(a), 2)))
    End Function
    et çà marche parfaitement

    Merci

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/10/2010, 15h59
  2. Réponses: 7
    Dernier message: 16/03/2009, 09h23
  3. Comment importer champs au format date dans visio
    Par supdeco1 dans le forum Visio
    Réponses: 5
    Dernier message: 10/06/2008, 15h24
  4. Champ texte format Date, abrégé vide
    Par Junior_jef dans le forum IHM
    Réponses: 10
    Dernier message: 03/07/2007, 13h25
  5. [MySQL] Tri sur champ au format date - uniquement mois/année
    Par skippy86 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/01/2007, 11h27

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