If Not IsNull(Me.txt_Kalinlik) Then
strWhere = strWhere & "([KALINLIK] Like ""*" & Me.txt_Kalinlik & "*"") AND "
End If
şeklinde 8 tane if bloğu var. Üstteki kodda txt_Kalinlik metin kutusu boş değil ise strWhere değişkenine veri tanımlıyor. Yani ölçüte ([KALINLIK] Like ""*" & Me.txt_Kalinlik & "*"") AND kodu ekleniyor. Her if kodu için aralarda AND olarak ekleme yapılıyor.
lngLen = Len(strWhere) - 5
bu kod strWhere, yani sorgudaki ölçütün uzunluğunu hesaplıyor, -5 olmasının sebebi en sona eklenen " AND " şeklindeki 5 karakter harici uzunluğun hesaplanması.If lngLen <= 0 Then kodu ile, hiç ölçüt eklenmemiş ise tüm verilerin görünebilmesi için çalışacak kodlar.
DoCmd.DeleteObject acQuery, "QRY_KIOLD_FirmaOzel" ' önceki "QRY_KIOLD_FirmaOzel" isimli sorguyu siler
strsql = "SELECT * FROM KODISLEM_old "
Set qdf = CurrentDb.CreateQueryDef("QRY_KIOLD_FirmaOzel", strsql) ' strsql değişkenine tanımlanan sorguyu "QRY_KIOLD_FirmaOzel" adında yeniden oluşturur.
DoCmd.OpenQuery qdf.Name 'oluşturulan sorguyu açar
elseden sonraki kodlar hesaplanan IngLen değeri 0'dan büyük veya 0'a eşit değil ise çalışır.
strWhere = Left$(strWhere, lngLen) ' Sorguya eklenecek ölçütü en sondaki " AND " olmadan tanımlar.
DoCmd.DeleteObject acQuery, "QRY_KIOLD_FirmaOzel" ' önceki "QRY_KIOLD_FirmaOzel" isimli sorguyu siler
strsql = "SELECT * FROM KODISLEM_old WHERE " & strWhere
Set qdf = CurrentDb.CreateQueryDef("QRY_KIOLD_FirmaOzel", strsql) ' strsql değişkenine tanımlanan sorguyu "QRY_KIOLD_FirmaOzel" adında yeniden oluşturur. Sorguda ölçüt olduğu için strWhere değerindeki ölçütü sorguya ekler.
DoCmd.OpenQuery qdf.Name ' önceki "QRY_KIOLD_FirmaOzel" isimli sorguyu siler