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 :

Date & recordset:affichée US, lue FR


Sujet :

VBA Access

  1. #1
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut Date & recordset:affichée US, lue FR
    Bonjour,

    Je me galère grave sur un projet qui gère des dates, et je hais les gens qui ont inventé un multiple format americain/francais.

    J'ai une date qui arrive dans une classe au format US (un debug.print me donne 05/01/2007 pour un 1er Mai 2007)

    Si je lui demande le Month il me donne 01.
    Si je la passe en format francais, le debug.print me donnant 01/05/2007, il me donne toujours 01 pour le month.

    Alors je me dit, je vais lui demandé le jour. Mais si j'ai une date qui dépasse 12 pour le jour, il me prendra alors le vrai jour....

    Une idée?

    question supplémentaires pour les gentils visiteurs:
    J'ai une fonction init dans ma classe qui fait un select sur une valeur d'une table. Lorsque je passe en parametre la valeur pour une date, la date est stockée au format FR. c'est normal?

    merci

  2. #2
    Membre confirmé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 096
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 096
    Points : 633
    Points
    633
    Par défaut
    tu es sur que tu n'as pas inversé les pays ?
    05/01/2007 = date fr
    01/05/2007 = date Us ?

  3. #3
    Membre averti Avatar de dr_feelgood
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 292
    Points : 373
    Points
    373
    Par défaut
    un élément de réponse la sur la FAQ

    Sur un de mes projets j'avais du développer une fonction qui me permettait d'obtenir la date en format US

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function DateUs(X As Variant)
    If Not IsDate(X) Then Exit Function
    DateUs = "#" & Month(X) & "/" & Day(X) & "/" & Year(X) & "#"
    End Function
    que j'appelais dans un selection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rselection = "(date between " & DateUs(Me.debut) & " and " & DateUs(Me.fin) & " )"
    Je pense qu'il y a d'autres post sur ce problème de date format francais et format américain..

  4. #4
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    J'ai également une fonction qui me permet de formatter au format US.

    Voila exactement ce que je n'arrive pas à comprendre et qui cause tous mes problèmes.


    Il m'affiche le resultat d'une date sous forme francaise dans le debug, mais il la lis comme un format américain...

    il va m'afficher 01/05/2007 pour le 1er mai
    Mais si je lui demande le mois, il me donne 5.
    Et si je le format au passage dans le parametre en format US, il affichera 05/01/2007 mais lme donnera 1 pour le mois, donc je ne peux plus travailler dessus.

    Voici ma fonction init:

    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
    Public Sub init(idPrime As Integer)
     
        Dim Db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
        Dim sSQL As String
        Dim madate As Date
        ' Ouverture de la base de données
        Set Db = CurrentDb
     
        'requete
        sSQL = "SELECT * FROM prime_client WHERE idPrime = " & idPrime & "; "
        Debug.Print "Requete = " & sSQL
     
        ' Ouverture du recordset
        Set rst = Db.OpenRecordset(sSQL, dbOpenDynaset)
     
        'Enregistre Valeur en paramatre Format$(Now, JetDateTimeFmt)
        madate = rst![datePrimeDebut]
        Debug.Print "datePrimeDebut : " & madate
        Debug.Print "Mois : " & Month(madate)
     
       'Fermeture
        rst.Close
        Db.Close
        Set rst = Nothing
        Set Db = Nothing
     
    End Sub


    Voila exactement le débug, je n'y comprends rien, je viens d'y passer 2 jours. Si une lanterne venait à mon secours, ce serait fortement apprécié.
    J'ai isolé le pb, sans comprendre ce que me fais ACCESS.

    J'ai bien compris que sur une requete on doit lui balancé du format US, mais la c'est à la lecture du recordset que ca foire, il me sors du FR, mais le lis comme du US

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SANS DATEUS FONCTION; 
    datePrimeDebut : 01/05/2007
    Mois : 5
    Requete = AVEC DATE US FONCTION; 
    datePrimeDebut : 05/01/2007
    Mois : 1

  5. #5
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    je suis un gros débile.

    En fait je traitais les date avec la fonction dateus en les envoyant US a partir de mes fonctions dans mes formulaires.....

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/08/2007, 10h35
  2. La date ne s'affiche pas sous le bon format
    Par Subkill dans le forum IHM
    Réponses: 4
    Dernier message: 21/03/2007, 18h06
  3. [Dates] Impossibilité d'afficher la résultat
    Par pony99 dans le forum Langage
    Réponses: 30
    Dernier message: 21/12/2006, 10h02
  4. [Dates] ne plus afficher les erreurs
    Par Empty_body dans le forum Langage
    Réponses: 2
    Dernier message: 15/11/2006, 16h50
  5. [Dates] pb pour afficher éléments par éléments
    Par linouline dans le forum Langage
    Réponses: 9
    Dernier message: 04/06/2006, 14h55

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