12. februar 2002 - 20:19Der er
11 kommentarer og 1 løsning
Beregning af gennemsnit i formularfelt
Følgende foregår i formular. Hvad skal jeg skrive i udtryksgeneratoren i et felt under egenskab for at kunne beregne gennemsnit af felter i formularen med navnene "1fedtpoint, 2fedtpoint.....7fedtpoint"
når jeg skriver følgende: =(nz([1Fedtpoint];0)+nz([2Fedtpoint];0)+nz([3Fedtpoint];0)+nz([4Fedtpoint];0)+nz([5Fedtpoint];0)+nz([6Fedtpoint];0)+nz([7Fedtpoint];0))/7 og 1Fedtpoint = 4 2Fedtpoint = 4 3Fedtpoint = 4 og der ikke er flere fedtpoint fås et gns. på 1,71428571428571 -------- med andre ord et forkert gennemsnit(der er divideret med 7 fremfor 3)
Jeg ville lave en afterupdate event på alle de syv felter der opdaterede gns-feltet. I afterupdaten ville jeg kalde en rutine der løb alle syv felter igennem som noget i stil med:
Private sub OpdaterGns() Dim i as integer
if len(trim$(1fedtpoint) & "") > 0 then i = i + 1 end if if len(trim$(2fedtpoint) & "") > 0 then i = i + 1 end if osv op til nr. 7
if i > 0 then gns = (1fedtpoint + 2fedtpoint + 3fedtpoint....) / i else gns = 0 end if
end sub
Som du nok kan se er det uafprøvet kode, men ideen skulle være der.
Function gennemsnit() Dim antal As Integer Dim sum As Double Dim c As Control
sum = 0 antal = 0
For Each c In Me.Controls If c.Tag = "ind" Then If Len(Trim$(Nz(c, "")) & "") > 0 Then antal = antal + 1 sum = sum + Nz(c, 0) End If End If Next c TxtRes = (sum / antal) End Function
Dine textfelter der skal beregnes på skal mærkes: ind Og i hændelsen efter opdatering skal du angive funktionen: =[gennemsnit] dit textfelt, hvor resultatet skal stå skal have navnet: txtRes.
Så er du heller ikke bundet af 7 felter, men kan nemt udvide din form med flere input txtfelter
Du skal bruge kode-generatoren både for at lave min og nih's i øvrigt mere elegante løsning.
På hvert af de syv felter kan du så på dets afterupdate-egenskab skrive navnet på din gennemsnitberegningsrutine i []. Jeg er ikke vild med at bruge OnCurrent (VedAktuel) for den fyrer osse når der ikke nødvendigvis er behov for den.
Jeps - send mig eventuel mdb-filen på jesperthomsen@yahoo.com - så ser jeg lige på den.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.