[FORM] Ana Form üzerindeki Tarih Alanlarından Altformu Filtrelemek
#1
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.


Eklenti Dosyaları
.rar   Site_Apartman_Yonetimi__Ornek.rar (Boyut: 635,27 KB / İndirilme: 37)
.png   SorguOrnek.png (Boyut: 109,52 KB / İndirilme: 43)
.png   UcretOrnek.png (Boyut: 317,58 KB / İndirilme: 41)



  Alıntı
Bu mesajı beğenenler:
#2
metin12 silip, Metin10 ile başlama - bitiş tarihleri arasında YIL-DONEM odendi alani isaretli olan kayıtların Tbl_Apt_Gelir_Tablosu'na aktarılması yapılabilir.
Visual Basic
  1. Private Sub Komut38_Click()
  2. Dim Kyt As New ADODB.Recordset, BUL As Double, SQLa As String
  3. SQLa = "SELECT TesisID, AptID, Sum(TopUcret) As Toplam FROM Tbl_Site_Tesis_Uye_Kayit WHERE (((TesisID)=" & Me.SiteID & ") And ((Odendi)=-1) And ((#" & Format(Me.Metin10, "mm\/dd\/yyyy") & "#) Between BasTrh and BitTrh)) GROUP BY TesisID, AptID ORDER BY TesisID, AptID"
  4. Debug.Print SQLa
  5. Kyt.Open SQLa, CurrentProject.Connection, adOpenStatic, adLockReadOnly
  6. If Kyt.RecordCount = 0 Then MsgBox "yok": Exit Sub
  7.    Do Until Kyt.EOF
  8.         CurrentDb.Execute "INSERT INTO Tbl_Apt_Gelir_Tablosu (SiteID, AptID, GlrYili, GlrDonemi, GlrAy, GlrMik) " & _
  9.        "VALUES(" & Kyt!TesisID & ", " & Kyt!AptID & ", '" & Year(Me.Metin10) & "', '" & MonthName(Month(Me.Metin10), False) & "', '" & Month(Me.Metin10) & "', " & Kyt!Toplam & ")"
  10.   Kyt.MoveNext
  11.    Loop
  12.    Kyt.Close: Set Kyt = Nothing
  13. End Sub


prosedürü ile sonuç alınabilir.



  Alıntı
Bu mesajı beğenenler:
#3
Sayın dsezgin,
cevabınız için çok teşekkür ederim. Anladığım kadarı ile çözümünüzde sadece başlangıç tarihini esas alıyoruz. Yani o tarihte başlayan ama bitiş tarihi ne olursa olsun göstersin diyoruz. Yazdığınız kodu kendi örneğim üzerinde denedim. Metin12 yi sildim ama kod çalışmadı. Hiç veri göstermedi. belki benim gözden kaçırdığım bi husus olabilir. Ben kendim BasTrh ve BitTrh altına aynı kriteri yazarak "Between [Forms]![Frm_Site_Tesis_Uye_ve_Ucret_Takip_Tablosu]![Metin10] And [Forms]![Frm_Site_Tesis_Uye_ve_Ucret_Takip_Tablosu]![Metin12]" ve komut altına sadece "Me.AltForm_Site_Tesis_Uye_ve_Ucret_Takip_Tablosu.Requery" yazarak bir sonuca ulaştım. Bu örneği de ekliyorum. Acaba sizin yazdığınız kodu örnek üzerinde uygulamanız mümkün mü?

Ayrıca şunu da ilave etmek isterim ki, AptID'nin üye ve ücret yazımı için önemi yok. Çünkü tabloya AptID koymamın tek sebebi özellikle "Misafir" lerin kimin misafiri olarak girdiğini gösterebilmektir. yani Misafir sahibi apartman sakininin hangi apartmanda olduğunu gösterebilmek için. Üyeleri de doğrudan Siteye (SiteID) bağlamadım sadece tesise (TesisID) bağladım. Kodda yeniden değerlendirmek istersiniz diye yazıyorum bu hususları da.
Sağlıcakla kalın.


Eklenti Dosyaları
.rar   Site_Apartman_Yonetimi_Ornek2.rar (Boyut: 613,04 KB / İndirilme: 40)



  Alıntı
Bu mesajı beğenenler:
#4
(12-12-2021, 22:23)M_Kemal_Askeri demiş ki: Anladığım kadarı ile çözümünüzde sadece başlangıç tarihini esas alıyoruz. Yani o tarihte başlayan ama bitiş tarihi ne olursa olsun göstersin diyoruz.
Yok öyle değil, Tek dizine ait başlama ve bitiş tarihleri arasındaki tüm tarihleri içermektedir. Başlangıç tarihi 01.01.2021, Bitiş tarihi 01.03.2021 olursa bu iki tarih arasındaki ödenen miktarın değerlendirilecek anlamında. Baslama-bitis tarihleri bos olduğunda tesisid ile ilgili kayıtları gösterilmiyor.

