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 :

Vérification des dates


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut Vérification des dates
    Bonjours, j'ai une table qui contient des enregistrements comme suite :
    table1 (cd,dateentree,produit,Qt..),
    les enregistrement :
    01,AA,12/09/2010,
    02,BB,20/09/2010,
    03,CC,30/09/2010,
    mon problème se pose au niveau de la modification des dates ?
    premier cas :
    si la table contient un seul enregistrement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if ((emodif.Text='m' ) and ( erecno.Text='1')and (dttrt.Date< dm1.trtmaldattrt.value))
     // erecno.text : un tedit qui reçoit la valeur du recno
        then
        begin
        messagedlg ('**Date du Traitement doit étre supérieure ou égale à la date de la derniere remise de traitement ....',mterror,[mbOk],0,);
        dttrt.Date:=dm1.trtmaldattrt.Value;
        dttrt.SetFocus;
        exit;
        end;
    sa marche très biens , le problème se pose lors de la modification des autres enregistrements celui qui est au milieu et le dernier enregistrement ?

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 114
    Par défaut
    regarde IsEmpty pour ignorer le contrôle
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    salut ;@shaile ; mon problème comment faire pour que je fais la modification des date qui se trouve en milieu et en dernier.
    j'ai essayé avec prior et last et sa me pose problème.
    définition du problème:
    deuxième cas:
    dans le cas ou l'enregistrement se trouve en milieu des enregistrement la date qui doit être modifiée doit étre supérieure a la date localisé par prior et en même temps inférieure a la date localisé par last
    troisième cas:
    dans le cas ou la date a modifiée se trouve dans le dernier enregistrement.

    une idée

  4. #4
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    voila pour le troisième cas j'ai testé ce code mais apparemment sa marche pas, j'entre dans la boucle mais sans résultat !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if ((emodif.Text='m' ) and (dm1.trtmal.RecordCount=strtoint(erecno.Text)))
    //si le nombre d'enregistrement est égal au recno de la table = dernier enregistrement ( méthode testé est  vrai dans tous mes teste)
        then
        begin
        dm1.trtmal.Prior;// je localise l'enregistrement précèdent 
                if (dttrt.Date < dm1.trtmaldattrt.value)
                then
                begin
                messagedlg ('Date de Traitement doit étre supérieure à la date de la dernière remise de traitement ....',mterror,[mbOk],0,);
                dm1.trtmal.Next;// localisé l'enregistrement en modification pour recupéré la date
                dttrt.Date:= dm1.trtmaldattrt.Value;// recupération de la date a modifiée
                dttrt.SetFocus;
                exit;
                end;
    exemple :
    les enregistrement :
    01,AA,12/09/2010,
    02,BB,20/09/2010,
    03,CC,30/09/2010,
    lors de la modification de la date du 30/09/2010 par une date tel que 19/09/2010 pour simulé une erreur de saisie alors:
    dttrt.date=19/09/2010 et dm1.trtmaldattrt.value = 20/09/2010 ,
    sa passe pas malgré que dttrt.date < dm1.trtmaldattrt.value ,
    j'ai testé l'affichage des deux valeurs c'est bon mais la condition sa fonctionne pas
    même avec le formatage des deux dates
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FormatDatetime('dd/MM/yyyy', dm1.trtmaldattrt.value);
     
    FormatDatetime('dd/MM/yyyy', dttrt.Date);

  5. #5
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 45
    Par défaut Ma réponse
    Dsl mais ta mal exposé ton pb, tu doit nous expliquer la nature de la modification! , dans quel cas !?, et sa apporte sur quelle table de ta BDD !?

  6. #6
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    salut;@Hocinov je crois que j'ai été très simple dans l'exposition de mon problème , une modification c'est une modification : la date a modifier dépend de sa position par rapport a d'autre enregistrement
    pour le SGBD ta raison [D7+access] et merci pour votre disponibilité

  7. #7
    Membre Expert

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 296
    Par défaut
    Comment modifies-tu cette date? A partir d'un appui sur un bouton ou dans une grille d'affichage?

  8. #8
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    salut Linkin ; la modification se fait avec un bouton de validation après avoir affiché les données du dbgrid sur une forme a plusieurs champs dont la date fait partie.

  9. #9
    Membre Expert

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 296
    Par défaut
    Je n'ai jamais utilisé Prior.

    As-tu essayé avec un Locate sur l'élément précédent (cela suppose que tu aies un identifiant pour chaque enregistrement), je pense que cela simplifiera le code, surtout pour tester les bornes (premier et dernier).

    Et plutôt que Value, essayes un AsDateTime.

  10. #10
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    avec prior sa marche et j'ai la localisation de l'enregistrement et je récupère bien ma date précédente , le problème se pose la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...................
     if (dttrt.Date < dm1.trtmaldattrt.value)
                then
                begin
    j'arrive pas a entré dans la boucle malgré que la condition est vraie :
    (dttrt.Date < dm1.trtmaldattrt.value)

    Et plutôt que Value, essayes un AsDateTime.
    aussi avec asdatetime sa marche pas sachant que le résultat retourne la date de l'enregistrement précèdent.

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

Discussions similaires

  1. vérifications des dates
    Par smail21 dans le forum Bases de données
    Réponses: 5
    Dernier message: 05/11/2005, 16h02
  2. Manipuler des dates...
    Par Ti Jen-tsie dans le forum Langage
    Réponses: 4
    Dernier message: 26/06/2003, 11h46
  3. [MCD] [MCD] Gestion des dates
    Par brionne dans le forum Schéma
    Réponses: 3
    Dernier message: 30/05/2003, 13h01
  4. Réponses: 3
    Dernier message: 19/03/2003, 15h19
  5. Fonctions de manipulation des chaines et des dates
    Par Fares BELHAOUAS dans le forum Débuter
    Réponses: 3
    Dernier message: 09/11/2002, 22h43

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