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

IHM Discussion :

Inversion mois jour


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 126
    Points : 179
    Points
    179
    Par défaut Inversion mois jour
    Bonjour,

    J'ai un petit problème d'inversion jour/mois dans mes champs date...

    Dans ma base de données, j'ai un champ date abrégé masque de saisie 00/00/0000;0

    Dans un formulaire, j'ai un champ de saisie en date abrégé
    Lorsque j'affiche dans mon champs de saisie la date de la BDD, il y a une inversion entre le jour et le mois.

    Par exemple, si dans ma BDD il y a 12/10/2009, mon champs de saisie aura 10/12/2009

    Comment dois-je m'y prendre pour ne plus avoir ce problème?
    Merci d'avance

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    Alors là j'ai une réponse bête mais quand même je la propose t'as essayé avec ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    format(MaDate, "dd/mm/yyyy")
    Que ce soit au niveau du code ou dans le source de contrôle de ton composant

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 126
    Points : 179
    Points
    179
    Par défaut
    Je ne comprend pas pourquoi ça me fait sa, le champs de saisie et le champs de la bdd sont exactement pareil...

    J'y avais pensé, mais je me disait que sa faisait bidouillage :p
    On vas tenter quand même, merci de ta réponse!

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Points : 28
    Points
    28
    Par défaut
    Bon alors le pourquoi du comment je ne le connait pas exactement un utilisateur expérimenté pourra le confirmer sa en fait que 4 mois que je développe en access mais il me semble qu'as la mémorisation des données et à l'exploitation tu les auras au format saxon si je ne dits pas de bêtise et à l'affichage de ta table tu l'as en format latin.

    Pour ma part, à chaque fois que j'utilise des dates je fait un format() à chaque fois comme cela je n'ai pas de mauvaise surprise

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 126
    Points : 179
    Points
    179
    Par défaut
    Nan mais la je comprend plus....
    Je ait un champ date de début et un champs date de fin, il y en a un qui marche bien, et l'autre ou ça me le met en inversé... Je vais faire ta méthode, je vais pas trop trop chercher non plus :p
    ca marche avec ta technique, c'est le principal
    merci

    EDIT : arf, j'ai parlé trop vite :



    1 / Je rentre les valeurs dans SAI_DateDeb et SAI_DateFin
    2/ Je lance mon insert into
    3/ Sa ne se met pas comme il faut dans ma BDD

    1/ Je met les bonnes dates dans la BDD
    2/ Sa ne se met pas comme il faut non plus dans les SAI

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Points : 28
    Points
    28
    Par défaut
    Bon je réserve la fiabilité de ma réponse mais enlève les '#' qui encadrent ton format() lorsque tu veux affiché tes dates.

    après si tu peux laisser le bout de code que tu utilise sa pourrait être plus simple pour comprendre comment tu développe

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 126
    Points : 179
    Points
    179
    Par défaut
    Lorsque j'enlève les #, cela me met dans la base une date en 30/12/1899 quelque soit la date rentré, et lorsque je clic dessus, cela m'affiche 00:31 (l'heure)...




    voilà le code de mon bouton (j'ai mi qu'une seul fois format() pour voir si sa marchait

    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
     
    Private Sub BTN_AjoutGroupe_Click()
     
    ' Code pour Requete SQL
    Dim RSQL As String
    Set db = CurrentDb
     
    ' Requete d'ajout de formation
      RSQL = "INSERT INTO GROUPE (NomGroupe, DescriptionGroupe, DateDeb, DateFin,Id_Formation) VALUES ('" & SAI_NomGroupe.Value & "', '" & SAI_DescGroupe.Value & "', #" & Format(SAI_DateDeb.Value, "dd/mm/yyyy") & "#,  #" & SAI_DateFin.Value & "#, " & LD_For.Column(0, LD_For.ItemsSelected) & ")"
     
    ' Execution de la requete
      db.Execute (RSQL)
     
     
    End Sub

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Bonjour,

    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CDate(Format(SAI_DateDeb.Value, "dd/mm/yyyy"))
    avec les '#'

    Je pense que la fonction Format renvoi les choses avec le format de texte. C'est peut-être ça...

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Points : 28
    Points
    28
    Par défaut
    Bon alors résumons

    tu as une textbox qui contient des valeurs de type string que tu veut stocker dans un champ au format date. donc là il faut déjà faire un premier transtypage mais la base va le stocker sous forme mm/dd/yyyy. dans t'as requete tu auras une valeur #SAI_DateDeb.value#

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RSQL = "INSERT INTO GROUPE (NomGroupe, DescriptionGroupe, DateDeb, DateFin,Id_Formation) VALUES ('" & SAI_NomGroupe.Value & "', '" & SAI_DescGroupe.Value & "', #" & SAI_DateDeb.Value & "#,  #" & SAI_DateFin.Value & "#, " & LD_For.Column(0, LD_For.ItemsSelected) & ")"
    Ensuite tu veut récupérer cette valeur et l'avoir sous forme dd/mm/yyyy là tu doit faire un format (ladate,"dd/mm/yyyy")
    par contre je ne sait pas comment tu fait ton affichage si c'est par le code je te conseil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Date_Deb = format(rst!DateDeb,"dd/mm/yyyy")
    sinon en mode graphique dans ta source controle tu indique juste
    format(rst!DateDeb,"dd/mm/yyyy")

    voilà je pense que comme ceci tu devrait y arriver mais par contre j'ai rien tester

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 126
    Points : 179
    Points
    179
    Par défaut
    Le vais essayé les solutions que vous m'avez proposé, et je vous tiens au courant

    tu as une textbox qui contient des valeurs de type string que tu veut stocker dans un champ au format date
    Ma textbox est au format "date, abrégé" également.

    Mon affichage ce fait via code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SAI_DateDeb.Value = rs!DateDeb
    C'est peut-être le .value à la fin... je vais regarder sa aussi
    En tout cas merci Marc_27 et Eskehnach !

    -------

    EDIT :

    @Marc_27 :
    Ta méthode me renvoi la même chose:

    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
     
    Private Sub BTN_AjoutGroupe_Click()
     
    ' Code pour Requete SQL
    Dim RSQL As String
    Set db = CurrentDb
     
    ' Requete d'ajout de formation
      RSQL = "INSERT INTO GROUPE (NomGroupe, DescriptionGroupe, DateDeb, DateFin,Id_Formation) VALUES ('" & SAI_NomGroupe.Value & "', '" & SAI_DescGroupe.Value & "', #" & CDate(Format(SAI_DateDeb.Value, "dd/mm/yyyy")) & "#,  #" & SAI_DateFin.Value & "#, " & LD_For.Column(0, LD_For.ItemsSelected) & ")"
     
    ' Execution de la requete
      db.Execute (RSQL)
     
     
    End Sub
    Inversion 10/12 et 12/10.

    ------

    @Eskehnach :
    Si je comprend bien, dans la base, cela sera par exemple
    DateDeb = 10/12
    Date fin = 12/10
    Et je fais afficher avec une inversion mois/jour ?
    Parce que je viens de remarquer que lorsque c'est du style 31/05/2009, cela me le rentre bien dans la base, et il s'affiche correctement aussi

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Points : 28
    Points
    28
    Par défaut
    Mon affichage ce fait via code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SAI_DateDeb.Value = rs!DateDeb
    est-ce que tu fait le format() lors de ton affichage

    bizarre que 31/05/2009 soit bien mémorisé dans ta base et que 10/12/2009 ne le soit pas franchement je ne voit pas d'où sa peut venir

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 126
    Points : 179
    Points
    179
    Par défaut
    J'ai aussi essayé le format dans l'affichage, mais cela me donne la meme chose je comprend pas du tout là... et cela m'embête réellement, je dois rendre cette base le 15...

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 126
    Points : 179
    Points
    179
    Par défaut
    Bon, j'ai des nouvelles...

    Si je met :



    Dans cet exemple, je tape les valeurs dans les txtbox, et avec un bouton, je les insère dans ma BDD.
    On voit bien sur la photo que si c'est une date >12, cela me le rentre bien dans la base... ( il n'y a pas de mois après decembre :p )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ' Requete d'ajout de formation
    MsgBox ("#" & SAI_DateDeb.Value & "#")
    MsgBox ("#" & SAI_DateFin.Value & "#")
    Les msgbox donne le bon résultat... ( #+ le contenu de SAI + #)

    Ma requête SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     RSQL = "INSERT INTO GROUPE (NomGroupe, DescriptionGroupe, DateDeb, DateFin,Id_Formation) VALUES ('" & SAI_NomGroupe.Value & "', '" & SAI_DescGroupe.Value & "', #" & SAI_DateDeb.Value & "#,  #" & SAI_DateFin.Value & "#, " & LD_For.Column(0, LD_For.ItemsSelected) & ")"
    J'ai essayé avec CDATE, FORMAT, en enlevant les #, sans le .value, avec le .value,...

    SVP, personne n'a une idée?

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 126
    Points : 179
    Points
    179
    Par défaut
    Bon, j'ai trouvé une solution partielle... Maintenant je souhaiterais la mettre dans une fonction, mais je sais pas ou mettre le code...

    je fais ceci :
    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
     
    Private Sub BTN_AjoutGroupe_Click()
     
    ' Code pour Requete SQL
    Dim rsql As String
    Set db = CurrentDb
     
    'Analyse de la date : correction du bug qui inverse jour et mois si le jour est <=12
      Dim Jour As String
      Dim Mois As String
      Dim Annee As String
      Dim Var As String
     
      If Day(SAI_DateDeb.Value) <= 12 Then
         Jour = Day(SAI_DateDeb.Value)
         Mois = Month(SAI_DateDeb.Value)
         Annee = Year(SAI_DateDeb.Value)
         Var = Mois & "/" & Jour & "/" & Annee
         rsql = "INSERT INTO GROUPE (NomGroupe, DescriptionGroupe, DateDeb, DateFin,Id_Formation) VALUES ('" & SAI_NomGroupe.Value & "', '" & SAI_DescGroupe.Value & "', #" & Var & "#,  #" & SAI_DateFin.Value & "#, " & LD_For.Column(0, LD_For.ItemsSelected) & ")"
     
      Else
      rsql = "INSERT INTO GROUPE (NomGroupe, DescriptionGroupe, DateDeb, DateFin,Id_Formation) VALUES ('" & SAI_NomGroupe.Value & "', '" & SAI_DescGroupe.Value & "', #" & CDate(Format(SAI_DateDeb.Value, "dd/mm/yyyy")) & "#,  #" & SAI_DateFin.Value & "#, " & LD_For.Column(0, LD_For.ItemsSelected) & ")"
      End If
     
    ' Execution de la requete
      db.Execute (rsql)
    Donc en gros, si le jour est inférieur ou égal à 12, je l'inverse dans l'envoi, ce qui l'inverse dans la base, et donc le met bien... C'est vraiment bizarre, mais sa marche...

Discussions similaires

  1. Inversion mois/jour lors d'une importation d'un CSV
    Par miliev83 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/07/2013, 12h20
  2. Inversion mois/jour lors d'une importation d'un CSV
    Par mamax29 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/06/2010, 14h43
  3. Problème format date - SimpleDateFormat inversion mois/jour
    Par juanqui dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 07/02/2007, 14h37
  4. [Requete] Inversion mois/jours lors de resultat nul
    Par Jeremie_Vi dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 06/07/2006, 12h47
  5. [ACCESS] probleme Inversion Mois/Jours
    Par fredrider dans le forum Access
    Réponses: 10
    Dernier message: 26/06/2006, 17h37

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