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

ASP Discussion :

Problème Date access/asp


Sujet :

ASP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 34
    Points : 19
    Points
    19
    Par défaut Problème Date access/asp
    Bonjour à tous,

    Je vous présente mon problème qui est vraiment chiant et qui est relaté sur internet mais je n'ai pas trouvé mon bonheur.

    Je sauvegarde ma date dans ma table au format JJ/MM/AAAA.
    Je fais ensuite une requête pour afficher mes différentes dates et là, si le JJ <13 alors il me met les dates au format MM/JJ/AAAA. Problème vraiment chiant.

    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
    <%
    'requête pour la création dans la base de données
    SQL="SELECT * FROM memo"
    Set RS = server.createobject("ADODB.Recordset")
    RS.Open SQL,Conn , 3, 3
     
    If Not Rs.EOF Then
    while not RS.eof
       ' affiche le champ
    		Response.Write("<ul>")
    		Response.Write(RS("date_butoire"))
    		Response.Write("<li>")
    		Response.Write(RS("auteur"))
    		Response.Write("</li>")
    		Response.Write("<li>")
    		Response.Write(RS("titre"))
    		Response.Write("</li>")
    		Response.Write("<li>")
    		Response.Write(RS("texte"))
    		Response.Write("</li>")
    		Response.Write("</ul>")
       ' fiche suivante
       RS.MOVENEXT
    wend
    end if
     
    conn.close : Set conn=nothing
    %>
    Comment je peux contourner se problème ?

    Merci pour votre aide précieuse

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Les dates passent au format US dans les requêtes SQL.
    Il faut utiliser le LCID

    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Immobilis
    Les dates passent au format US dans les requêtes SQL.
    Il faut utiliser le LCID

    A+
    Merci de m'avoir accordé de ton temps.

    J'ai essayé cette méthode et rien y fait. Je vais montrer des morceau de mon code afin de mieux vous mettre dedans.

    Formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form name=myform method="post" onSubmit="return confirm('Confirmation de la création de la fiche mémo ?');" action="creer_memo.asp">
    	<p><label>Auteur (Nom/Prénom) : <input type="text" name="auteur" size=20 /></label></p>
    	<p><label>Titre : <input type="text" name="titre" size=20 /></label></p>
      <p><label>Date butoire : <input readonly type="text" name="date1" size="10"><a HREF="javascript:Calendrier(document.myform.img1,document.myform.date1)"><img src=calendrier.gif width=34 height=21 align=top ID=img1 border=0 style=position:relative></a></label></p>
      <p><label>Description :<br /><textarea name="description" cols="40" rows="7" tabindex="80" onKeyDown='limiteur_creer();' onKeyUp='limiteur_creer();'></textarea></br>Il vous reste <input readonly type=text name='indicateur' size='1' maxlength=3 value='255'> caractères.</label></p>
      <p><input type="submit" value="Enregistrer ma fiche mémo" /></p>
    </form>
    Page de traitement du formulaire :
    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
    <!-- #include file="_connexion.asp"-->
    <%
    'requête pour la création dans la base de données 
    SQL="SELECT * FROM memo"
    Set RS = server.createobject("ADODB.Recordset")
    RS.Open SQL,Conn , 3, 3
     
    RS.addnew
    RS("auteur")=Request.form("auteur")
    RS("titre")=Request.form("titre")
    RS("date_butoire")= Request.form("date1")
    RS("texte")=Request.form("description")
    RS.update
     
    %>
    Page qui mes enregistrements :
    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
    <%
    'requête pour la création dans la base de données
    SQL="SELECT * FROM memo"
    Set RS = server.createobject("ADODB.Recordset")
    RS.Open SQL,Conn , 3, 3
     
    If Not Rs.EOF Then
    while not RS.eof
       ' affiche le champ
    		Response.Write("<ul>")
    		Response.Write(RS("date_butoire"))
    		Response.Write("<li>")
    		Response.Write(RS("auteur"))
    		Response.Write("</li>")
    		Response.Write("<li>")
    		Response.Write(RS("titre"))
    		Response.Write("</li>")
    		Response.Write("<li>")
    		Response.Write(RS("texte"))
    		Response.Write("</li>")
    		Response.Write("</ul>")
       ' fiche suivante
       RS.MOVENEXT
    wend
    end if
     
    conn.close : Set conn=nothing
    %>
    Comment je pourrais procéder simplement pour me retrouver avec la date : JJ/MM/AAAA.

    Merci pour vos réponses

  4. #4
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Citation Envoyé par buzz!
    J'ai essayé cette méthode et rien y fait.
    Peux-tu me montrer comment tu as fait?
    A+

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Immobilis
    Peux-tu me montrer comment tu as fait?
    A+
    Alors j'ai mis dans tous mes pages ce code, tout en haut avant la balise <html>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <% Session.LCID = 1036%>
    Merci de m'avoir répondu

  6. #6
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Effectivement... Rien ne semble anormal.
    Je n'ai pas de réponse empirique sur ce point. Pour ma part, j'ai transformé toutes mes dates au format numérique double. Entre SQL qui passe les dates au format US dans les requêtes, les utilisateurs qui tapent n'importe quoi et les navigateurs pas toujours français, les options régionales du serveur c'est la solution la plus souple.

    Es-ce que toutes les dates dans ta base sont bonnes? Si tu met dans ton form 01/02/2006 c'est bien le premier février que est enregistré?

    A+

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Immobilis
    Es-ce que toutes les dates dans ta base sont bonnes? Si tu met dans ton form 01/02/2006 c'est bien le premier février que est enregistré?
    Justement, en revenant ce matin tous frais, j'ai vu qu'en faite c'est access qui fout le bordel. Il enregistre bien par exemple 23/03/2006 mais pour 11/02/2006 => il me l'enregistre 02/11/2006. A mon avis, je devrais plus me concentrer sur access pour mon problème, il doit y avoir un moyen de forcer access à enregistrer en français.

    Ta solution est t'elle pratique pour faire du tri ?

  8. #8
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Citation Envoyé par buzz!
    Justement, en revenant ce matin tous frais, j'ai vu qu'en faite c'est access qui fout le bordel.
    Pas tout à fait, comme je te l'ai dit la date passe au format US dans les requetes SQL. Tu peux forcer l'insertion au format FR en morcelant ta date.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RS("date_butoire")= day(Request.form("date1")) & "/" & month(Request.form("date1")) & "/" & year(Request.form("date1"))
    Mais il faut être certain que Request.form("date1") est bien une date au format FR.
    Citation Envoyé par buzz!
    Ta solution est t'elle pratique pour faire du tri ?
    Ben oui, puisque ce ne sont que des nombres. Aujourd'hui, selon le standard Microsoft, nous sommes le 38936 jour depuis le 31 décembre 1899.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Immobilis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RS("date_butoire")= day(Request.form("date1")) & "/" & month(Request.form("date1")) & "/" & year(Request.form("date1"))
    Mais il faut être certain que Request.form("date1") est bien une date au format FR.
    J'ai essayé mais celà ne marche pas, je me retrouve toujours avec ma date au format anglais. Et je suis sur que le formatde mon form est en fr car l'utilisateur choisit la date sur un calendrier.
    Mon code de la page de traitement :
    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
    <!-- #include file="_connexion.asp"-->
    <%
    'requête pour la création dans la base de données 
    SQL="SELECT * FROM memo"
    Set RS = server.createobject("ADODB.Recordset")
    RS.Open SQL,Conn , 3, 3
     
    RS.addnew
    RS("auteur")=Request.form("auteur")
    RS("titre")=Request.form("titre")
    'RS("date_butoire")= Request.form("date1")
    RS("date_butoire")= day(Request.form("date1")) & "/" & month(Request.form("date1")) & "/" & year(Request.form("date1"))
    RS("texte")=Request.form("description")
    RS.update
     
    conn.close : Set conn=nothing
    'redirection
    Response.Redirect("http://gtprfsn2:2006/memo.asp")
    %>
    Citation Envoyé par Immobilis
    Ben oui, puisque ce ne sont que des nombres. Aujourd'hui, selon le standard Microsoft, nous sommes le 38936 jour depuis le 31 décembre 1899.
    C'est marrant l'histoire du 38936 jour mais pas con.

  10. #10
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Que disent les options régionales de ta machine?

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Immobilis
    Que disent les options régionales de ta machine?
    C'est réglé sur france, j'ai même rajouter la ligne sur toute mes pages
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <% Session.LCID = 1036%>
    mais ça change rien.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Immobilis
    Je n'ai pas de réponse empirique sur ce point. Pour ma part, j'ai transformé toutes mes dates au format numérique double. Entre SQL qui passe les dates au format US dans les requêtes, les utilisateurs qui tapent n'importe quoi et les navigateurs pas toujours français, les options régionales du serveur c'est la solution la plus souple.
    Pourrait tu m'expliquer brièvement comment tu procède pour un tri décroissant par exemple sur la date mais avec ta méthode (format numérique double) et après promis je te laisse tranquille.

    Merci mille fois de m'avoir répondu

  13. #13
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    C'est simple
    Hier MADATE = 38936
    Aujourd'hui MADATE = 38937
    Demain MADATE = 38938
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM MATABLE ORDER BY MADATE ASC;
    A+

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Immobilis
    C'est simple
    Hier MADATE = 38936
    Aujourd'hui MADATE = 38937
    Demain MADATE = 38938
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM MATABLE ORDER BY MADATE ASC;
    A+
    Pour convertir ma date de mon form en réel double, j'ai utilisé ta fonction que tu avais donné "cdbl(madate)" mais ça ne me convertit pas du tout. Je l'ai mis au niveau de ma page de traitement du formulaire. vraiment désolé de t'embêter encore mais ça me tarde d'appuyer sur la balise résolu.

  15. #15
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Ah, ma faute, je crois qu'on s'est mal compris.

    Je pensais que tu voulais savoir comment faire qd la date est au format double dans la base.

    J'essaye de voir ça ce soir.

    A+

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Faute partagé, moi aussi en me relisant je me suis aperçu que j'avais mal formulé ma question

    Merci

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    J'ai finalement trouvé une solution, que tu m'avais donné Immobilis mais que j'avais du mal utilisé

    Je mets le code de la page de traitement :

    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
    <!-- #include file="_connexion.asp"-->
     
    <%
    new_date=month(Request.form("date1"))&"/"&day(Request.form("date1"))&"/"&year(Request.form("date1"))
    'requête pour la création dans la base de données 
    SQL="SELECT * FROM memo"
    Set RS = server.createobject("ADODB.Recordset")
    RS.Open SQL,Conn , 3, 3
     
    RS.addnew
    RS("auteur")=Request.form("auteur")
    RS("titre")=Request.form("titre")
    RS("date_butoire")= new_date
    RS("texte")=Request.form("description")
    RS.update
     
    conn.close : Set conn=nothing
    'redirection
    Response.Redirect("http://gtprfsn2:2006/memo.asp")
    %>
    Merci Immobilis pour ton aide précieuse

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

Discussions similaires

  1. Problème Mailing-List ASP avec CDO et access
    Par francois_pignon dans le forum ASP
    Réponses: 3
    Dernier message: 04/06/2006, 22h31
  2. inserer une date en ASP dans une base ACCESS
    Par link39001 dans le forum ASP
    Réponses: 7
    Dernier message: 17/05/2006, 14h13
  3. [VBA] Problème de date Access
    Par Yanmeunier dans le forum VBA Access
    Réponses: 5
    Dernier message: 26/04/2006, 11h57
  4. [Access 2003] - Problème date dans requête
    Par Leesox dans le forum Access
    Réponses: 11
    Dernier message: 14/10/2005, 09h51
  5. Problèmes de dates ACCESS/MySQL
    Par TomPad dans le forum Installation
    Réponses: 1
    Dernier message: 28/06/2005, 11h05

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