AccessTr.neT

Tam Versiyon: Formda Süz İşlemi
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Arkadaşlar formda birkaç harf ile süzme işlemi yapmak istiyorum. Site içerisinde aradım aşağıdaki kodu buldum

Sub Suzgec3()
Dim Suz As String
DoCmd.RunCommand acCmdRemoveFilterSort
If InStr(1, Me.Metin131, "*") = 0 Then Suz = Suz & "[Eser Adı]='" & Me.Metin131 & "' And " Else Suz = Suz & "[Eser Adı] Like '*" & Me.Metin131 & "*' And "
Me.Filter = Mid(Suz, 1, Len(Suz) - 4)
Me.FilterOn = True
End Sub


metin131 alanına mehmet yazdığımda eser adı alanında mehmet yazanları getiriyor.
metin131 alanına meh yazdığımda eser adı alanındaki meh içeren tüm kayıtlar gelsin istiyorum fakat yapmıyor.
If InStr(1, Me.Metin131, "*") = 0 Then Suz = Suz & "[Eser Adı]='" & Me.Metin131 & "' And " Else Suz = Suz & "[Eser Adı] Like '*" & Me.Metin131 & "*' And "
neden en sonda and var?
sondaki And ler fazla gibi geldi, onları silip dener misiniz?
Not: lütfen her soruya örnek dosya ekleyin
İlk mesajıma örnek ekledim. And leri kaldırdım fakat olmadı.
(18/12/2023, 16:20)berduş yazdı: [ -> ]sondaki And ler fazla gibi geldi
kusura bakmayın dikkatimden kaçmış Me.Filter = Mid(Suz, 1, Len(Suz) - 4) kodu ile zaten sondaki and siliniyormuş
eklediğiniz dosyayı inceledim kod sorusuz çalışıyor
Not: kodda tek sorun önce gereksiz yere and ekleyip sonra da onu almamak için gereksiz işlem yapması
aslında aşağıdaki kod yeterliydi
Sub Suzgec2()
Dim Suz As String
DoCmd.RunCommand acCmdRemoveFilterSort
If InStr(1, Me.Metin5, "*") = 0 Then Suz = Suz & "[Eser Adı]='" & Me.Metin5 & "'" Else Suz = Suz & "[Eser Adı] Like '*" & Me.Metin5 & "*'"
Me.Filter = Suz
Me.FilterOn = True
End Sub

Not 2: yada çok daha basiti tek kodun kullanılması
mesela aşağıdaki kodu kullanırsanız
Sub Suzgec2()
Dim Suz As String
DoCmd.RunCommand acCmdRemoveFilterSort

Suz = "[Eser Adı] Like '*" & Me.Metin5 & "*'"
Me.Filter = Suz
Me.FilterOn = True
End Sub

"ahmet"'i arıyorsanız sadece "ahmet"
"ah" ile başlayanları aramak için "*ah"
"ah" ile bitenleri aramak için "a*h"
"ah" içerenleri aramak için "*ah*"
gibi yaparsanız çok daha esnek olur
İkinci verdiğiniz kod tam aradığım gibi çok teşekkür ediyorum.
Elinize emeğinize sağlık.
rica ederim
iyi çalışmalar)