Skip to main content

AccessTr.neT


Tarih Ve Açılan Kutu Seçiminde Formda Requery Sorunu

Oğuz Türkyılmaz
Oğuz Türkyılmaz
27
3433

Tarih Ve Açılan Kutu Seçiminde Formda Requery Sorunu

Çözüldü #1
Merhaba
Uygulamadaki F_IsletmeDefteri Formu Açıldığında Bilgiler doğru bir şekilde geliyor ve hesaplamada bir sorun yok. Fakat açılan kutuda yada tarihte değişiklik yaptığımda 2 şekilde sorun oluşuyor. 
1- Tarih değiştirmeden sadece hesap turunu değiştirdiğimde hesap bakiye bilgisi Seçtiğim hesap turune göre doğru gelmesine ve  alt formların Requery kodları çalışmasına rağmen GiderToplamı ve GelirToplamı kutularında ki değerler tazelenmiyor formun ilk açıldığındaki şekliyle kalıyor.
Haliyle gelir ve gider tutarları metin kutularındaki değerler değişmediğinden hesaplama yanlış oluyor.

2- Aynı sorun Tarih bölümünde de değişiklik yapıldığında baş gösteriyor. Yazdığım kodlar aşağıda. 
Option Compare Database
Option Explicit


Private Sub Form_Current()

Me.TF_HesapHareketleriGiderAF.Requery
Me.TF_HesapHareketleriGelirAF.Requery

Me.HesapTuru_CBO.Requery
Me.HesapBakiyesi_TXT.Requery
Me.GelirToplami_TXT.Requery
Me.GiderToplami_TXT.Requery


Me.HesapBakiyesi_TXT = Dsum ("GirenTutar", "T_HesapHareketleri", "[HesapTuru]='" & Me.HesapTuru_CBO & _
                            "' and (Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & _
                            " And " & CLng(Tarih_TXT) - 1 & ")") - Dsum ("CikanTutar", "T_HesapHareketleri", "[HesapTuru]='" & _
                              Me.HesapTuru_CBO & "' and (Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & _
                              " And " & CLng(Tarih_TXT) - 1 & ")")
                             
Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]))
Me.GelirToplami_TXT = Dsum ("[GirenTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]))
'Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")
'Me.GelirToplami_TXT = Dsum ("[GirenTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")


End Sub

Private Sub Form_Load()

Me.HesapTuru_CBO = "Kasa TL"

Me.TF_HesapHareketleriGiderAF.Requery
Me.TF_HesapHareketleriGelirAF.Requery

Me.HesapBakiyesi_TXT = Dsum ("GirenTutar", "T_HesapHareketleri", "[HesapTuru]='" & Me.HesapTuru_CBO & _
                            "' and (Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & _
                            " And " & CLng(Tarih_TXT) - 1 & ")") - Dsum ("CikanTutar", "T_HesapHareketleri", "[HesapTuru]='" & _
                              Me.HesapTuru_CBO & "' and (Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & _
                              " And " & CLng(Tarih_TXT) - 1 & ")")

Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]))
Me.GelirToplami_TXT = Dsum ("[GirenTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]))
'Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")
'Me.GelirToplami_TXT = Dsum ("[GirenTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")
 


End Sub

Private Sub GelirFisi_BTN_Click()

DoCmd.OpenForm "F_GelirFisi"

End Sub

Private Sub GiderFisi_BTN_Click()

DoCmd.OpenForm "F_GiderFisi"

End Sub

Private Sub HesapTuru_CBO_AfterUpdate()

Me.TF_HesapHareketleriGiderAF.Requery
Me.TF_HesapHareketleriGelirAF.Requery

Me.HesapBakiyesi_TXT.Requery
Me.GelirToplami_TXT.Requery
Me.GiderToplami_TXT.Requery

Me.HesapBakiyesi_TXT = Dsum ("GirenTutar", "T_HesapHareketleri", "[HesapTuru]='" & Me.HesapTuru_CBO & _
                            "' and (Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & _
                            " And " & CLng(Tarih_TXT) - 1 & ")") - Dsum ("CikanTutar", "T_HesapHareketleri", "[HesapTuru]='" & _
                              Me.HesapTuru_CBO & "' and (Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & _
                              " And " & CLng(Tarih_TXT) - 1 & ")")



End Sub

Private Sub HesapTuru_CBO_Exit(Cancel As Integer)

Me.TF_HesapHareketleriGiderAF.Requery
Me.TF_HesapHareketleriGelirAF.Requery

Me.HesapBakiyesi_TXT.Requery
Me.GelirToplami_TXT.Requery
Me.GiderToplami_TXT.Requery

Me.HesapBakiyesi_TXT = Dsum ("GirenTutar", "T_HesapHareketleri", "[HesapTuru]='" & Me.HesapTuru_CBO & _
                            "' and (Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & _
                            " And " & CLng(Tarih_TXT) - 1 & ")") - Dsum ("CikanTutar", "T_HesapHareketleri", "[HesapTuru]='" & _
                              Me.HesapTuru_CBO & "' and (Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & _
                              " And " & CLng(Tarih_TXT) - 1 & ")")

End Sub

Private Sub Kapat_BTN_Click()

DoCmd.Close acForm, "F_IsletmeDefteri"

End Sub

Private Sub Tarih_TXT_AfterUpdate()

Me.HesapTuru_CBO.Requery
Me.HesapBakiyesi_TXT.Requery
Me.GelirToplami_TXT.Requery
Me.GiderToplami_TXT.Requery

Me.TF_HesapHareketleriGiderAF.Requery
Me.TF_HesapHareketleriGelirAF.Requery

End Sub

Private Sub Tarih_TXT_Change()

Me.HesapTuru_CBO.Requery
Me.HesapBakiyesi_TXT.Requery
Me.GelirToplami_TXT.Requery
Me.GiderToplami_TXT.Requery

End Sub

A-Form yuklendiğinde hesap doğru

[Resim: do.php?img=9835]

B- Hesap Türünü değiştirdiğimde Euro hesap Bakiyesi Geliyor Fakat Gider ve gelir toplamları bir çnceki ekrandaki nakit kasa tutarları olarak değişmediğinden Hesaplama yanlış oluyor. Resme göre euro olarak bir gider girişi ve çıkışı olmadığından Kalan ve devir bakiye tutarlarının 125 olarak gözükmesi gerekiyor.

[Resim: do.php?img=9836]

C- Tarihi değiştirdiğimde de bu sefer Hesap Bakiyesi bölümü de B şıkkında açıkladığım sorunların aynılarına ekleniyor.

 

[Resim: do.php?img=9838]
.rar İşletme Defteri.rar (Dosya Boyutu: 164,7 KB | İndirme Sayısı: 2)
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#2
1-)
Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]))
Me.GelirToplami_TXT = Dsum ("[GirenTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]))

şeklindeki kodlar sadece form geçerli olduğunda ve yüklendiğinde olaylarında var. Açılan kutunun ve tarih metin kutusunun güncelleştirme sonrası olaylarında kod yok.

2-) Alt formda açılan kutudan yapılan seçime göre filtreleme yapılıyor, hesaplamada ise HesapTuru ile ilgili bir koşul yok.
Cevapla
#3
Ozan Bey soylediklerinizi uyguladim hesaplamalarda sorun kalmadı sadece Tarihi değiştirdiğimde Hesap Türünü alanına illaki bir tıklanıp girilip çıkılması gerekiyor formun yeni hesaplamaları doğru göstermesi için. Bunu nasıl aşarım.
[Resim: do.php?img=9841]
2-
[Resim: do.php?img=9842]
3-
[Resim: do.php?img=9843]

4-
[Resim: do.php?img=9844]

Option Compare Database
Option Explicit


Private Sub Form_Current()

Me.TF_HesapHareketleriGiderAF.Requery
Me.TF_HesapHareketleriGelirAF.Requery

Me.HesapTuru_CBO.Requery
Me.HesapBakiyesi_TXT.Requery
Me.GelirToplami_TXT.Requery
Me.GiderToplami_TXT.Requery


Me.HesapBakiyesi_TXT = Dsum ("GirenTutar", "T_HesapHareketleri", "[HesapTuru]='" & Me.HesapTuru_CBO & _
                            "' and (Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & _
                            " And " & CLng(Tarih_TXT) - 1 & ")") - Dsum ("CikanTutar", "T_HesapHareketleri", "[HesapTuru]='" & _
                              Me.HesapTuru_CBO & "' and (Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & _
                              " And " & CLng(Tarih_TXT) - 1 & ")")
                             
'Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]))
'Me.GelirToplami_TXT = Dsum ("[GirenTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]))
Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")
Me.GelirToplami_TXT = Dsum ("[GirenTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")


End Sub

Private Sub Form_Load()

Me.HesapTuru_CBO = "Kasa TL"

Me.TF_HesapHareketleriGiderAF.Requery
Me.TF_HesapHareketleriGelirAF.Requery

Me.HesapBakiyesi_TXT = Dsum ("GirenTutar", "T_HesapHareketleri", "[HesapTuru]='" & Me.HesapTuru_CBO & _
                            "' and (Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & _
                            " And " & CLng(Tarih_TXT) - 1 & ")") - Dsum ("CikanTutar", "T_HesapHareketleri", "[HesapTuru]='" & _
                              Me.HesapTuru_CBO & "' and (Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & _
                              " And " & CLng(Tarih_TXT) - 1 & ")")

'Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]))
'Me.GelirToplami_TXT = Dsum ("[GirenTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]))
Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")
Me.GelirToplami_TXT = Dsum ("[GirenTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")
 


End Sub

Private Sub GelirFisi_BTN_Click()

DoCmd.OpenForm "F_GelirFisi"

End Sub

Private Sub GiderFisi_BTN_Click()

DoCmd.OpenForm "F_GiderFisi"

End Sub

Private Sub HesapTuru_CBO_AfterUpdate()

Me.TF_HesapHareketleriGiderAF.Requery
Me.TF_HesapHareketleriGelirAF.Requery

Me.HesapBakiyesi_TXT.Requery
Me.GelirToplami_TXT.Requery
Me.GiderToplami_TXT.Requery

Me.HesapBakiyesi_TXT = Dsum ("GirenTutar", "T_HesapHareketleri", "[HesapTuru]='" & Me.HesapTuru_CBO & _
                            "' and (Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & _
                            " And " & CLng(Tarih_TXT) - 1 & ")") - Dsum ("CikanTutar", "T_HesapHareketleri", "[HesapTuru]='" & _
                              Me.HesapTuru_CBO & "' and (Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & _
                              " And " & CLng(Tarih_TXT) - 1 & ")")
                             
'Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]))
'Me.GelirToplami_TXT = Dsum ("[GirenTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]))
Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")
Me.GelirToplami_TXT = Dsum ("[GirenTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")



End Sub

'Private Sub HesapTuru_CBO_Exit(Cancel As Integer)

'Me.TF_HesapHareketleriGiderAF.Requery
'Me.TF_HesapHareketleriGelirAF.Requery

'Me.HesapBakiyesi_TXT.Requery
'Me.GelirToplami_TXT.Requery
'Me.GiderToplami_TXT.Requery

'Me.HesapBakiyesi_TXT = Dsum ("GirenTutar", "T_HesapHareketleri", "[HesapTuru]='" & Me.HesapTuru_CBO & _
                          "' and (Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & _
                            " And " & CLng(Tarih_TXT) - 1 & ")") - Dsum ("CikanTutar", "T_HesapHareketleri", "[HesapTuru]='" & _
                              Me.HesapTuru_CBO & "' and (Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & _
                              " And " & CLng(Tarih_TXT) - 1 & ")")

'End Sub

Private Sub Kapat_BTN_Click()

DoCmd.Close acForm, "F_IsletmeDefteri"

End Sub

Private Sub Tarih_TXT_AfterUpdate()

Me.HesapTuru_CBO.Requery
Me.HesapBakiyesi_TXT.Requery
Me.GelirToplami_TXT.Requery
Me.GiderToplami_TXT.Requery

Me.TF_HesapHareketleriGiderAF.Requery
Me.TF_HesapHareketleriGelirAF.Requery

'Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]))
'Me.GelirToplami_TXT = Dsum ("[GirenTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]))
Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")
Me.GelirToplami_TXT = Dsum ("[GirenTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")

End Sub

'Private Sub Tarih_TXT_Change()

'Me.HesapTuru_CBO.Requery
'Me.HesapBakiyesi_TXT.Requery
'Me.GelirToplami_TXT.Requery
'Me.GiderToplami_TXT.Requery

'End Sub
.rar İşletme Defteri.rar (Dosya Boyutu: 164,96 KB | İndirme Sayısı: 3)
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#4
Tarih_TXT metin kutusunun güncelleştirme sonrasında olayında kod var ise sil, yerine Tarih_TXT metin kutusunun değiştiğinde olayına aşağıdaki kodu ekle.

Me.HesapTuru_CBO.SetFocus
Me.TF_HesapHareketleriGiderAF.Requery
Me.TF_HesapHareketleriGelirAF.Requery


Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")
Me.GelirToplami_TXT = Dsum ("[GirenTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")

Tarih_TXT.SetFocus
Cevapla
#5
Maalesef durum değişmedi aynı şekilde çalışıyor. İçine girip tıklayarak tekrar seçmek gerekiyor.
Private Sub Tarih_TXT_AfterUpdate()

Me.HesapTuru_CBO.SetFocus

Me.TF_HesapHareketleriGiderAF.Requery
Me.TF_HesapHareketleriGelirAF.Requery

Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")
Me.GelirToplami_TXT = Dsum ("[GirenTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")

Tarih_TXT.SetFocus

End Sub
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#6
(12/03/2020, 17:54)Oğuz Türkyılmaz yazdı: İçine girip tıklayarak tekrar seçmek gerekiyor


Bu şekilde çalışıp başka yol yoksa şöyle yapılabilir sanıyorum.

Sendkeys ile f2 ve enter kodları eklenebilir.
Sendkeys olayı excelde numlock kapatıp açma gibi gıcıklığı vardı.Belki işe yarayabilir bu yöntem.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task