Skip to main content

AccessTr.neT


Dsum İle 2 Tarih Arasi Toplam Aldirmak

Oğuz Türkyılmaz
Oğuz Türkyılmaz
26
3773

Dsum İle 2 Tarih Arasi Toplam Aldirmak

#7
(10/03/2020, 19:44)berduş yazdı: ben sadece yazdığınız kodu düzelttim, Dlookup a kriter olarak onu da ekleyebilirsiniz.
Şu an onunla uğraşıyorum teşekkür ederim. fakat bir sorum olacak bu kodu Denetim kaynağı yerine Vba da yazsak daha hızlı yada daha iyimi olur forumda bazı konularda insanlar özelllikle denetime değilde ile Vba kısmına yazılmasını tercih ettiklerini söylemişler. 
i
Access Çekirgesi 
[Resim: img-cray.gif]


Son Düzenleme: 10/03/2020, 19:49, Düzenleyen: Oğuz Türkyılmaz.
Cevapla
#8
birçok uzmanın aynı konuda bir birine zıt fikirleri savunduğunu düşünürsek- ki burada bu işin eğitimini almış gerçek uzmanlardan bahsediyorum- benim gibi eğitim almamış birinin fikir beyan etmesi anlamsız ama kanaatimce orta ve küçük boy bir uygulama için hız farkının belirgin olacağını sanmıyorum bu daha çok kişinin kendi tercihiyle ilgili. kolayınıza hangisi geliyorsa hangisini yapabiliyorsanız onu kullanın. Ama öğrenmek istiyorsanız bulabildiğiniz her yöntemi defalarca kullanın ki nerede hangisini kullanmak daha uygun öğrenebilesiniz.
iyi çalışmalar
Cevapla
#9
(10/03/2020, 19:18)Oğuz Türkyılmaz yazdı:
(10/03/2020, 14:12)tekinuygun yazdı:
(10/03/2020, 10:08)Oğuz Türkyılmaz yazdı: Merhaba

Formum da herhangi bir kayıt işlemi yapılmadığı için sadece tablolardaki kayıtlı bilgilerin ışığında Seçilen HesapTürüne göre mevcut olması gereken tutarları görmek istiyorum.

