Joooj, ajde malo vise ubuduce, da ne glumimo detektive ;)
Znaci, ideja je da kad korisnik klikne na "cmdUk" dugme, ti izracunas sume i popunis labele, zar ne? Posto je to duzi proces, ti si zamislio jedan progresbar koji ce da daje informaciju o napredovanju racunanja, zar ne?
Labele ti sluze za zbir svih vrednosti po kolonama i redovima koje odgovaraju
nekoj odredjenoj vrednosti dblKriterijum, zar ne?
Ako je to sve tako, kao sto sam pretpostavio (a ti nisi dovoljno jasno objasnio) onda bi kao prva primedba bila sam nacin kako dolazis do pojedinacne sume: za svaku pojedinacnu sumu ti se pozicioniras na odredjenu kolonu, pa onda od pocetka do kraja ispitujes i sabiras, da bi to isto ponovo radio za drugu kolonu ...
umesto da sve uradis u jednom prolazu!!!
Ako je ta tvoja funkcija u izvornom obliku kako je koristis, ja bi onda ovako to napravio: umesto tih tvojih 10 funkcija, napravio bih jednu sa parametrom dblKriterijum:
Code:
Function UkBroj(byval dblKriterijum As Double) As Double
Dim dblSuma As Double
dblSuma = 0
If Form2.Adodc2.Recordset.RecordCount > 0 Then Form2.Adodc2.Recordset.MoveFirst
Do While Not Form2.Adodc2.Recordset.EOF '
If Form2.Adodc2.Recordset("PRVI") = dblKriterijum Then
dblSuma = dblSuma + 1
End If
If Form2.Adodc2.Recordset("DRUGI") = dblKriterijum Then
dblSuma = dblSuma + 1
End If
If Form2.Adodc2.Recordset("TRECI") = dblKriterijum Then
dblSuma = dblSuma + 1
End If
If Form2.Adodc2.Recordset("CET") = dblKriterijum Then
dblSuma = dblSuma + 1
End If
If Form2.Adodc2.Recordset("PETI") = dblKriterijum Then
dblSuma = dblSuma + 1
End If
Form2.Adodc2.Recordset.MoveNext
Loop
UkBroj = dblSuma
End Function
Naravno, ovaj kod bi se dao jos poprilicno srediti, ali sta je tu je ;)
Sada bi tvoja glavna procedura izgledala ovako:
Code:
Private Sub cmdUk_Click()
Dim varKriterijumi
Dim intCounter As Integer
varKriterijumi = Array(11, 22, 33, 44, 55, 66, 77, 88, 99, 110) ' ovo bi trebalo da budu tvoji kriterijumi, ja sam stavio neke bezveze vrednosti
ProgressBar1.Visible = True
ProgressBar1.Min = 1
ProgressBar1.Max = 10
For intCounter = 0 To UBound(varKriterijumi)
DoEvents
Form5.Controls("Label" & (intCounter + 1)).Caption = UkBroj(varKriterijumi(intCounter))
ProgressBar1.Value = ProgressBar1.Value + 1
Next
ProgressBar1.Visible = False
Form5.Show
end sub
Naravno, Timer ti ni ne treba!
Ako ne radi nesto, izvini, sve sam pisao direktno kroz ES. Bitna je ideja, dalje ces se valjda snaci.