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

Requêtes et SQL. Discussion :

Afficher une date au format français dans une Texte_box [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut Afficher une date au format français dans une Texte_box
    Bonjour,

    J'ai un formulaire ou j'ai inseré :
    - 2 Texte_box date
    Dans ces 2 Texte_box, j'inscris une datedebut et une datefin en format francais jj/mm/aaaa hh:mm
    - une liste_box qui normalement doit m'afficher un tableau avec des données

    Le soucis, c'est que, lorsque j'affiche la datedebut et la datefin en format francais, ma liste_box reste vide.
    Et lorsque j'affiche la datedebut et la datefin en format anglais ( mm/jj/aaaa hh:mm), les données s'affichent dans ma liste box.

    Comment faire en sorte, que ma liste_box m'affiche les données avec une datedebut et une datefin en format francais jj/mm/aaaa hh:mm

    Merci d'avance de votre aide

    Voici mon code vba

    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
    67
    68
    69
    70
    Option Compare Database
     
    Dim Vdatedebut As Date
    Dim Vdatefin As Date
     
    Dim txt_ChaineSQL As String
    Dim strSQLSELECT As String
    Dim strSQLFROM As String
    Dim strSQLWHERE As String
    Dim strSQLGROUPBY As String
    Dim strSQLHAVING As String
    Dim strSQLORDERBY As String
     
     
     
    Private Sub Cmd_vrac_Click()
     
     
     
    Vdatedebut = CDate(Texte_datedebut)
    Vdatefin = CDate(Texte_DateFin)
     
     
    MsgBox (Vdatedebut)
     
    MsgBox (Vdatefin)
     
     
    With Me.Listevrac
    .RowSourceType = "Table/Requête"
    .ColumnCount = 5 ' nombre de colonne que dois avoir le formulaire
    .BoundColumn = 1 ' la colonne de reference
     
     
    strSQLSELECT = "SELECT dbo_vwParts.DisplayName AS Antennes, Count(dbo_vwItemEventHistory.ItemID) AS [Nbre colis injectés]"
     
    strSQLFROM = "FROM dbo_vwItemEventHistory INNER JOIN dbo_vwParts ON dbo_vwItemEventHistory.PartID = dbo_vwParts.ID"
     
    strSQLWHERE = "WHERE(((dbo_vwItemEventHistory.EventTime)>=#" & Format(Vdatedebut, "dd/mm/yyyy HH:mm:ss") & "# And (dbo_vwItemEventHistory.EventTime) <=#" & Format(Vdatefin, "dd/mm/yyyy HH:mm:ss") & "#))"
     
    strSQLGROUPBY = "GROUP BY dbo_vwParts.DisplayName"
     
    strSQLHAVING = "HAVING (((dbo_vwParts.DisplayName) Like 'injection*'))"
     
    strSQLORDERBY = "ORDER BY dbo_vwParts.DisplayName;"
     
     
     
     
     
    txt_ChaineSQL = strSQLSELECT & vbCrLf & _
                    strSQLFROM & vbCrLf & _
                    strSQLWHERE & vbCrLf & _
                    strSQLGROUPBY & vbCrLf & _
                    strSQLHAVING & vbCrLf & _
                    strSQLORDERBY
     
      MsgBox txt_ChaineSQL
     
    Debug.Print txt_ChaineSQL
     
     
     
     
    .RowSource = txt_ChaineSQL
    .Requery
     
    End With
     
    End Sub

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonsoir,

    Sous SQL et VBA, les dates sont au format US, donc ton critère strSQLWHERE renvoie des résultats faussés.
    Utilises plutôt Format(Vdatedebut, "mm/dd/yyyy HH:mm:ss") et Format(Vdatefin, "mm/dd/yyyy HH:mm:ss") comme argument.

    Bonne continuation
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Salut madefemere
    J'ai essayé la solution
    Format(Vdatedebut, "mm/dd/yyyy HH:mm:ss") et Format(Vdatefin, "mm/dd/yyyy HH:mm:ss")
    Elle ne ne me convient pas ..car la date, referencée dans les texte_box, doit etre rentrée, en format francais dd/mm/yyyy.

    Sur le net, j'ai trouvée une fonction qui resoud le probléme .
    elle transorme une date francaise jj/mm/yyyy inscrit dans le texte_box and date US mm/mm/yyyy en sql.
    Mais pour mon cas, elle est incomplète ..je souhaiterais inséré les minutes en format mm:mm.
    Exemple 09/04/2014 08:1 alors que je voudrais 09/04/2014 08:15

    Voici le code :
    Dans le code ci dessous, la fonction me renvoie seulement la date avec l'heure et seulement le première chiffre de la minute alors que je voudrais les deux chiffre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function DateAuFormatUS(ByVal DateFrancaise As Date) As String
    DateAuFormatUS = "#" & Month(DateFrancaise) & "/" & Day(DateFrancaise) _
    & "/" & Year(DateFrancaise) & "/" & Hour(DateFrancaise) & ":" & Minute(DateFrancaise) & "#"
    End Function

  4. #4
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    J'ai trouvé, rien de compliqué d'ailleurs...lol

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function DateAuFormatUS(ByVal DateFrancaise As Date) As String
    DateAuFormatUS = "#" & Month(DateFrancaise) & "/" & Day(DateFrancaise) _
    & "/" & Year(DateFrancaise) & " " & Hour(DateFrancaise) & ":" & Minute(DateFrancaise) & ":" & Minute(DateFrancaise) & "#"
    End Function

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

Discussions similaires

  1. [MySQL] Enregistrer une date au format francais dans une BDD SQL
    Par papayou94 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/08/2011, 14h53
  2. Réponses: 4
    Dernier message: 05/05/2011, 13h46
  3. Réponses: 6
    Dernier message: 24/07/2010, 13h47
  4. [MySQL] comment rechercher une date au format datetime avec une date au format date
    Par Menoly dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/06/2007, 10h14
  5. Insérer une date au format français dans un champ
    Par EpOnYmE187 dans le forum Installation
    Réponses: 2
    Dernier message: 14/06/2005, 12h09

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