Temat: RecordCount zwraca poprzedni wynik RecordSetu

Witam.
Prosilbym o pomoc z moim kodem.
Jeżeli wprowadzona wartość do pola txt spełnia warunek i znajduje rekordy to jest super i wszystko pięknie działa. Ale w przypadku wprowadzenia wartości, która zwróci mi wynik NoMuch RecordSet "pamięta" poprzedni wynik RecordCount i wyrzuca non stop brak rekordu. Chodzi mi o to żeby sprawdzał czy są rekordy za każdym razem przy wywołaniu Sub'a.
Z góry dzięki za pomoc.
Sub filtruj()

Dim sQL, sQL1 As String, strKryteria As String
Dim i As Integer
Dim rs As DAO.Recordset
Dim db As DAO.Database

Set db = CurrentDb

sQL1 = "SELECT ID_Klienta, chr_Nazwa, chr_NIP, chr_Wojew, chr_Miejscowosc, " _
& "chr_Adres, chr_Os_Kont_Imie, chr_Os_Kont_Nazwisko " _
& "FROM tbl_Klienci " _
& "ORDER BY ID_Klienta;"
If Not IsNull(Me.txtNazwa_Klienta) Then
If IsNothing(strKryteria) Then
strKryteria = strKryteria & "chr_Nazwa Like '*" & Me.txtNazwa_Klienta & "*'"
Else
strKryteria = strKryteria & " AND chr_Nazwa like '*" & Me.txtNazwa_Klienta & "*'"
End If
End If

If Not IsNull(Me.txtNIP) Then
If IsNothing(strKryteria) Then
strKryteria = strKryteria & "chr_NIP = '" & Me.txtNIP & "'"
Else
strKryteria = strKryteria & " AND chr_NIP = '" & Me.txtNIP & "'"
End If
End If

If Not IsNull(Me.txtMiejscowosc) Then
If IsNothing(strKryteria) Then
strKryteria = strKryteria & "chr_Miejscowosc = '" & Me.txtMiejscowosc & "'"
Else
strKryteria = strKryteria & " AND chr_Miejscowosc = '" & Me.txtMiejscowosc & "'"
End If
End If

sQL = "SELECT tbl_Klienci.ID_Klienta, tbl_Klienci.chr_Nazwa, tbl_Klienci.chr_NIP, tbl_Klienci.chr_Wojew," _
& "tbl_Klienci.chr_Miejscowosc, tbl_Klienci.chr_Adres, tbl_Klienci.chr_Os_Kont_Imie, tbl_Klienci.chr_Os_Kont_Nazwisko" _
& " FROM tbl_Klienci" _
& " WHERE " & strKryteria _
& " ORDER BY tbl_Klienci.ID_Klienta;"

Set rs = db.OpenRecordset(sQL)

With rs
If Not .EOF Then
.MoveLast
i = .RecordCount
.MoveFirst
End If
.Close
End With

If i = 0 Then
MsgBox "Brak rekordów do wyświetlenia. Wprowadź ponownie wyrażenie kwerendy!", vbOKOnly
Me.txtMiejscowosc = ""
Me.txtNazwa_Klienta = ""
Me.txtNIP = ""
Me.txtNazwa_Klienta.SetFocus
Me.Lista16.RowSourceType = "Table/Query"
Me.Lista16.RowSource = sQL1
Else
Me.Lista16.RowSourceType = "Table/Query"
Me.Lista16.RowSource = sQL
End If

Set rs = Nothing
Set db = Nothing

End Sub
Ten post został edytowany przez Autora dnia 20.10.16 o godzinie 00:21