Function Summera(Ett_varde, Antal)
sumA = Ett_varde * Antal
sumB = sumB + sumA
Summera = 100 * (sumB / Ett_varde)
End Function
Någonting i den stilen... eller?
:)
12 svar · 283 visningar · startad av Jesper T
Går denna kod att lägga i någon slags funktion, så att man slipper skriva om den för varje ny variabel?
sumA = B_varde * Antal
sumB = sumB + sumA
sumProc = 100 * (sumB / A_varde)
Så att det slipper att bli så här:
sumA = B_varde * Antal
sumB = sumB + sumA
sumProcA = 100 * (sumB / A_varde)
sumC = C_varde * Antal
sumD = sumD + sumC
sumProcB = 100 * (sumC / D_varde)
sumE = E_varde * Antal
sumF = sumF + sumE
sumProcC = 100 * (sumE / G_varde)
osv..
Function Summera(Ett_varde, Antal)
sumA = Ett_varde * Antal
sumB = sumB + sumA
Summera = 100 * (sumB / Ett_varde)
End Function
Någonting i den stilen... eller?
:)
Är det en funktion du är ute efter eller vill du korta ner koden för att inte använda så många variabler? Förstår inte riktigt frågan, men jag kortade ner det iaf..
var = 100*((sumB+sumA)/(B_varde*Antal))
Kanske - låt säga att A_varde, B_varde osv. får sina värden ifrån en databastabell. (loop) Alltså att det finns många kolumner som heter "varde" A, B, C, D, och E_varde osv, och att det även finns många poster med olika värden i "Antal". Funkar det då, - och i sådana fall hur?
Ekström --> Jag vill även kunna skriva ut "sumA och sumB".
Det kanske blir tydligare om jag skriver så här:
sumA = rs("B_varde") * rs("Antal")
sumB = sumB + sumA
sumProc = 100 * (sumB / rs(" A_varde"))
Eller så här:
while not rs.eof
sumA = rs("B_varde") * rs("Antal")
sumB = sumB + sumA
sumProc = 100 * (sumB / rs("A_varde"))
Response.write sumA & sumB & sumProc
rs.movenext
wend
Vad är det du vill egentligen? Vill du loopa igenom fält som heter A_varde, B_varde, C_varde osv.?
Ja det vill jag, och slippa skriva så här för varje ny kolumn:
while not rs.eof
sumA = rs("B_varde") * rs("Antal")
sumB = sumB + sumA
sumProc = 100 * (sumB / rs("A_varde"))
sumA = rs("C_varde") * rs("Antal")
sumB = sumB + sumA
sumProc = 100 * (sumB / rs("D_varde"))
sumA = rs("E_varde") * rs("Antal")
sumB = sumB + sumA
sumProc = 100 * (sumB / rs("F_varde"))
sumA = rs("G_varde") * rs("Antal")
sumB = sumB + sumA
sumProc = 100 * (sumB / rs("H_varde"))
sumA = rs("I_varde") * rs("Antal")
sumB = sumB + sumA
sumProc = 100 * (sumB / rs("J_varde"))
osv...
sov...
Response.write sumA & sumB & sumProc
rs.movenext
wend
Nu vet jag inte var du fick "rs" från, men antar att det var från någon fråga till databasen. Du kanske ska försöka fråga på ett sådant sätt att alla A, B, C-värden, etc, kommer på rad i ditt rs. Då kan du nå A-värde, B-värde etc, med rs(1), rs(2), osv. Det lämpar sig för en "for"-slinga där du utför din beräkning.
Ok hur skulle det se ut i mitt fall(på ett ungefär)?
Idéer?
Det skulle kunna vara något i stil med:
For i=0 to 4
sumA = rs(i) * rs("Antal")
sumB = sumB + sumA
sumProc = 100 * (sumB / rs(i+5))
Next
Betrakta ovanstående endast som en idé att bygga vidare på. Jag har ingen aning om omständigheterna i ditt fall. Idén bygger i vart fall på att du kan komma åt enskilda fält i ett recordset genom kolumnnummer, likaväl som genom namn. Eftersom man kan räkna upp nummer, så borde den möjligheten funka. Allt detta förutsätter givetvis att alla kolumner kommer i rätt ordning. Det kan du se till genom att ange i din SQL-fråga vilka kolumner du vill ha med. Istället för att bara fråga "SELECT *...", frågar du istället "SELECT b_varde, c_varde....".
Ok, jag hajjar principen, men...(som alltid), om jag lägger detta i min recsetloop hur skriver jag du ut det senare? (variablarna - sumA, sumB och sumProc)
Går det med sumA(1) osv?