Çok Kriterli Form Filtresi Uygulamada Opsiyonel Değişken Kullanımı - Baskı Önizleme +- AccessTr.neT (https://accesstr.net) +-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html) +--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html) +--- Konu Başlığı: Çok Kriterli Form Filtresi Uygulamada Opsiyonel Değişken Kullanımı (/konu-cok-kriterli-form-filtresi-uygulamada-opsiyonel-degisken-kullanimi.html) |
Çok Kriterli Form Filtresi Uygulamada Opsiyonel Değişken Kullanımı - tarkanaykın - 16/04/2022 düzeltiyorum, sayın berduş hocamın verdiği kod gayet işimi gördü onu uyarlayınca işim tamam, ama yine de bu tarz yapabilir miyim diye sormaktan kendimi alamadım, aşağıda... merhaba değerli arkadaşlar, and bağlacı ile çok kriterli form filtresi uygulamada sıkıntım yok ama o kriterlerin hepsinin opsiyonel olmasını istiyorum çünkü normal and bağlacıyla yaptığımdan, diyelimki ben o an, iki kriterli filtre uygulamak istiyorum, sadece ikisini baz alsın, üç olunca üçünü.... yani şöyle ; diyelimki beş değişkenli , and bağlcıyla bağlanmış bir filtre stringim var, icabında ikisini seçeyim diyorum diğerleri de değer beklediğinden hata veriyor, bu konuda çok düşündüm bi sonuca varamadım, yardımcı olur musunuz? Dim a As String Dim b As Variant Dim c As Variant a = Me.acilan.Column(1) b = Me.tarih1.Value c = Me.tarih2.Value Call suz(a, b, c) Function suz(Optional sinif As String, Optional tarih1 As Variant, Optional tarih2 As Variant) As Variant Me.surecAltForm.Form.Filter = "siniflar.sinifAdi='" & sinif & "'" & " And " & "'" & [islemTarihi] & "' Between #" & Format(tarih1, "mm\/dd\/yyyy") & "# And #" & Format(tarih2, "mm\/dd\/yyyy") & "#" Me.surecAltForm.Form.FilterOn = True End Function RE: Çok Kriterli Form Filtresi Uygulamada Opsiyonel Değişken Kullanımı - berduş - 17/04/2022 temel mantık aynı bu sefer metin kutularının adı yerine atama yaptığınız değişkenler kullanılacak
yerine
function yerine sub kullanabilirsinizfonksiyon çıktı alır burada çıktı yok eylem var o nedenle sub tercih edilmelidir RE: Çok Kriterli Form Filtresi Uygulamada Opsiyonel Değişken Kullanımı - tarkanaykın - 17/04/2022 çok teşekkür ederim sayın berduş, sub uyarısı için de ayrıca teşekkürler, verdiğiniz kodun işleyiş mantığını çözdüm de yalnız şu StrFiltre = Mid(StrFiltre, 6) ne anlam taşıyor, işlevini biliyorum da diğer kodlarla ne alakası var onu da öğrenebilir miyim? yanlış bilmiyorsam stringin ortasından itibaren 6 tane alıyor ama ne alıyor niçin alıyor? ya da eksik mi biliyorum? RE: Çok Kriterli Form Filtresi Uygulamada Opsiyonel Değişken Kullanımı - berduş - 17/04/2022 If Len(sinif & "") > 0 Then StrFiltre = " and [siniflar.sinifAdi]='" & sinif & "'" If Len(tarih1 & "") > 0 Then StrFiltre = StrFiltre & " and [surec.İslemTarihi]>=" & CLng(tarih1) If Len(tarih2 & "") > 0 Then StrFiltre = StrFiltre & " and [surec.İslemTarihi]<=" & CLng(tarih2) kodlara dikkat ederseniz hepsinin başına and eklenmiş ilk and fazladan onu silmek için ilk 5 karakteri koşuldan çıkarmak gerek yoksa sorgu hata verir eğer ilk and çıkmazsa kriter aşağıdaki gibi alınır " and [siniflar.sinifAdi]='sınıf'" & " and [surec.İslemTarihi]>=tarih and [surec.İslemTarihi]<=tarih" Mid(StrFiltre, 6) ile and silinince "[siniflar.sinifAdi]='sınıf'" & " and [surec.İslemTarihi]>=tarih and [surec.İslemTarihi]<=tarih" RE: Çok Kriterli Form Filtresi Uygulamada Opsiyonel Değişken Kullanımı - tarkanaykın - 17/04/2022 eyvallah, anladım bunu bir kenara not etmeye gerek yok çünkü mantığını anladım, sadece dikkat edilmesi gereken bir durum, sağolun |