Šta je novo?

Pomoć u vezi RecordCount-a u VB6

Son Of Alerik

Čuven
Učlanjen(a)
05.04.2004
Poruke
3
Poena
601
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:
Kod:
  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:

Kod:
  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:
Kod:
        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:
Kod:
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.
 
SELECT COUNT(*) FROM table_name WHERE ime = Pera
 
Zasto ne koristis filter property recordseta? Radi sa DAO i ADO modelom.
Evo ti mala korekcija odgovora sa ES foruma...
Kod:
varName = InputBox("Unesi ime: ", "Pretraga po imenu")
Data1.Recordset.Filter = "Ime'" & varName & "'"
intRecs = Data1.Recordset.RecordCount
Me.Caption = " Baza (ukupno zapisa u bazi: " & intRecs & ")"
Ovo je bolje nego da pokreces upit jer na pocetku otvaras "SELECT * FROM..."

@Betty
Tvoj upit ne moze da prodje.
Trebalo bi
Kod:
SELECT COUNT(*) FROM table_name WHERE ime = 'Pera'
 
Poslednja izmena:
Uspeo sam uz pomoć SQL upitam 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:
Kod:
Set rs = db.OpenRecordset("SELECT Ime FROM Baza WHERE Ime= " & varName)
i onda je usledilo klasično recorcount...

Hvala na pomoći i pozdrav!
 
Vrh Dno