[SORGU] ın Ve Like Operatörleri
#7
RegEx fonksiyonu da olabilir belki, regex ile şablon kelimeler bulunabiliyor,. Doğrudan sorgu içinde kullanılabilir mi bilmiyorum ama fonksiyona dönüştürülüp kullanılabilir belki.



  Alıntı
Bu mesajı beğenenler:
#8
Bulduğum değerleri tek tek geçici bir tablo içine atıp oradan form üzerinde göstermek seçeneği aklıma geliyor lakin buda gereksiz yığınla işlem yükü olacak.



  Alıntı
Bu mesajı beğenenler:
#9
Amacınız kod alanındaki değerin açıklamada olup olmadığını bulmak değil mi?
Öyle ise açıklama like "*" & kod & "*" kriteri işinize yaramaz mı?



  Alıntı
Bu mesajı beğenenler:
#10
(14-08-2020, 08:58)halily demiş ki: Amacınız kod alanındaki değerin açıklamada olup olmadığını bulmak değil mi?
Öyle ise açıklama like "*" & kod & "*"  kriteri işinize yaramaz mı?

Hocam tam tersi. Açıklamada yazan kodları parçalayıp tek tek alıyorum. sonra kod alanı ile eşleştirip uyanları listeliyorum. Örneğin diyorki SL100037 hizmetinin açıklamasında SL100024, 530130 ve 530160 ile fatura edilemez. Ben bu üç kodu alıp fatura edilemeyen hizmeti kod alanında arayıp bulup listeliyorum. Bu sayısal kodların başında bulunan ekler sabit ifadeler.

Şu şekilde bir revizyon yaptım galiba oldu. 

Visual Basic
  1. Function sayim(acıklama)
  2. Dim v As Variant, Kosulum As String
  3. Dim i As Integer
  4.  
  5.   For i = 1 To Len(acıklama)
  6.      sayi = Mid(UCase(acıklama), i, 1)
  7.      
  8.      If IsNumeric(sayi) = True Then
  9.         sayim = sayim & sayi
  10.        
  11.      ElseIf IsNumeric(sayi) <> True Then
  12.      
  13.        If sayi = "S" Or sayi = "L" Or sayi = "SL" Or sayi = "SP" Or sayi = "SA" Or sayi = "SPR" Then
  14.        
  15.        sayim = sayim & sayi
  16.        
  17.        ElseIf sayi <> "S" Or sayi <> "L" Or sayi <> "SL" Or sayi = "SP" Or sayi = "SA" Or sayi = "SPR" Then
  18.      
  19.        sayim = sayim & ","
  20.        
  21.        End If
  22.        
  23.      End If
  24.   Next i
  25.      
  26. v = Split(sayim, ",", , vbTextCompare)
  27. For sw = LBound(v) To UBound(v)
  28.    If IsNumeric(Mid(v(sw), 3, 1)) Then Kosulum = Kosulum & "'" & Replace(Mid(v(sw), 1, 8), " ", vbNullString) & "',"
  29. Next sw
  30. If Kosulum <> "" Then
  31.    Kosulum = "((srg_bakanlıkkodları.KOD) IN(" & Mid(Kosulum, 1, Len(Kosulum) - 1) & "))"
  32.        
  33. Else
  34.    Kosulum = vbNullString
  35. End If
  36.    sayim = Kosulum
  37. End Function





  Alıntı
Bu mesajı beğenenler:
#11
Peki şöyle olabilir mi
Once Tüm boşlukları virgülle değiştirip sonra tüm virgülleri de ',' (ayraç virgül ayrac) ile değiştirip IN ile kullansak tabi en başa ve en sona da kesme işareti ekleyerek



  Alıntı
Bu mesajı beğenenler:
#12
Onuda denedim. Açıklama kısmı dağınık.

Bu şekilde yazan kısım var:
701540 ve S701545  ile birlikte faturalandırılmaz.

Bu şekilde yazan kısım var:
Sadece üçüncü basamak sağlık hizmeti sunucuları tarafından faturalandırılır. 701360, SL701540 ve 701550  ile birlikte faturalandırılmaz. Biyopsi dahil



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
access-sql-6 [SORGU] Lıke Ve ın Operatörleri Hakkında alperalper 2 421 25-05-2021, 13:19
Son Mesaj: alperalper

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi