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 :

Calcul d'un champ


Sujet :

Bases de données Delphi

  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut Calcul d'un champ
    bonsoir,
    j'ai une table et je veux faire un calcul de la moyenne.
    j'ai les champs "devoir1", "Devoir2" et "devoir3".
    moyenne:=(Devoir1+Devoir2+Devoir3)/3.
    j'ai testé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TNotes.first;
    while not TNotes.Eof do begin
    TNotes.FieldByName('Moy').AsFloat:=(TNotes.FieldByName('Devoir1').AsFloat+
    TNotes.FieldByName('Devoir2').AsFloat+
    TNotes.FieldByName('Devoir3').AsFloat)/3;
    TNotes.Post;
    TNotes.next;
    end;
    -------------------------------
    mais cette boucle ne calcule que 2 enregistrements seulement!
    je voudrais faire une boucle allant du 1er enregistrement jusqu'au dernier pour
    calculer la moyenne.tout ça en cliquant sur un boutton.
    merci d'avance.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    il ne manquerait pas un Edit sur ton DataSet dans ton code ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    TNotes.first;
    while not TNotes.Eof do 
    begin
    TNotes.Edit;
    TNotes.FieldByName('Moy').AsFloat:=(TNotes.FieldByName('Devoir1').AsFloat+
    TNotes.FieldByName('Devoir2').AsFloat+
    TNotes.FieldByName('Devoir3').AsFloat)/3;
    TNotes.Post;
    TNotes.next;
    end;
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  3. #3
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 217
    Points
    217
    Par défaut salut
    salut nabil74.
    essayé d'enlevé le next ,je pense que la boucle while se charge de basculer entre les enregistrements.
    cordialemment.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par rec82 Voir le message
    salut nabil74.
    essayé d'enlevé le next ,je pense que la boucle while se charge de basculer entre les enregistrements.
    cordialemment.
    Euh non pas du tout Si on enlèves le Next alors on bouclera éternellement sur le premier enregistrement. EOF ne fait pas passer à la ligne suivante, c'est juste un indicateur pour savoir si l'on est arrivé en fin de jeu d'enregistrement.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  5. #5
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut
    merci Aka Guymelef oui il manque un "Edit" .j'ai essayé mais la boucle ne parcourt pas toute la table ç ça le problème?

  6. #6
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 217
    Points
    217
    Par défaut salut
    salut aka.
    tous mes excuses
    cordialement.

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Comment sais-tu que tu n'as pas parcouru toute la table ?

    Comment est récupéré TNotes, es-tu qu'il s'agit d'une copie complète de la table ?
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  8. #8
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut

    j'ai vidé la table ensuite j'ai testé la boucle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    TNotes.first;
    while not TNotes.Eof do 
    begin
    TNotes.Edit;
    TNotes.FieldByName('Moy').AsFloat:=(TNotes.FieldByName('Devoir1').AsFloat+
    TNotes.FieldByName('Devoir2').AsFloat+
    TNotes.FieldByName('Devoir3').AsFloat)/3;
    TNotes.Post;
    TNotes.next;
    end;
    et ça marche!waw!!!
    merci beaucoup pour ton aide Aka Guymelef.
    j'ai appris beaucoup sur developpez.com.merci à toute l'équipe et bon courage

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

Discussions similaires

  1. Calculer différence date champ d'une même requête
    Par priest69 dans le forum Access
    Réponses: 20
    Dernier message: 11/11/2005, 20h15
  2. tri et calcul sur un champ
    Par PAUL87 dans le forum Access
    Réponses: 11
    Dernier message: 17/10/2005, 21h35
  3. Calcul sur plusieurs champs similaires
    Par Zebulonn dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/05/2005, 14h24
  4. Calcul dans des champs de saisie
    Par leeloo076 dans le forum ASP
    Réponses: 4
    Dernier message: 07/04/2004, 10h09
  5. calcul entre 2 champs time
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 19/02/2003, 10h12

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