Bonjour je vais être 1 peu long! EXCUSEZ !
quand je choisi le 1er ou le 2eme trimestre l'opération de calcul et d'insertion se fait sans problème dans la table:" MOYEN_ELEV_TRIM". quand je choisi le 3eme trimestre où le DBLookupComboBox2.keyvalue=3(3eme trimestre) ça m'envoie erreur suivante:'cette colonne n'accepte pas les valeurs null dans la colonne num_classe de la table: MOYEN_ELEV_TRIM insertion a échoué utilisé pas à pas'. Mais quand je met 1 point d'arrêt à partie du If DBLookupComboBox2.keyvalue=3 et que je débogue l'insertion se fait sans faute. Ma requête ADOQuery du DM.MOYENNE_ANNUELLE est la suivante
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT m.matricule_elev,code_annee, m.num_classe, sum (m.moyenne_trim) AS total FROM moyen_elev_trim m WHERE m.code_annee = :annee and m.num_classe = :clas GROUP BY m.matricule_elev,m.code_annee,m.num_classe
NB: le but est que qd on choisit le 3eme trimestre que la moyenne du 3eme trimestre et lamoyenne annuelle soit calculé en même tps.
Voici la table MOYEN_ELEV_TRIM :
MATRICULE_ELEV (char );
CODE_TRIM (numeric);
CODE_ANNEE (numeric);
NUM_CLASSE(char);
MOYENNE_TRIM(real);
MOYENNE_ANNUELLE(real);
les 4 premieres colonnes constituent la clé
**************************************************
Merci d'avance
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
20
21
22
23
24
25
26
27
28
29
30 If DBLookupComboBox2.keyvalue=3 then BEGIN DM.MOYENNE_ANNUELLE.Close; Dm.MOYENNE_ANNUELLE.Parameters[0].value:=Dm.annee.fieldvalues ['code_annee']; Dm.MOYENNE_ANNUELLE.Parameters[1].value:=Dm.classe.fieldvalues ['num_classe']; dm.MOYENNE_ANNUELLE.open; dm.MOYENNE_ANNUELLE.first; WHILE NOT DM.MOYENNE_ANNUELLE.Eof do BEGIN aff5:=(dm.MOYENNE_ANNUELLE.fieldbyname('total').Asfloat/3); If Dm.MOYEN_ELEV_TRIM.locate ('matricule_elev;code_annee;num_classe', VarArrayOf([Dm.MOYENNE_ANNUELLE.fieldbyname([SIZE="3 "]'matricule_elev').asstring, Dm.MOYENNE_ANNUELLE.fieldbyname ('code_annee').asinteger, Dm.MOYENNE_ANNUELLE.fieldbyname ('num_classe').asstring]), [loPartialKey])then ;[/SIZE] begin if dm.MOYEN_ELEV_TRIM.state<>dsedit then dm.MOYEN_ELEV_TRIM.edit; dm.MOYEN_ELEV_TRimMOYENNE_ANNUELLE.asfloat:=aff5; dm.MOYENNE_ANNUELLE.next; end; end; end;
Partager