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 :

La date n'est pas enregistrée comme il faut. [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 132
    Points : 43
    Points
    43
    Par défaut La date n'est pas enregistrée comme il faut.
    Bonjour

    J'ai une table "Client" avec ses champs suivants :Client(matricule,nom,prenom,date_naissance) dans une base de données MS Access 2003.

    J'ai exécuté avec succès la requete d'insertion suivant:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into Client values(1,'nom1','prenom1',#01/02/2010#)

    le souci est j'ai trouvé que la date enregistrée est : 02/01/2010 à la place de 01/02/2010,sachant que le format de ce champ est :"Date, abrégé".

    comment faire?

    merci

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    Dans SQL et dans VBA les dates sont au format américain mois/jours/année.
    Il faut donc respecter cette convention.

    Pour le 1er février 2010, le SQL est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into Client values(1,'nom1','prenom1',#02/01/2010#)
    A+

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 132
    Points : 43
    Points
    43
    Par défaut
    et qui ce je dois faire,parce que j'utilise un contrôle vb.net qui permet de sélection d'une date en format français.

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Il faut que tu convertisse la date provenant de ton contrôle en texte au format mm/dd/yyyy.

    Je ne connais pas très bien vb.net mais ça doit être la méthode ToString

    A+

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 132
    Points : 43
    Points
    43
    Par défaut
    ok

    j'ai aissayé de reconstruire la requête précédente avec une manière,et alors j'ai mis '01/02/2010' à la place de #01/02/2010# et ca marche,mais je ne suis pas sûr si cette requête est valise ou pas,qui ce que vous pensez?

  6. #6
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonsoir,

    je me suis trompé hier en écrivant ma réponse.
    Le format est mm/dd/yyyy.
    Le caractère # à gauche et à droite de la date littérale indique à Sql que c'est une date.

    En mettant '01/02/2010' dans le Sql, tu assignes une valeur de type texte dans un champ de type Date/Time.
    Le moteur de base de données va tenter une conversion en s'appuyant sur les paramètres régionaux de Windows.
    Ça marchera uniquement si dans les paramètres régionnaux la date est au format jour/mois/année.

    En Vba on écrirait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strSql = "insert into Client values(1,'nom1','prenom1',"
    strSql = strSql & "#" & Format(MonCtl.Value, "mm/dd/yyyy") & "#)"
    En .net le format est "MM/dd/yyyy" car mm=minutes (voir ici).

    A+

  7. #7
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 132
    Points : 43
    Points
    43
    Par défaut
    tout à fait,tu as raison,j'ai essayé de tester avec l'instruction vb.net suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     "#" & Format(Me.DTPDate.Value, "MM/dd/yyyy") & "#"
    et ca marche très bien,meci beaucoup.

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

Discussions similaires

  1. Netstat n'est pas reconnu comme commande interne !
    Par youcef81 dans le forum Administration
    Réponses: 1
    Dernier message: 06/09/2006, 12h15
  2. Réponses: 5
    Dernier message: 17/08/2006, 17h32
  3. [UBUNTU] Le live cd n'est pas reconnu comme un cédérom bootable
    Par Jihed Amine Maaref dans le forum Ubuntu
    Réponses: 4
    Dernier message: 12/07/2006, 14h37
  4. Erreur : La classe n'est pas enregistrée
    Par Le Pharaon dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 11/08/2005, 12h04
  5. Réponses: 8
    Dernier message: 04/08/2004, 14h17

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