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
1152

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. 
Visual Basic Code
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-)
Visual Basic Code
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.
"Boş Örnek Eklerim, Yapıp Verirler" demeyin, örneğinizi hazırlayın.
Komplike kod talebiniz var ise İletişim bağlantısından bize ulaşın. 
Cebelleşmezsen Öğrenemezsin. 
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]

Visual Basic Code
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.

Visual Basic Code
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
"Boş Örnek Eklerim, Yapıp Verirler" demeyin, örneğinizi hazırlayın.
Komplike kod talebiniz var ise İletişim bağlantısından bize ulaşın. 
Cebelleşmezsen Öğrenemezsin. 
Cevapla
#5
Maalesef durum değişmedi aynı şekilde çalışıyor. İçine girip tıklayarak tekrar seçmek gerekiyor.
Visual Basic Code
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 Adlı Kullanıcıdan Alıntı: İç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