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

VB.NET Discussion :

VB.NET, Access, Query et Date


Sujet :

VB.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 21
    Par défaut VB.NET, Access, Query et Date
    Bonjour,

    Je développe sous VB.NET une interface pour accéder/stocker des données dans une base Access. En particulier, mes enregistrements sont datés et j'ai créé dans mon interface, en utilisant des DateTimePickers, la possibilité de choisir une date de début et une date de fin pour filtrer les résultats.

    J'ai donc créé une query dans mon bddDataSet, du type :
    SELECT Actions, Analyse, Tel_Date, FROM Telegrammes WHERE (Tel_Date >= ?) AND (Tel_Date <= ?)
    Lorsque j'appelle ma query depuis mon code, je lui passe les paramètres date de fin et date de début sous forme de variables de type Date. Par ailleurs, le champs de la base Access est au format date/heure.

    Malheureusement, cela ne fonctionne pas, bien qu'ayant des enregistrements dans ma base, la query ne retourne aucun résultat. A noter que j'ai des résultats lorsque je supprime la clause "WHERE" et que des tests similaires effectués pour des filtrages sur des champs "String" fonctionnent.

    Merci de votre aide,

    Fred

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2010
    Messages : 277
    Par défaut
    Bonjour

    Je veux bien essayer de te repondre meme si d'autre sont bien meilleur que moi.
    Mais pourrais tu poster ton code

  3. #3
    Membre actif Avatar de Abdellah2010
    Homme Profil pro
    Future développeur
    Inscrit en
    Novembre 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Future développeur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2010
    Messages : 55
    Par défaut proposition..
    Si j'ai bien compris, votre problème vient du fait que lorsque vous enregistrez les données via votre interface, vous utilisez le type Date alors ils s'enregistrent comme dateTime (c'est à dire une partie du date et une une autre Time) exp:
    DateEng.Txt='12/10/2011 15:30:55', et une fois vous voulez faire un filtre il se base sur la partie Date et time aussi. Pour résoudre votre problème utilisez DateEng.txt=Mondate.ToshortDateString et utilisez le format Date abrégée pour la propriété du colonne concernée dans votre table Access (ce choix n'est pas obligatoire mais c'est préférable cas où vous n'avez pas besoin du partie Time pour vos enregistrements).

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    il nous faudrait en effet les quelques lignes de code incriminées

    vérifie aussi que tu n'as pas inversé les valeurs de paramètres (les parameters doivent être ajoutés dans l'ordre où ils figurent dans la requête)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre expérimenté
    Avatar de Sadar
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2005
    Messages : 49
    Par défaut
    Bonsoir,

    Je soumet, sans plus :

    après Tel_Date il y a une virgule en trop.

    1. as-tu codé la date de cette façon qui ne renvoie que la date :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CDate(DateTimePicker1.Value.Date)
    01/09/2011 10:54:56 ==> 1/09/2011

    En Ms Access, il faut # pour les dates : Tel_Date >= #1/09/2011#, j'ai fait le test, sans, on obtient rien.

    2. Le format de date exemple :
    01/09/2011 ou 1/9/11
    2011/09/01

    Accès et vb ne sont peut-être pas au même format.

    voici un tuto intéressant sur les dates, mais sans voir vraiment du code, c'est effectivement difficile de répondre.

    http://sqlpro.developpez.com/cours/gestiontemps/

    en espérant t'aider.

Discussions similaires

  1. probleme date en vb.net access
    Par sanfour_walhan dans le forum Windows Forms
    Réponses: 5
    Dernier message: 10/11/2007, 14h53
  2. [VB.NET/Access] problèmes de date
    Par Kropernic dans le forum Windows Forms
    Réponses: 10
    Dernier message: 09/09/2006, 00h02
  3. [.NET][Access] Probleme affichage date
    Par fab3131 dans le forum Access
    Réponses: 2
    Dernier message: 26/05/2006, 13h35
  4. VB .Net: les intervalles de dates dans ACCESS ?
    Par AzertyH dans le forum Windows Forms
    Réponses: 10
    Dernier message: 15/05/2006, 09h35
  5. [VB.NET] Access et date
    Par Nesmontou dans le forum ASP.NET
    Réponses: 2
    Dernier message: 28/06/2005, 17h27

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