Ana Form Üzerindeki Tarih Alanlarından Altformu Filtrelemek

1 2 3
11/12/2021, 22:32

M_Kemal_Askeri

Herkese merhabalar,

Üzerinde çalıştığım veritabanında "Frm_Site_Tesis_Uye_ve_Ucret_Takip_Tablosu" ana formundaki "Metin10" ve "Metin12" tarih alanlarında seçtiğim değerlere göre "AltForm_Site_Tesis_Uye_ve_Ucret_Takip_Tablosu" altformundaki "BasTrh" ve "BitTrh" alanlarını SORGULA düğmesine basarak filtrelemek istiyorum (veya daha uygun bir yol ile de olabilir). Altformun sorugusunda ilgili alanların altına kriterleri yazdım (SorguOrnek) olarak mesajıma ekledim. Düğme altına bilgim dahilinde bir SELECT cümlesi yazmak istedim ama olmadı. Sildim.
Sitede tek tarihli örnekleri inceledim ama istediğim özellikte bulamadım.
Konuyla ilgili örnek ve resimleri ekledim. Yardımcı olabilirseniz sevinirim.
Sağlıcakla kalın.
12/12/2021, 13:12

berduş

yapmaya çalıştığınız şeyi tam olarak anlamadım
altform filtrelenecek ama neye göre?
sorguda 2 tarih alanı var
diyelim ki siz sadece metin10'a tarih girdiniz sorgu sadece ilgili sitedeki kayıtlardan meti10daki tarihe eşit olanları mı alacak aynı şey metin12 içinde geçerli
1 - altformun sorgu kaynağından filtreleri silip
2 - butonun tıklanma olayına aşağıdaki kodu yazıp dener misiniz?
Private Sub Komut38_Click()
StrFiltre = ""
If Len(Me.Metin10 & "") > 0 Then StrFiltre = " and [BasTrh]=" & CLng(Me.Metin10)
If Len(Me.Metin12 & "") > 0 Then StrFiltre = " and [BitTrh]=" & CLng(Me.Metin12)
StrFiltre = Mid(StrFiltre, 6)
Me.AltForm_Site_Tesis_Uye_ve_Ucret_Takip_Tablosu.Form.Filter = StrFiltre
Me.AltForm_Site_Tesis_Uye_ve_Ucret_Takip_Tablosu.Form.FilterOn = True
End Sub
12/12/2021, 16:02

M_Kemal_Askeri

Sayın berduş cevabınız için teşekkür ederim.
yapmak istediğim tam olarak altformu Metin10 ve Metin12 arasındaki tarihler için sorgulamak. Bunu yaparak ana form üzerinde o tesis için o tarihler arasında ödenen ücret miktarını ana form üzerinde göstermek ve bu ücreti de Sitenin gelirler tablosuna aktarmak. Bu kısmı tamam. Asıl veri tabanında bunu yaptım.
Sizin verdiğiniz kodu aynen Komutun altına yazdım. Altformdaki kriterleri de sildim. Ama sorguladığım zaman kayıtlı verileri göstermedi. Koda göre yaptığım sorgulamanın ilk ve sorgulanmış görüntülerini de ekledim.
Bugün tekrar başka bir yolla deneme yaptım. Altformun altına ilgili alanların her ikisine de aynı "Between [Forms]![Frm_Site_Tesis_Uye_ve_Ucret_Takip_Tablosu]![Metin10] And [Forms]![Frm_Site_Tesis_Uye_ve_Ucret_Takip_Tablosu]![Metin12]" kriterini yazdım Komutun altına da sadece "Me.AltForm_Site_Tesis_Uye_ve_Ucret_Takip_Tablosu.Requery" yazdım çalıştı. Birkaç defa denedim hata vermedi şu ana kadar.
Ama ben Komutun altında kod olmasını tercih ederim..O da benim Access bilgimi aşıyor...
12/12/2021, 16:12

berduş


12/12/2021, 21:23

berduş

diyelim ki deneme-1 sitesine ait 2 kayıt var
1. kaydın
başlangıç tarihi: 8.12.2021
bitiş tarihi      :15.12.2021     
2. kaydın
başlangıç tarihi: 8.12.2021
bitiş tarihi      :11.12.2021
siz
metin10'a : 9.12.2021
metin12'ye:14.12.2021 tarihlerini girdiniz between kullanırsanız hiç bir kaydı göstermez oysa bu 2 kayıt da bu aralıkta yani bu 2 tarih arasında ödeme alınmış yani aslında bu 2 kaydın da gösterilmesi gerekmez mi?
daha farklı kombinasyonları düşünün between ve and kullanıldığı için her zaman  başlangıç ve bitiş tarihleri, metin10 ve 12 arasında olmak zorunda oysa metin10 ve 12ye girdiğiniz tarihler ya sadece başlangıç yada bitiş tarihini içeriyorsa o durumda ne olacak
mesela
metin10'a : 6.12.2021
metin12'ye:11.12.2021 ise hangi kayıtlar gösterilecek yada
metin10'a : 11.12.2021
metin12'ye:16.12.2021 ise?
Not: eklediğiniz çalışmada Tbl_Site_Tesis_Uye_Kayit tablosundaki ID'ler 0 dolayısıyla Tbl_SiteAd tablosundaki hiç bir siteye ait değil
12/12/2021, 22:08

M_Kemal_Askeri

Sayın berduş,

söylediklerinize katılıyorum. Sizin yazdığınız kodu da yazdım, kriterleri sildim ve denedim. Ama bende çalışmadı. Bilmiyorum arada kaçırdığım husus var mı? Kod çalışmayınca ben de bu yolu between kullandım. SiteID uyarınıza gelince o durumu esas veritabanında düzelttim.
Sizin kodunuzu mesaja eklediğim örneğe uygulayabilir misiniz? ben de o örneği indirip kendi bilgisayarımda deneyeyim. Ama inanın tüm dediklerinizi yapıp denedim olmadı.
1 2 3