Skip to main content

AccessTr.neT


Dsum İle 2 Tarih Arasi Toplam Aldirmak

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

Dsum İle 2 Tarih Arasi Toplam Aldirmak

Çözüldü #1
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.
Visual Basic Code
(=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.
Visual Basic Code
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]
.rar İşletme Defteri.rar (Dosya Boyutu: 157,94 KB | İndirme Sayısı: 11)
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#2
(10/03/2020 10:08)Oğuz Türkyılmaz Adlı Kullanıcıdan Alıntı: 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.
Visual Basic Code
(=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.
Visual Basic Code
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. 
Visual Basic Code
=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.
Son Düzenleme: 10/03/2020, 15:13, Düzenleyen: tekinuygun.
Cevapla
#3
Visual Basic Code
=DSum("GirenTutar";"T_HesapHareketleri";"Tarih Between " & CLng(DateSerial(Year([Tarih_TXT]);1;1)) & " And " & CLng([Tarih_TXT])-1)-DSum("CikanTutar";"T_HesapHareketleri";"Tarih Between " & CLng(DateSerial(Year([Tarih_TXT]);1;1)) & " And " & CLng([Tarih_TXT])-1)
şeklinde dener misiniz?
Cevapla
#4
(10/03/2020 14:12)tekinuygun Adlı Kullanıcıdan Alıntı:
(10/03/2020 10:08)Oğuz Türkyılmaz Adlı Kullanıcıdan Alıntı: 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.
Visual Basic Code
(=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.
Visual Basic Code
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. 
Visual Basic Code
=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.
Visual Basic Code
=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.
Access Çekirgesi 
[Resim: img-cray.gif]


Son Düzenleme: 10/03/2020, 19:23, Düzenleyen: Oğuz Türkyılmaz.
Cevapla
#5
(10/03/2020 16:09)berduş Adlı Kullanıcıdan Alıntı:
Visual Basic Code
=DSum("GirenTutar";"T_HesapHareketleri";"Tarih Between " & CLng(DateSerial(Year([Tarih_TXT]);1;1)) & " And " & CLng([Tarih_TXT])-1)-DSum("CikanTutar";"T_HesapHareketleri";"Tarih Between " & CLng(DateSerial(Year([Tarih_TXT]);1;1)) & " And " & CLng([Tarih_TXT])-1)
şeklinde dener misiniz?
Sn.@berduş Kod Tüm Hesap türlerinin giren ve çıkan toplamlarının bakiyesini verdi. Form üzerindeki hesapturu liste kutusunda hangi hesap turu seçilmişse onu hesaplamalı.
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#6
ben sadece yazdığınız kodu düzelttim, Dlookupa kriter olarak onu da ekleyebilirsiniz.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da