AccessTr.neT

Tam Versiyon: Like İle Filtreleme Problemi
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
iyi günler malumunuz 
Like "*" & metin & "*"
ile arama yaparken mesela ismi "Mehmet Yıldırım" olan birisini
meh*yıl
şeklinde arayabiliyoruz. Ama bazen isim ile soyismi yerini değiştirerek "Yıldırım Mehmet" yazılabiliyorlar bu durumda doğru sonuç vermiyor 
veya hastanın 
Hipertansiyon, Diabet, Astım
var diğer hastanın ise 
Hipertansiyon, Astım, Diabet
bir başkasının ise
Astım, Diabet, Hipertansiyon  u var. hepsinde aynı hastalıklar var ama yerleri farklı sırada yazılmış

bunu ararken mesela 
hip*as*dia
yazdığımda hastalıklar hangi sırada yazıldığı önemli olmadan her üç hastayıda bize listelese
bunu nasıl yazmak lazım
Örnek ekleyiniz...
örnek ektedir. burada virgül ile ayrılmış hastalıklar her seferinde farklı sırada yazılabiliyor
nasıl yaparsak hangi sırada olduğu farketmeden filtreleyebliriz
Ekteki örnek işinizi görüyormu ? İncelermisiniz...
aramalar arasına 1 boşluk bırakmalısınız buton kodu
Dim AraStr() As String
Dim SqlStr As String
Dim xBit, xBas As Integer

Me.Metin5.Value = Trim(Me.Metin5.Value)
If Len(Me.Metin5 & "") = 0 Then Exit Sub

AraStr = Split(Me.Metin5, " ")
xBit = UBound(AraStr)
xBas = LBound(AraStr)
LstSql = "SELECT kron.kronik FROM kron GROUP BY kron.kronik, kron.[kronik] having  "
For x = xBas To xBit
    SqlStr = SqlStr & " and [kronik] like '*" & AraStr(x) & "*'"
Next x
   LstSql = LstSql & Mid(SqlStr, 5)
   Me.Liste1.RowSource = LstSql

mesela alerji ve depresyon için
Kod:
erj es
yazmanız yeterli
(07/05/2020, 18:14)POWER yazdı: [ -> ]Ekteki örnek işinizi görüyormu ? İncelermisiniz...
elinize sağlık çok güzel olmuş

(07/05/2020, 18:43)berduş yazdı: [ -> ]aramalar arasına 1 boşluk bırakmalısınız buton kodu
Dim AraStr() As String
Dim SqlStr As String
Dim xBit, xBas As Integer

Me.Metin5.Value = Trim(Me.Metin5.Value)
If Len(Me.Metin5 & "") = 0 Then Exit Sub

AraStr = Split(Me.Metin5, " ")
xBit = UBound(AraStr)
xBas = LBound(AraStr)
LstSql = "SELECT kron.kronik FROM kron GROUP BY kron.kronik, kron.[kronik] having  "
For x = xBas To xBit
    SqlStr = SqlStr & " and [kronik] like '*" & AraStr(x) & "*'"
Next x
   LstSql = LstSql & Mid(SqlStr, 5)
   Me.Liste1.RowSource = LstSql

mesela alerji ve depresyon için
Kod:
erj es
yazmanız yeterli
ellerinize sağlık çok güzel çalışıyor