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 :

Comment inserer une date en ASP dans Access?


Sujet :

ASP

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Comment inserer une date en ASP dans Access?
    Bonjour, j'expose mon problème :
    Je précise je suis débutant en Asp,

    Sur une page HTML je demande a l'utilisateur de saisir des dates, pour être plus précis une date de départ et une date d'arrivée. Ces dernières sont saisies dans des champs textes, je récupère ces dernieres sur une seconde page et là se pose le problème, lorsque j'essaie de faire Insert Into, cela ne fonctionne pas:

    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%
    SQL = "INSERT INTO Date(IdIdentite,DateDepart,DateRetour) values ("&idrequerant&","&datedepart&","&dateretour&")"
    %>

    J'ai beau chercher un peu partout, je ne trouve pas de solutions.

    Merci

    [EDIT]
    Utilise la balise code (#) la prochaine fois.
    [/EDIT]

  2. #2
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    La syntaxe en sql pour les dates est Attention au format : mois-jour-année, il peut être utile de prévoir une fonction de conversion

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut je ne saisi pas
    merci pour ta réponse, bien que je rajoute le #, ma valeur date ne s'inscrit toujours pas. Est ce que je dois transformer ma variable avant?
    ou bien le Insert Into ne fonctionne pas pour les dates?

    De plus dans le champs de saisie sur la page précedente je ne peux pas empecher l utilisateur de taper la date de la manière dont il veut, c'est à dire utiliser des / ou des - ou bien rien du tout. Je bien dans la mouise là.

    je suis preneur d'idées et de solutions.

    Merci par avance.

  4. #4
    Membre expérimenté
    Avatar de kaiser59
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Points : 1 350
    Points
    1 350
    Par défaut
    Salut,

    pour insérer une date tu n'a pas besoin, ou alors c'est très rare puisse que je ne suis pas encore tombé sur ce cas peut-etre quand il s'agit d'inserer une date avec la variable date me souviens plus , de mettre les # dans l'insertion de la date.

    J'utilise ceci qui fonctionne très bien :
    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <%
    Sql= "Insert into AGENDA (DateAgenda, Evenement) Values ('"&request.form("date_a")&"','"&request.form("ev")&"')"
    rs.open Sql, conn
    %>


    De plus dans le champs de saisie sur la page précédente je ne peux pas empêcher l utilisateur de taper la date de la manière dont il veut, c'est à dire utiliser des / ou des - ou bien rien du tout. Je bien dans la mouise là.
    Je comprends pas trop la, tu peux imposer à l'utilisateur, qui me semble plus approprié vue que tu définie le format de la date dans Access, de saisir une date au format jj/mm/aaaa ou jj-mm-aaaa il te suffit de faire un contrôle du champ ou en asp ou en javascript


    ++

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    Personnellement quand j'insere des dates dans Access je fais de cette maniere :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sql="INSERT INTO table (Champ_Date) VALUES ('" & CDate(VariableDate) & "')"
     
    Conn.execute(sql)
    Je n'ai jamais eu de problemes en utilisant cette syntaxe, mais il faut bien sur que les Type de tes champs Access soient Date/Time pour que ca fonctionne.


    En ce qui concerne la saisie des dates par les utilisateurs, il te suffit de faire un petit controle sur la page qui recoit le formulaire afin de remplacer les "-" par des "/" , ou le contraire selon ce que tu veux. Sinon tu peux toujours faire ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form action=page.asp>
    <input type=text maxlength="2" size="2" name="Mois" value="mm">
    &nbsp;/&nbsp;
    <input type=text maxlength="2" size="2" name="Jour" value="jj">
    &nbsp;/&nbsp;
    <input type=text maxlength="4" size="4" name="Annee" value="aa">
    </form>
    Bien sur, il te faudra quand meme faire du traitement et une verification dans ta page qui recoit le formulaire afin d'etre sur que ce sont des nombres qui sont passés et qu'ils sont valides pour une date, mais au moins tu es certain que tu vas pouvoir rassembler ta date dans l'ordre voulu avec le separateur voulu.

  6. #6
    Membre expérimenté
    Avatar de kaiser59
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Points : 1 350
    Points
    1 350
    Par défaut
    Citation Envoyé par denis907
    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%
    SQL = "INSERT INTO Date(IdIdentite,DateDepart,DateRetour) values ("&idrequerant&","&datedepart&","&dateretour&")"
    %>
    En modifiant ton message j'ai vue que tu n'as pas utiliser les (') entre tes dates or si tu n'as pas converti les request, de base quelque soit les valeurs d'un request.form (ou .querystring) la valeur est de type texte de se fait ta syntaxe sera :

    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%
    SQL = "INSERT INTO Date(IdIdentite,DateDepart,DateRetour) values ("&idrequerant&",'"&datedepart&"','"&dateretour&"')"
    %>

    PS : Il me semble que même avec un Cdate cela reste avec des (') entre les valeurs. A vérifier

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    Je confirme, avec CDate il faut entourer les valeurs avec des (') . Ou en tout cas, moi j'en met et je n'ai pas de problemes.

  8. #8
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut je ne comprends pas

    D'abord merci à tous de vos réponses,
    Malgré cela je ne comprends pas pourquoi cela ne fonctionne pas


    pourtant je fais lsimplement e test suivant en tapant une date correcte du type jj/mm/aaaa
    que je récupere a l'aide d'un request.form(variabledate), ensuite je fais le '"&CDate(variabledate)&"', mais ça me plante une erreur.

    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
     
    <%
    datedepart = request.form("datedepart")
    dateretour = request.form("dateretour")
    idrequerant = request.form("idrequerant")
     
    'response.write(datedepart)
    'response.write(dateretour)
    'response.write(idrequerant)
     
    'response.end
     
    DSN_base="DRIVER={Microsoft Access Driver (*.mdb)};" &"DBQ=" & Server.MapPath("../..") &"/Database/base.mdb;"
    Set Connexion = Server.CreateObject("ADODB.Connection")
    Connexion.Open DSN_BASE
    SQL = " INSERT INTO Date (IdIdentite,DateDepart,DateRetour) values ('"&idrequerant&"' , '"& CDate(datedepart) &"' , '"& CDate(dateretour) &"') "
    set rs = connexion.execute(SQL)
    connexion.close
    set rs = nothing
    set connexion = nothing
    %>
    Désolé de vous ennuyer je débute juste. merci encore

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    essais en tapant une date du type mm/jj/aaaa a la place d'une date au format jj/mm/aaaa.

    Je viens de faire un petit test rapide et CDate ne reconnait pas les dates si le premier elements de la date est un jour (j'imagine que si tu lui met une date au format jj/mm/aaaa avec un jour plus petit que 12 ca devrait marcher aussi)

    J'ai fait mon test avec la date : 31/05/2007 et ca n'a pas fonctionner, mais ensuite avec la date 02/05/2007 il n'y avait pas de probleme.

    Verifie ca juste pour voir et dit ce que ca donne.

    Si tu as d'autres probleme ou si ton probleme persiste tu peux aussi essayer de nous donner le message d'erreur exacte que ca te renvoit.

    En tout cas, je vais revenir voir ca demain parce que la moi je quitte le bureau.

  10. #10
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    juste pour marquer le coup, c'est surper ce forum et d'avoir des gens réactifs.

    Pour revenir à mon problème j'ai testé ce que me dit gbouchat, sans succes.

    l'erreur :Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    /otv/pages/bis/ajoutdate.asp, line 18

    Je dois avoir un problème dans ma table je suppose, table faite avec Access 2000, et la date configurée en : date/abregé et masque de saisie : 00/00/0000;0;_

    Je vais continuer à tester. merci et à plus tard

  11. #11
    Membre expérimenté
    Avatar de kaiser59
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Points : 1 350
    Points
    1 350
    Par défaut
    Pourquoi mets-tu un masque de saisie ?
    Personnellement je n'en mets pas et je n'ai pas de problème, j'ai juste le format Date/abrégé et c'est tout

    Au fait, fait un response.write de ta requête sql et récupère la pour l'exécuter dans Access, la requête fonctionne-t-elle ??

    De plus est-ce que ton champ "IdIdentite" est de type numerique ? Si c'est le cas enlève les ('), j'ai l'impression que IdIdentite et NuméroAuto si c'est le cas enlève le, inutile de le mettre

    Par ailleurs, il me semble de mémoire, que faire CDate(variable) dans une requête induis en erreur je me trompe peut-être.

    Essaye ceci :
    Code asp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <%
    var1=CDate(Request.form("mavariable1")
    var2=CDate(Request.form("mavariable2")
     
    'Dans le cas où IdIdentite n''est pas un champ NuméroAuto
    Sql="Insert into Date (IdIdentite, variable1, variable2) values ("& request.form("id") &",'"& var1 &"','"& var2 &"')"
     
    'Cas où IdIdentite est de type NuméroAuto
    Sql="Insert into Date (variable1, variable2) values ('"& var1 &"','"& var2 &"')"
    %>

  12. #12
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut j'en perds mon latin
    Heu, je tourne en rond,
    je fais ce simple test, une table access avec une date abregé et sans masque de saisie
    J'ai toujour mon plantage
    là je ne peux pas faire plus simple pourtant.
    J'utilise IE7, poserait il problème?

    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
     
    <%
     
    datedepart = "02/02/2007"
     
    'response.write(datedepart)
    'response.end
     
    DSN_base="DRIVER={Microsoft Access Driver (*.mdb)};" &"DBQ=" & Server.MapPath("../..") &"/base/date.mdb;"
    Set Connexion = Server.CreateObject("ADODB.Connection")
    Connexion.Open DSN_BASE
     
    SQL = " insert into Table1(date) values ('"&Cdate(datedepart)&"') "
    'response.write(sql)
    'response.end
     
    'set rs = connexion.execute(SQL)
    connexion.execute(SQL)
    connexion.close
    set rs = nothing
    set connexion = nothing
     
    %>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    <%
    'par rapport à ci-dessus je dois supprimer le : '
    SQL = " insert into Table1(date) values ("&Cdate(datedepart)&") "
     
    'sinon j'obtiens une date du type : 'jj/mm/aaaa'
    'au lieu de : jj/mm/aaaa
    %>
    P.S : j'ai testé ta methode également Kaiser59, mais rien y fait, j'ai toujours l'echec de l'execution de la requete.

    Merci de votre patience, je pense passer à côté de quelquechose mais quoi?

    @++

  13. #13
    Membre expérimenté
    Avatar de kaiser59
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 264
    Points : 1 350
    Points
    1 350
    Par défaut
    Citation Envoyé par denis907
    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
     
    <%
     
    datedepart = "02/02/2007"
     
    'response.write(datedepart)
    'response.end
     
    DSN_base="DRIVER={Microsoft Access Driver (*.mdb)};" &"DBQ=" & Server.MapPath("../..") &"/base/date.mdb;"
    Set Connexion = Server.CreateObject("ADODB.Connection")
    Connexion.Open DSN_BASE
     
    SQL = " insert into Table1(date) values ('"&Cdate(datedepart)&"') "
    'response.write(sql)
    'response.end
     
    'set rs = connexion.execute(SQL)
    connexion.execute(SQL)
    connexion.close
    set rs = nothing
    set connexion = nothing
     
    %>
    Il me semble que tu ne peux pas avoir CDate et les (') pas besoin de dire qu'il s'agit d'une date si c'est écrit au format date
    Access comprendra très bien la valeur envoyer si elle est juste bien écrit c'est à dire jj/mm/aaaa du coup sa te donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%
    SQL = " insert into Table1(date) values ('"& datedepart &"') "
    %>
    Par ailleurs, date est une variable par défaut de asp. Je sais que mal écrit dans une requête cela peut faire planter. Je doute qu'écrit donc entre les (") cela ne fonctionne pas mais bon donne un nom différent au champ on sait jamais.

  14. #14
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut ça y est, et merci à tous
    Bien vu Kaiser 59,

    effectivement le nom de mes champs faisiaient planter le tout, il devait interpreter le terme datedepart et pareil pour l'autre.

    donc j'ai fait le test sur ma table d'essai, je vais l'essayer sur ma table de travail en renommant mes champs.

    Merci encore de votre patience et certainement à bientôt.

    P.S : Je confirme, j'ai renommé ma table et mes champs et plus de problèmes.

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

Discussions similaires

  1. Comment sauvegarder une capture d'écran dans ACCESS ?
    Par GunnyMiK dans le forum VBA Access
    Réponses: 5
    Dernier message: 17/04/2008, 18h55
  2. [MCD] Comment créer une relation d'héritage dans Access
    Par Marounda dans le forum Schéma
    Réponses: 4
    Dernier message: 11/01/2008, 16h28
  3. Réponses: 2
    Dernier message: 31/05/2006, 09h54
  4. Comment insérer une image du Jpicedt dans un document TeX ?
    Par Paulinho dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 5
    Dernier message: 17/05/2006, 22h48
  5. inserer une date en ASP dans une base ACCESS
    Par link39001 dans le forum ASP
    Réponses: 7
    Dernier message: 17/05/2006, 13h13

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