Öneri prosedürü süzgeç işlemi yapmayıp, gelirler tablosuna kaydı eklemekteydi.


.rar   Site_Apartman_YonetimiMKAsk.rar (Boyut: 614,14 KB / İndirilme: 58)

Beklenen-Odenen düğmesiyle, demeye çalıştığımı süzgeç uygulayarak örnekledim.



  Alıntı
Bu mesajı beğenenler:
#5
Sayın dsezgin,

örneği indirdim ve bilgisayarımda çalıştırdım. Birkaç defa denedim ve aşağıdakileri fark ettim:
1. örnekteki ilk tarihi yazıp tuşa bastığımda o tarihi altformda gösterdi.
2. ikinci defada ikinci tarihi girdiğimde ilk tarih ve ve girdiğim ikinci tarihi verdi.
3. ilk tarihi bir daha yazdığımda "yok" dedi. daha sonra her girdiğimde hangi tarihi yazarsam yazayım "yok" dedi. kapattım açtım ama yine de istikrarlı bir sonuç vermedi.
acaba access versiyon değişikliği mi var ben 2016 kullanıyorum. referansları dakontrol ettim aynı.
size ilk aldığım sonucun görüntüsünü gönderiyorum.


Eklenti Dosyaları
.png   Sonresim.png (Boyut: 368,26 KB / İndirilme: 43)



  Alıntı
Bu mesajı beğenenler:
#6
(13-12-2021, 22:41)M_Kemal_Askeri demiş ki: örneği indirdim ve bilgisayarımda çalıştırdım. Birkaç defa denedim ve aşağıdakileri fark ettim:
1. örnekteki ilk tarihi yazıp tuşa bastığımda o tarihi altformda gösterdi.
2. ikinci defada ikinci tarihi girdiğimde ilk tarih ve ve girdiğim ikinci tarihi verdi.
3. ilk tarihi bir daha yazdığımda "yok" dedi. daha sonra her girdiğimde hangi tarihi yazarsam yazayım "yok" dedi. kapattım açtım ama yine de istikrarlı bir sonuç vermedi.
acaba access versiyon değişikliği mi var ben 2016 kullanıyorum. referansları da kontrol ettim aynı.
size ilk aldığım sonucun görüntüsünü gönderiyorum.

Versiyonla ilgili olduğunu sanmıyorum.

Beklenen tuşu ilk etapta, ödeme alanı işaretli olmayan iki tarih arası arama yapmakta. Eğer beklenen tuş basılı ise ödendi alanı işaretli olan, yani ödeme yapılan ve gelir tablosuna aktarma yapılan kayıtlar süzdürülmekte. SQLa koşul bölümüne bakarsan süzgeç mantığı anlaşılır.
Ödemenin haricindeki beklenen kayıtları görmek istendiğini tahminen ikili süzgeç önermiştim.

Bilanço veya Gelir tablosunda yıl ve ay(Donem) olarak gelirin toplamı kaydedilecekse, Tbl_Site_Tesis_Uye_Kayit tablosunda Ödendi işaretinin atıldığı tarih gerekir diye aklıma geldi. Erken ödeme ve geç ödemenin zamanı gelirin üyelik tarihleri arasında olmadığı zaman dönemsel gelirin eksik-fazla durumu sorun olmaz mi? İki tarih arası yazmaktansa yıl ve ay ile ödenen gelirin aktarılması daha uygun gibi geldi.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  [FORM] Web Browser üzerindeki Doğrulama serdem48 0 286 18-08-2023, 14:34
Son Mesaj: serdem48
  Ana Menüden 2.form Açtığımda Form Görev çubuğuna Inmiyor. 32'den 64'e Geçiş Hatası OGUZTURKYILMAZ 3 673 13-04-2023, 23:39
Son Mesaj: OGUZTURKYILMAZ
  Altformu Tıklayarak Diğer Altformda Veri Görüntülemek M_Kemal_Askeri 2 499 08-06-2021, 21:15
Son Mesaj: M_Kemal_Askeri
  [FONKSiYON] Mevcut Tarih Verileri Baz Alınarak +iş Günü Ilavesi Ile Ileri Süreli Tarih Bulmak. osmanorman 10 2.024 03-03-2021, 12:38
Son Mesaj: dsezgin
  [FORM] Tarih Seçici / Tarih Formatı h2001 5 1.540 15-01-2020, 22:55
Son Mesaj: dsezgin
  [FORM] Form üzerindeki Değer(ler)in Yine Form üzerindeki Bir Değere Göre Girme Zorunluluğu alperutku 7 1.554 23-12-2019, 14:25
Son Mesaj: alperutku
  çerçeve Seçimine Göre Alt Formu Filtrelemek Mecnun24 8 1.237 08-12-2019, 15:13
Son Mesaj: Mecnun24
access-sql-9 [FORM] Form Ana Sayfasında Tarih Göstermeme Sorunu denizediz 3 726 27-09-2019, 14:38
Son Mesaj: denizediz

Foruma Git:


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