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

Bases de données Delphi Discussion :

Requête SQL sur une base Access, where sur un champ date


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 116
    Points : 67
    Points
    67
    Par défaut Requête SQL sur une base Access, where sur un champ date
    Bonjour à tous

    J'écris un petit code qui génère les numéros de facture par rapport à la date du jour.

    Alors, j'ai créé le code suivant, mais je constate que la requête n'est pas correctement exécutée pck'à tous les coups il ne trouve pas d'enregistrements et me retourne le N° 1 :
    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
     
    procedure Tform_vente.req_fact_enteteBeforePost(DataSet: TDataSet);
    var
     
    date_fact : string;
    begin
     
      if req_fact_entete.FieldByName('date_facture').AsString <> '' then begin
     
          date_fact := req_fact_entete.FieldByName('date_facture').AsString;
          req_gen_num_fact.SQL.Clear;
          req_gen_num_fact.SQL.Add('SELECT Count(*) + 1  AS num_fact FROM t_facture_entete WHERE (((t_facture_entete.date_facture)=#'+ date_fact+'#));');
          req_gen_num_fact.Close;
          req_gen_num_fact.Open;
          req_fact_entete.FieldByName('num_facture').AsString := date_fact + '-' + req_gen_num_fact.FieldByName('num_fact').AsString;
     
        end;
     
    end;

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Sous Access le format de la date doit être de ce type: #mm/dd/yyyy#
    Il est probable qu'il y ait une insersion sur le jour et le mois de la date, d'où le résultat incorrect.

    Je te conseille plutôt d'utiliser une requête paramétrée pour éviter de 'coller' au format:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT Count(*) + 1  AS num_fact FROM t_facture_entete WHERE date_facture = :date_fact;

    Ensuite tu renseignes la valeur du paramètre avec ta date avant son exécution.

    @+ Claudius.

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

Discussions similaires

  1. [Excel 2003-2007] requêtes SQL vers une base access depuis Excel
    Par .Spirit dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/10/2010, 17h03
  2. Réponses: 10
    Dernier message: 10/07/2009, 10h57
  3. Réponses: 0
    Dernier message: 03/04/2008, 15h14
  4. Requête sur une base access dans excel
    Par adrien.gendre dans le forum Excel
    Réponses: 3
    Dernier message: 23/07/2007, 12h06
  5. [Access] Requête sur une table et tri sur une autre
    Par VooDooS dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/08/2006, 15h07

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