[ zormar @ 27.01.2007. 22:08 ] @
Na formi imam DataGrid. Potrebno je da iz jedne kolone saberem celije koje imaju istu brojcanu vrednost, i to prikazem u labeli.
npr. u koloni su upisani brojevi 1,2,3,1,5,1,6,7,8,1 i treba da saberem celije u koje je upisan broj 1.
[ goranvuc @ 27.01.2007. 22:31 ] @
Pa vidi, posto je DataGrid "vezan" za rekordset kao izvor podataka, ne mozes izracunati na taj nacin sumu, vec iskljucivo moras "proci u petlji" kroz rekordset koji je izvor podataka:
Code:

Private Sub Sumiraj()
   Dim dblSuma As Double
   Dim dblKriterijum As Double
   
   'Primer podrazumeva da imas neki rekordset rstTmp
   'koji je izvor podataka za tvoj grid
   
   dblSuma = 0
   dblKriterijum = 1 'ovo je tvoj primer, samo sabira one koji su 1
   
   If rstTmp.RecordCount > 0 Then rstTmp.MoveFirst 'ides na pocetak
   
   Do While Not rstTmp.EOF
      
      If rstTmp("Polje") = dblKriterijum Then 'za neko polje pod nazivom "Polje"
         dblSuma = dblSuma + dblKriterijum
      End If
      
      rstTmp.MoveNext
      
   Loop
   
   Label1.Caption = "Suma je: " & Format(dblSuma, "###,##0.00")

End Sub

Naravno, ovde su mnoge stvari pretpostavljene, a mnoge nisu uzete u obzir, ali ....

PS

Ako ti treba klasican COUNT, umesto "dblSuma = dblSuma + dblKriterijum" pisi "dblSuma = dblSuma + 1"
[ zormar @ 27.01.2007. 23:17 ] @
U ovom redu
If rstTmp("Polje") = dblKriterijum Then
daje gresku 3021:Either BOF or EOF is True, or the current record has been deleted.Requested operation requires a current record.
Da li pod "Polje" podrazumevas naziv kolone?
[ goranvuc @ 28.01.2007. 00:14 ] @
Citat:
zormar:
Da li pod "Polje" podrazumevas naziv kolone?

Naravno, pisao sam ti i komentare ;)
Citat:
zormar: U ovom redu
If rstTmp("Polje") = dblKriterijum Then
daje gresku 3021:Either BOF or EOF is True, or the current record has been deleted.Requested operation requires a current record.

Ne znam sto ti to javlja, prethodno je postavljena provera da li ima rekorda, kao i pozicioniranje na prvi rekord pre ulaska u petlju. Da li si preuzeo kod u integralnom obliku?
[ zormar @ 28.01.2007. 10:07 ] @
Kod u mom primeru izgleda ovako, mozda sam negde pogresio

Private Sub Command2_Click()

Dim dblSuma As Double
Dim dblKriterijum As Double

'Primer podrazumeva da imas neki rekordset rstTmp
'koji je izvor podataka za tvoj grid

dblSuma = 0
dblKriterijum = 1 'ovo je tvoj primer, samo sabira one koji su 1

If Adodc1.Recordset.RecordCount > 0 Then Adodc1.Recordset.MoveFirst 'ides na pocetak

Do While Not Adodc1.EOFAction


If Adodc1.Recordset("Kolona") = dblKriterijum Then 'za neko polje pod nazivom "Polje"
dblSuma = dblSuma + 1
End If

Adodc1.Recordset.MoveNext

Loop

Label3.Caption = "Suma je: " & Format(dblSuma, "###,##0.00")

End Sub
[ goranvuc @ 28.01.2007. 10:46 ] @
Vidi se iz aviona, umesto:
Code:

Do While Not Adodc1.EOFAction

treba onako kako sam ti i rekao, a ti pogresno prepisao:
Code:

Do While Not Adodc1.Recordset.EOF

Dakle, treba rekordset, a ne ado kontrola i njeno svojstvo EOFAction koje je po defaultu 0, tj. kad se konvertuje u logicku vrednost onda je False, pa ti se uslov za izlazak iz petlje nikad ne ispuni i program "pukne" na EOF od rekordseta.
[ zormar @ 28.01.2007. 11:36 ] @
Bio je to ocigledan moj kiks.
Sve je u redu, puno ti hvala.
[ zormar @ 28.01.2007. 17:36 ] @
Imam jos pitanja o ovoj temi, ako mozes da mi pomognes bilo bi dobro.
Na koji nacin je moguce iz 2 kolone dobiti zbir celija koje imaju istu vrednost i to prikazati u jednoj labeli?
Ako u 2 kolone imam 2 broja koji se ponavljaju na vise mesta u tim kolonama, kako dobiti zbirove tih celija, i prikazati ih u 2 labele posebno za svaki zbir?
[ goranvuc @ 28.01.2007. 20:20 ] @
Izvini, ali mislim da je resenje tvog novog problema samo sitna varijacija prethodnog resenja, hajde i ti malo nesto da uradis, nije tesko, ako ocekujes da ti ovde ljudi stalno resavaju kompletan problem OK - mozda ti neko i resi, ali time ti cini medvedju uslugu. Sve ti je dato u prethodnom odgovoru.
[ zormar @ 28.01.2007. 21:45 ] @
Slazem se s tvojom sugestijom.
Malo sam bio brz u postavljanju pitanja, jer sam to lako resio.
Jos jednom ti zahvaljujem na pomoci.