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

 .NET Discussion :

Base Access et valeur de datetime picker


Sujet :

.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de -Fly-
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 178
    Par défaut Base Access et valeur de datetime picker
    Bonjour,

    J'ai un formulaire qui contient un datetime picker et je récupère sa valeur de type date.

    Le problème est que, dans ma base de donnée Acces mes valeur date sont en DateTime.

    Quand je récupère une valeur de type JJ/MM/YYYY la valeur rentrée dans la base est 00:01:33 ou 00:02:45 par exemple.

    J'aimerais donc savoir si il existe un moyen de remédier à cela c'est à dire de transformer mon champ JJ/MM/YYYY en type datetime pour qu'il soit correctement inséré dans la base de donnée Access

    Merci de votre aide , Bonne soirée

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    J'ai pas tout compris à ton histoire... le contrôle DateTimePicker renvoie bien une valeur de type DateTime (d'ailleurs il n'y a pas de type Date tout court en .NET ; le type Date de VB.NET est en fait un alias de System.DateTime)

    D'autre part, comment fais-tu l'insertion dans la base ? Montre ton code

  3. #3
    Membre très actif Avatar de -Fly-
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 178
    Par défaut
    Dans un premier temps je récupere les valeurs de date time picker

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    NomProjet = TxbNom.Text
    DateFinProjet = DtpDateFin.Text
     DateDebutProjet = DtpDateDebut.Text
    Ensuite je crée un objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UnProjet = New Projet(NomProjet, DateDebutProjet, DateFinProjet)
    J'appelle ensuite une fonction d'une autre classe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ClientEnCours.AjouterProjet(UnProjet)

    Ensuite voici mon code d'insertion dans la classe ou j'ajoute un projet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Try
    ChaineInsertionProjet = "INSERT INTO Projet(nom,datedebut,datefin) values('"
    ChaineInsertionProjet = ChaineInsertionProjet & UnProjet.GetNomProjet() & "'," & UnProjet.GetDateDebutProjet() & "," & UnProjet.GetDateFinProjet()")"
     
    CommandInsertionProjet = New OleDb.OleDbCommand(ChaineInsertionProjet, ClientFormulaire.maConnexion)
      CommandInsertionProjet.ExecuteNonQuery()
            MsgBox("Le projet à bien été ajouter")
    Catch ex As Exception
              MsgBox(ex.Message)
     End Try

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Le problème, c'est que dès le début tu prends la valeur textuelle de la date sélectionnée. Cette valeur (de type String) est dans un format qui dépend de la culture (~ langue) courante. Cette représentation est inexploitable en code, il faut garder la valeur sous forme d'une date.

    Il faut donc déclarer DateFinProjet comme étant de type DateTime, et lui affecter la propriété Value du DateTimePicker.

    Ensuite, au niveau de ta requête, il ne faut surtout pas mettre la date directement dans le texte de la requête; elle va être formatée selon les règles de la culture courante, qui ne correspondent pas forcément à celle qui sont utilisées par Access pour interpréter une date. Il faut donc utiliser des requêtes paramétrées, comme expliqué ici.

  5. #5
    Membre très actif Avatar de -Fly-
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 178
    Par défaut
    Merci je vais essayer de cette manière

  6. #6
    Membre très actif Avatar de -Fly-
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 178
    Par défaut
    C'est deja mieux la date a l'air d'être au bon format, cependant j'ai encore un message d'erreur

    Erreur de syntaxe (opérateur absent) dans l'expression "14/06/2012 10:25:08"
    J'ai aussi affiché la requête avant qu'elle soit executée la voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Projet(nom,datedebut,datefin)
    values('Mon projet','En cours',14/06/2012 10:25:08,15/06/2012 10:25:08)
    Merci encore, bonne journée

Discussions similaires

  1. Définir la valeur de l'auto increment sur une base Access
    Par CardinalJo dans le forum Bases de données
    Réponses: 3
    Dernier message: 19/07/2013, 22h24
  2. DateTime et base Access
    Par yoann7 dans le forum Windows Forms
    Réponses: 16
    Dernier message: 12/02/2010, 09h34
  3. Réponses: 6
    Dernier message: 15/09/2006, 20h51
  4. valeur case à cocher et base access
    Par cari dans le forum VBA Access
    Réponses: 34
    Dernier message: 08/02/2006, 17h09
  5. [VB6] [ADO] Like sur base Access
    Par dlpxlid dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 24/01/2003, 11h03

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