Yapmak istediğimi açıklama açısından şu mantık da bir kod yazmalıyım.
(=DSum("GirenTutar";"T_HesapHareketleri"; "HesapTuru","[Between [ILKTARIH] And [SONTARIH]) - ( =DSum("CikanTutar";"T_HesapHareketleri","HesapTuru";"[Between [ILKTARIH] And [SONTARIH] )

Bu kod da ilk tarih formun üzerindeki yılın başlangıç tarihi (Forma göre Sabit Değer 01.01.2020 olmalı)
Son tarih ise Formda seçili tarihin (Tarih_TXT) bir gün öncesi olmalı ( Forma Göre Değişken Değer 09.03.2020)

Özetle Formdaki hesap turu alanında seçili olan hesaba göre Gelirlerin toplamından giderlerin toplamını çıkararak sonucu HesapBakiye_TXT alanında göstermeliyim. 

Konularda yaptığım incelemelerde SN.@ozguryasin in açıklamasına göre  

https://accesstr.net/konu-toplami-yazidi...light=DSum  6.Mesajda belirttiği husus olan direk sorgulardan metin kutularına atma olayında ilerde sorun yaşamamak adına ben tabloya bilgi kaydetmiyorum ama bilgiyi metin kutusuna atma olayında ADO kullanılabilirmi daha sağlıklı olacaksa.

programcılıkta bir değil birden fazla çözüm yolu vardır. benim yaptığım ado ve sorgu bir arada kullanılmış şeklidir. sadece ADO ile yapmış olsak 3-5 satır daha olacaktı. önce sorgu ile toplam aldırdım. sonra bu toplama ado ile bağlandım ve metin kutusuna aktardım. update sorgusu ile yapmak isteseniz hemen hemen yine aynı satırlarda işlem gerçekleşecek. belkide daha fazla. ama şu var.
direkt sorgulardan metin kutularına atmalarda biraz zorluklar yaşanmakta.
dediğiniz olay ayrıca
DSUM ve Dlookup kullanılarakta yapılmakta.
DSUM ile toplama yaptırılıp Dlookup ile çıkan toplam aktarılmaktadır. bana kolay geldiği için ADO kullanmayı tercih ediyorum. ayrıca internet üzerinden çalışan yazılımlarda sorunsuz bir şekilde çalışmakta.
[Resim: do.php?img=9821]

Dosyanızı açamadım 2007 kullanıyorum. 
=nz((DSum("[GirenTutar]";"T_HesapHareketleri";"[HesapTuru]=" & [Formlar]![FORMADI]![METİNKUTUSUADI] & " And  [TABLODAKİTARİHALANI]" & "Between " & CLng([Formlar]![FORMADI]![ILKTARIH]) & " And " & CLng([Formlar]![FORMADI]![SONTARIH]) & ""))-(DSum("[CikanTutar]";"T_HesapHareketleri";"[HesapTuru]=" & [Formlar]![FORMADI]![METİNKUTUSUADI] & " And  [TABLODAKİTARİHALANI]" & "Between " & CLng([Formlar]![FORMADI]![ILKTARIH]) & " And " & CLng([Formlar]![FORMADI]![SONTARIH]) & ""));0)

Bu kodu denermisiniz. Ben deneyemedim.
=nz((DSum("[GirenTutar]";"T_HesapHareketleri";"[HesapTuru]=" & [Formlar]![F_IsletmeDefteri]![HesapBakiyesi_TXT] & " And  [Tarih]" & "Between " & CLng([Formlar]![F_IsletmeDefteri]![ILKTARIH]) & " And " & CLng([Formlar]![F_IsletmeDefteri]![SONTARIH]) & ""))-(DSum("[CikanTutar]";"T_HesapHareketleri";"[HesapTuru]=" & [Formlar]![F_IsletmeDefteri]![HesapBakiyesi_TXT] & " And  [Tarih]" & "Between " & CLng([Formlar]![F_IsletmeDefteri]![ILKTARIH]) & " And " & CLng([Formlar]![F_IsletmeDefteri]![SONTARIH]) & ""));0)
Sn@tekinuygun öncelikle ilginiz için teşekkür ederim kod tür hatası verdi.
 koddaki HesapBakiyesi_TXT  yerine form üzerinde Hesap türünü listelediğiniz liste kututsu veya açılır kutunun ismini girerek deneyebilirsiniz. Başta dediğim gibi dosyanızı görmeden konuşuyorum. Zaten syn @berduş hocam konuya el atmış çözümlendi sayılır. 
Cevapla
#10
Kodları Vba da yazmak bana fiziki olarak daha kolay geliyor. O yüzden Vba da yazmaya çalıştım.  Koddaki noktalı virgülleri virgül ile değiştirdim ölçütü uyguladım fakat hata alıyorum. Hatalarım nelerdir. Teşekkürler.
Private Sub HesapTuru_CBO_AfterUpdate()
Me.TF_HesapHareketleriGiderAF.Requery
Me.TF_HesapHareketleriGelirAF.Requery
Me.HesapBakiyesi_TXT = (DSum("[GirenTutar]","T_HesapHareketleri","Tarih Between " & CLng(DateSerial(Year([Tarih_TXT]);1;1)) & " And " & CLng([Tarih_TXT])-1),"[HesapTuru]=" & [Formlar]![F_IsletmeDefteri]![HesapTuru_CBO] & "-DSum("[CikanTutar]","T_HesapHareketleri","Tarih Between " & CLng(DateSerial(Year([Tarih_TXT]);1;1)) & " And " & CLng([Tarih_TXT])-1),"[HesapTuru]=" & [Formlar]![F_IsletmeDefteri]![HesapTuru_CBO] & "))
Access Çekirgesi 
[Resim: img-cray.gif]


Son Düzenleme: 10/03/2020, 21:21, Düzenleyen: Oğuz Türkyılmaz.
Cevapla
#11
1 - Hâlâ ; duruyor
2 - Dlookup kodunda kriterler arasına virgül koyulmaz normal sorgu mantığı geçerlidir
3 - neden - den önce tırnak işareti var
4 - matematiksel işlemlerde & kullanilmaz
Cevapla
#12
(10/03/2020, 21:36)berduş yazdı: 1 - Hâlâ ; duruyor
2 - Dlookup kodunda kriterler arasına virgül koyulmaz normal sorgu mantığı geçerlidir
3 - neden - den önce tırnak işareti var
4 - matematiksel işlemlerde & kullanilmaz


1- Hâlâ ; duruyor ifadenizdeki işaret bu nerede hala arıyorum kodda benim gözlerle bu işaretleri görmek için ekranın içine giriyorum nerdeyse Kodu kopyalıyorum  Text Editörüne yapıştırp fontu büyütüp kodu öyle görebiliyorum. Noktalama işaretlerinde herşeyi birbirine karıştırıyorum.

2-https://accesstr.net/konu-dsum-ve-sum-islevi.html  konusunda Vba örneklerinde ; yerine , kullanılır diye yazıyor. Buna istinaden virgüle çevirmiştim. Kafam iyice karıştı.

4-Bu kodun tamamı matematiksel işlem diye algılıyorum & işaretlerini sildim.

Me.HesapBakiyesi_TXT = (DSum("[GirenTutar]";"T_HesapHareketleri";"Tarih Between "  CLng(DateSerial(Year([Tarih_TXT]);1;1))  " And "  CLng([Tarih_TXT])-1);"[HesapTuru]="  [Formlar]![F_IsletmeDefteri]![HesapTuru_CBO]  - Dsum ("[CikanTutar]";"T_HesapHareketleri";"Tarih Between "  CLng(DateSerial(Year([Tarih_TXT]);1;1))  " And "  CLng([Tarih_TXT])-1);"[HesapTuru]="  [Formlar]![F_IsletmeDefteri]![HesapTuru_CBO]  "))
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task