Private Sub liste_AfterUpdate()
kodu = liste.Column(6)
islemadı = liste.Column(7)
'acıklama = liste.Column(8)
islem_turu = liste.Column(1)
islem_grubu = liste.Column(4)
yıldızlı_islem = liste.Column(5)
yururluk_tarihi = liste.Column(3)
If Len(liste.Column(8) & "") = 0 Then
acıklama = liste.Column(8)
ListeFaturaEdilemez.RowSource = ""
ListeFaturaEdilemez.Requery
Exit Sub
End If
Dim SQLBx, TblAdi As String
Dim Kosulum As String
Sqltbl_kamu = "SELECT tbl_kamu.id AS ID, tbl_kamu.tür AS TÜR, yili AS YIL, " & _
"yururluk_tarihi AS [YÜRÜRLÜK TARİHİ], '' AS GRUBU, " & _
"'' AS YILDIZLI, kodu AS KOD, islem_adi AS ADI, " & _
"aciklama AS AÇIKLAMA, '' AS PUAN, Format([fiyat],'Currency') AS FİYATI " & _
"FROM tbl_kamu"
Sqltbl_sut_2b = "SELECT tbl_sut_2b.id AS ID, tbl_sut_2b.tür AS TÜR, yili AS YIL, " & _
"yururluk_tarihi AS [YÜRÜRLÜK TARİHİ], '' AS GRUBU, " & _
"'' AS YILDIZLI, kodu AS KOD, islem_adi AS ADI, " & _
"aciklama AS AÇIKLAMA, islem_puani AS PUAN, Format([islem_puani]*0.593,'Currency') AS FİYATI " & _
"FROM tbl_sut_2b"
Sqltbl_sut_2c = "SELECT tbl_sut_2c.id AS ID, tbl_sut_2c.tür AS TÜR, yili AS YIL, " & _
"yururluk_tarihi AS [YÜRÜRLÜK TARİHİ], islem_grubu AS GRUBU, " & _
"yildizli_islem AS YILDIZLI, kodu AS KOD, islem_adi AS ADI, " & _
"aciklama AS AÇIKLAMA, islem_puani AS PUAN, " & _
"Format([islem_puani]*0.593,'Currency') AS FİYATI " & _
"FROM tbl_sut_2c"
Sqltbl_turist = "SELECT tbl_turist.id AS ID, tbl_turist.tür AS TÜR, yili AS YIL, " & _
"yururluk_tarihi AS [YÜRÜRLÜK TARİHİ], '' AS GRUBU, " & _
"'' AS YILDIZLI, kodu AS KOD, islem_adi AS ADI, " & _
"aciklama AS AÇIKLAMA, '' AS PUAN, Format([fiyat],'Currency') AS FİYATI " & _
"FROM tbl_turist"
SQLBx = Switch(islem_turu = "Kamu", Sqltbl_kamu, _
islem_turu = "Ek-2B", Sqltbl_sut_2b, _
islem_turu = "Ek-2C", Sqltbl_sut_2c, _
islem_turu = "Turist", Sqltbl_turist)
TblAdi = Switch(islem_turu = "Kamu", "tbl_kamu", _
islem_turu = "Ek-2B", "tbl_sut_2b", _
islem_turu = "Ek-2C", "tbl_sut_2c", _
islem_turu = "Turist", "tbl_turist")
'______________________________________________
Dim AciklamaRs As DAO.Recordset
Dim AciklamaSql As String
AciklamaSql = "SELECT " & TblAdi & ".id, " & TblAdi & ".aciklama " & _
"FROM " & TblAdi & _
" where " & TblAdi & ".id=" & liste.Column(0)
Set AciklamaRs = CurrentDb.OpenRecordset(AciklamaSql, dbOpenDynaset)
acıklama = Nz(AciklamaRs(1))
'_____________________________________________
Kosulum = Sayim(acıklama)
SQLBx = SQLBx & Kosulum & " ORDER BY yili DESC;"
SQLBx = IIf(Len(Kosulum & "") = 0, "", SQLBx)
ListeFaturaEdilemez.RowSource = SQLBx
ListeFaturaEdilemez.Requery
End Sub
Sayim fonksiyonun kodu:Function Sayim(Aciklama As String) As String
Dim RegEx As Object, metin As String
Set RegEx = CreateObject("VBScript.RegExp")
RegEx.Pattern = "[a-zA-Z]{0,3}[0-9]{6}" '"[a-zA-Z]{0,3}[0-9]+"
RegEx.Global = True
RegEx.MultiLine = True
'RegEx.Execute (Aciklama)
Set eslesmeler = RegEx.Execute(Aciklama)
KelimeSayisi = eslesmeler.Count
For Each Kelime In eslesmeler
Kosulum = Kosulum & "','" & Kelime.Value
Next
If Kosulum <> "" Then Kosulum = " where ((KODU) IN (" & Mid(Kosulum, 3) & "'" & ")) " Else Kosulum = ""
Sayim = Kosulum
End Function
Dilerim işinize yarariyi çalışmalar)