[ Son Of Alerik @ 05.04.2004. 16:47 ] @
Uradio sam jednu malu bazu podataka i sve radi ok. Ono što bih ja hteo je sledeće: kad neko u pretrazi recimo odabere ime Pera da mi baza prikaže koliko Pera ima trenutno u bazi.

Program je vezan na access bazu sledećim kodom:
Code:
  Set ws = DBEngine.Workspaces(0)
  Set db = ws.OpenDatabase(App.Path & "\baza\baza.dat")
  Set Data1.Recordset = db.OpenRecordset("SELECT * FROM Baza;")
  Data1.Refresh
  Data1.ReadOnly = True


E tu sad sledi mali recordcount koji po pokretanju programa prebroji koliko zapisa ima u bazi i tu cifru doda kao form.caption:

Code:
  With Data1.Recordset
    .MoveLast
    intRecs = .RecordCount
  End With
    Me.Caption = " Baza (ukupno zapisa u bazi: " & intRecs & ")"
    Data1.Recordset.MoveFirst


Do sada ovaj deo radi sve kako treba, ali kad odradi pretragu po, recimo, imenu kako da odradim da mi kao form.caption piše npr „U bazi postoji 5 Pera“?
Kod za pretragu:
Code:

        strPretraga = "Ime LIKE"
            varName = InputBox("Unesi ime: ", _
                "Pretraga po imenu")
'            Data1.Recordset.MoveFirst
             varName = Trim(varName) 
        If varName = "" Then
            Exit Sub
            Else: varName = "'" & varName & "*'" 
        End If
        '
        With Me.Data1.Recordset
            strBkMark = .Bookmark
            .FindFirst "Ime LIKE" & varName
        If .NoMatch Then
            .Bookmark = strBkMark
        End If
        End With

E tu sam sad pokušavao da sredim ono na sledeći način:
Code:
Do While Not data1.recordset.eof 
    data1.recordset.findnext(strPretraga & varName)
    inRecs2 = data1.recordset.recordcount
Loop


Ali mi ovo uvek vraća ukupan broj zapisa u bazi.

Da li postoji način kako da prebroji broj traženih zapisa?

Izvinjavam se na malo dužem postu.
Pozdrav i hvala unapred.

[ degojs @ 05.04.2004. 17:16 ] @
SELECT COUNT(Ime) AS Broj FROM Baza WHERE Ime='Pera';
[ Son Of Alerik @ 05.04.2004. 19:22 ] @
Može li malo bliže objašnjenje jer ovaj upit ne mogu nikako da uglavim
[ mvlado @ 06.04.2004. 09:06 ] @
Citat:
degojs:
SELECT COUNT(Ime) AS Broj FROM Baza WHERE Ime='Pera';



Pa posaljes ovaj upit bazi i kao odgovor dobijes ono sto tebi treba u ovom slucaju.

varName = InputBox("Unesi ime: ", _
"Pretraga po imenu")

Set Data1.Recordset = db.OpenRecordset("SELECT COUNT(Ime) AS Broj FROM Baza WHERE Ime= '" & varName & "'")
With Data1.Recordset
intRecs = .RecordCount
End With
Me.Caption = " Baza (ukupno zapisa u bazi: " & intRecs & ")"

[ Son Of Alerik @ 07.04.2004. 13:14 ] @
I dalje neće, SQL upit nisam uspeo da nateramda radi, dok sa data1.recordset.filter opcijom mi konstantno broji sve zapise:(
[ mladenovicz @ 07.04.2004. 13:31 ] @
Radi sa posebnim recorsetom, ne diraj taj Data1.Recordset. Znaci,

Code:

Dim rs As Recordset
Set rs = db.OpenRecordset("SELECT COUNT(Ime) AS Broj FROM Baza WHERE Ime= 'Pera'")
If Not rs.EOF and rs.BOF Then Debug.Print rs("Broj")

rs.Close
Set rs = Nothing
[ Son Of Alerik @ 07.04.2004. 15:39 ] @
Uspeo sam uz pomoć SQL upita s tim što sam morao malo da ga promenim jer onako kako je bilo u pređašnjim postovima je uvek prikazivao da postoji samo 1 zapis:
Code:
Set rs = db.OpenRecordset("SELECT Ime FROM Baza WHERE Ime= " & varName)

i onda je usledilo klasično recorcount...

Hvala na pomoći i pozdrav!