(06/03/2021, 09:02)ODRSCH26 yazdı: If Len(modelsearchtxtbox & "") > 0 Then stLinkCriteria = "[model]=" & "'" & [modelsearchtxtbox] & "'"kodu bu şekilde yazarsanız sadece modele göre arama yapar
ifade özellikle o şekilde kullanıldı 1. amaç line alanı için arama kriteri var mı ona bakıldıktan sonra
eğer line için arama girilmiş ise and bağlacı ile 2. koşul da sağlanma şartı eklemek
1 - If Len(linesearchtxtbox & "") > 0 Then stLinkCriteria = "[line]=" & [linesearchtxtbox] bu satır ile line alanı için kriter girilmiş mi o kontrol edilir
2 - If Len(modelsearchtxtbox & "") > 0 Then stLinkCriteria = stLinkCriteria & IIf(Len(stLinkCriteria & "") = 0, "", " and ") & "[model]=" & "'" & [modelsearchtxtbox] & "'"
buradaki IIf(Len(stLinkCriteria & "") = 0, "", " and ") line alanı dolu ise and bağlacı eklenir, boş ise bir şey eklemez
her 2 arama alanı doluysa sonuç:
stLinkCriteria -->"line=SayıLineArama and model='MetinModelArama'"
______________________________________________________________________________________________
2 kriter tek olduğundan burada çok önemli değil ama aşağıdaki mantık 2den fazla kriter için daha uygun olur bence
Dim stLinkCriteria As String
stLinkCriteria = ""
If Len(linesearchtxtbox & "") > 0 Then stLinkCriteria = stLinkCriteria & " and [line]=" & [linesearchtxtbox]
If Len(modelsearchtxtbox & "") > 0 Then stLinkCriteria = stLinkCriteria & " and [model]=" & "'" & [modelsearchtxtbox] & "'"
stLinkCriteria = Mid(stLinkCriteria, 6)
Me.Filter = stLinkCriteria
Me.FilterOn = True
böylece aynı şablon üzerinden istediğimiz kadar kriter ekleyebiliriz tek değiştirilmesi gereken alan adları ve atanacak metin kutusu adı olur