Probaj da koristiš Date picker, rešio bi mnogo komplikacija. U tom slučaju bi mogla da radiš konverziju iz Date/Time u Long tip podataka. Ja to radim na sledeći način :
Public Function DToN(WhDate As Date) As Long
DToN = FormatNumber(Int(WhDate), 0, vbFalse, vbFalse, vbFalse)
End Function
Recimo u Queryju dodaš izraz DatumBroj koji bi se računao kao Int(Datum) i onda umesto da se petljaš sa datumima upoređuješ brojeve. Vidim da u referencama koristiš ADO, ja sam tu referencu uklonio i zamenio sa DAO. Čini mi se da se datumi kod Ado obeležavaju na drugi način. U DAO se koriste tarabice (#), s tim da u SQL kriterijumu moraš navesti ispravno formatiran datum, zato sam napisao funkciju DateCri. Ovde još treba dodati proveru da li su prazni textovi i tome slično...
Code:
Option Compare Database
Private Sub pretrazi_Click()
sfrmEvidencija.Form.RecordSource = "SELECT [tblevidencija].[refBr], [tblevidencija].[Naziv], [tblevidencija].[datum] " & _
"FROM tblevidencija Where datum Between " & DateCri(Datum_od) & " And " & DateCri(Datum_do)
End Sub
Private Function DateCri(WhText As TextBox) As String
DateCri = Format(CDate(WhText), "mm/dd/yyyy")
DateCri = Replace(DateCri, ".", "/")
DateCri = Replace(DateCri, "-", "/")
DateCri = "#" & DateCri & "#"
End Function
Ozbiljan i odgovoran mladić