[SORGU] Lıke Ve ın Operatörleri Hakkında
#1
access-sql-6 
Arkadaşlar herkese merhaba. Metin içinden aldığım ve belirli şartları sağlayan kelime ve sayıları kullanarak sorgu yapıyorum. Ancak bir noktada sorun yaşar oldum, sorunum şu şekilde.

Aşağıdaki metni parçalayarak bu kodları alıyorum. Sayısal olarak bütün kodlar 6 basamaklı sayıdan oluşmakta ancak başlarında S, SP, L, BT, R, SA gibi bazı karakterler var. Ben önce sağdan 6 karakter alıp sorgunun içinde IN(....) operatörü ile kullanıyordum ancak BT100050 ile S100050 kodları tamamen farklı olmasına karşın ben sağdan 6 karakter ile kriter oluşturduğum için her ikisi de geliyordu. Ben ise bunu istemiyorum. LİKE sadece metinde, IN ise sadece sayısal ifadelerde kullanılıyor. Hem metin hemde sayısal ifade içeren birden fazla değeri sorgumuza nasıl dahil edebiliriz?

BT100050, BT100060, BT100140, BT100150, BT100200 ile birlikte faturalandırılmaz. (Bu metin içindeki BT100040 gibi kodlar tamamen karışıkta gelebilir. BT ile SP veya L veya hepsi birden aynı metin içinde de olabilir)



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(liste.Column(7))
  6.      sayi = Mid(UCase(liste.Column(7)), i, 1)
  7.      
  8.      If IsNumeric(sayi) = True Then
  9.         sayim = sayim & sayi
  10.        
  11.      ElseIf IsNumeric(sayi) <> True Then
  12.      
  13.        If sayi = "P" Or sayi = "S" Or sayi = "L" Or sayi = "B" Or sayi = "T" Or sayi = "A" Or sayi = "R" Then
  14.        
  15.        sayim = sayim & sayi
  16.        
  17.        ElseIf sayi <> "P" Or sayi <> "S" Or sayi <> "L" Or sayi <> "B" Or sayi = "A" Or Or sayi = "R" 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 & "'" & right(Replace(Mid(v(sw), 1, 8), " ", vbNullString), 6) & "',"
  29. Next sw
  30. If Kosulum <> "" Then
  31.    Kosulum = "((Right(srg_bakanlik_kodlari.KOD,6)) 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:
#2
Bu soruyu daha önce de sormuştunuz yanılmıyorsam.



  Alıntı
Bu mesajı beğenenler:
#3
(25-05-2021, 12:15)halily demiş ki: Bu soruyu daha önce de sormuştunuz yanılmıyorsam.

Evet haklısın. O sorumun neticesinde böyle bir çözüm üretilmişti. Ama kodlarda revizyon oldu ve sorun yaşamaya başladım.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
access-sql-9 [SORGU] ın Ve Like Operatörleri alperalper 16 739 16-08-2020, 00:46
Son Mesaj: halily
  [SORGU] Dcount Içerisinde Lıke Kullanımı ozgurgun 3 841 09-01-2020, 17:20
Son Mesaj: ozgurgun
  [SORGU] LİKE SEÇTİRME SORUNU TENGİZ 12 4.060 19-01-2012, 09:45
Son Mesaj: TENGİZ
  [VBA] If Else hakkında sonerdursun 7 4.058 12-11-2011, 14:30
Son Mesaj: sonerdursun

Foruma Git:


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