icomicar
Messages postés76Date d'inscriptionlundi 26 juin 2006StatutMembreDernière intervention28 janvier 2015
-
24 mai 2007 à 23:59
icomicar
Messages postés76Date d'inscriptionlundi 26 juin 2006StatutMembreDernière intervention28 janvier 2015
-
27 mai 2007 à 01:17
Salut les amis
voila je realise une application en vb6.et je voudrais faire la sommes de toutes les heures d'abscence pour une classe d'eleves pendant une periode donnée.Et afficher les resultats sous forme de liste a deux colonnes"eleves"" somme des heures".
pour un seul eleve je l'ai fais comme ceci
pdat = Combo2(0).Text
ddat = Combo2(1).Text
pdat = Format(pdat, "dd/mm/yyyy")
ddat = Format(ddat, "dd/mm/yyyy")
Set rs = daoDB36.OpenRecordset("select sum(absc) as total from abscence where annsc='" + Trim(Combo1(2)) & _
"'and ninsc='" + Trim(Combo1(1)) & _
"' and dat between datevalue('" & pdat & "')and datevalue('" & ddat & "') ")
et ca marche.Toutefois si vous avez des suggestions n'hésitez surtout pas a corriger.
Mais pour faire cette operation pour toute la classe !!!????.Aider et merci
Qui a preceder l'autre l'homme ou la penseé ??
A partir de là tu peux avoir tout ce que tu veux en faisant des regroupements
et selon différents critères...
Pour les nbMinutes tu peux les reconvertir par la suite au format hh:mn ,
soit au moment du regroupement soit par lasuite (juste pour l' affichage.)
icomicar
Messages postés76Date d'inscriptionlundi 26 juin 2006StatutMembreDernière intervention28 janvier 2015 25 mai 2007 à 23:13
Salut tout le monde
J'ai trouve comment faire .Mais c'est une vraie entorse.
Voila j'ai d'abord creer une table abscence et sa copie abscence1
Set rs2 = daoDB36.OpenRecordset("abscence1")
ensuite j'ai selectionné les noms des eleves d'une classe
Set rs = daoDB36.OpenRecordset("select distinct ncomplet from abscence")
et puis j'ai utilise une variable pour stocker les nom l'un apres l'autre
et en même temps passer l'enrengistrement dans abscence1,.la table abscence1 est prealablement vider par le code suivant
Do Until rs2.EOF
rs2.Delete
rs2.MoveNext
Loop
ensuite viens ce code
Dim var As String
rs.MoveFirst
Do Until rs.EOF
var = rs!ncomplet
Set rs1 = daoDB36.OpenRecordset("select sum(absc)as total from abscence where annsc='" + Label2.Caption & _
"'and ncomplet='" + var + "'")
With rs2
.AddNew
rs2!ncomplet = var
rs2!total = rs1!total
.Update
End With
rs.MoveNext
Loop
Set Data2.Recordset = rs2
le data2 est lié a un dbgrid.Alors s'il vous plait si vous avez des idées plus simple .Merci
Qui a preceder l'autre l'homme ou la penseé ??
"SELECT [_ABSENCES].IdClas, [_ABSENCES].IdEleve, " & _
"Int(Sum([_ABSENCES]![_nbMinutes])/60) AS _HCumul, " & _
"Sum([_ABSENCES]![_nbMinutes])-([_HCumul]*60) AS _MCumul " & _
"FROM _ABSENCES " & _
"GROUP BY [_ABSENCES].IdClas, [_ABSENCES].IdEleve WHERE _Jour >=" & Day(dDebut & _
" AND _Mois >= " & Month(dDebut) & " AND _Jour <=" & Jour(dFin) & _
" AND _Mois <= " & Month(dFin) & ";"
Tu peux donc ouvrir un rs sur cette expression.
Set rs1 = daoDB36.OpenRecordset(sQuery,dbOpenSnapshot)
Set dbgrid.RecordSource= rs1
NB:
1° Bien qu' une année soit à cheval entre deux années, la probabilité d' avoir
deux mois de Mai est n' est strictement pas envisageable.C' est pourquoi on ne
teste pas sur l' année.A moins de fourrer toutes les années dans une même et unique BD.
2° Pourquoi je l' ai fait avec Jour et Mois au lieu de IdDate Beetwen...
Parce que personnellement ça me sert d' avoir des récapitulatifs
par jour et par mois. C' est essentiel quand on veut avoir des En-Tetes de groupe dans des etats.
PS: Nicko, j' ai l' impression que c' est moi qui s' est tapé une heure de colle :-)
icomicar
Messages postés76Date d'inscriptionlundi 26 juin 2006StatutMembreDernière intervention28 janvier 2015 27 mai 2007 à 01:17
Salut : J'ai beau essayer de'integrer ta requete dans mon application avec les modifications necessaires,en vain ca me donne une erreur de syntaxe comme quoi un opérateur est abscent.Lequel ?? allez savoir.
en fait la clause group by permet de parcourir l'enregistrement en executant la requete ? c'est ca ?.
Precisions les abcences sont comptées en heures entieres 1,2,3....pour un semestre durant une années scolaire.il n'ya q'une selue BD.