AccessTr.neT
Dsum İle 2 Tarih Arasi Toplam Aldirmak - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Dsum İle 2 Tarih Arasi Toplam Aldirmak (/konu-dsum-ile-2-tarih-arasi-toplam-aldirmak.html)

Sayfalar: 1 2 3 4 5


Cvp: Dsum İle 2 Tarih Arasi Toplam Aldirmak - Oğuz Türkyılmaz - 11/03/2020

VBA da 2 tarih arasında hesap türüne göre işlemlerin toplamını alacak kodu maalesef yapamıyorum. En son bu şekilde kaldı.

'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] ")

Formun üzerindeki giderToplami_TXT alanına sadece 
Sadece  o günün işlem toplamlarını aldırayım belki ordan tür uyuşmazlığını daha kolay çözerim dedim oda olmadı.

[Resim: do.php?img=9828]

Private Sub Form_Current()

Me.TF_HesapHareketleriGiderAF.Requery
Me.TF_HesapHareketleriGelirAF.Requery
                                                                ' "[tarih]= " & clng(Me.Metin1)
' Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[tarih]= " & clng(Me.Tarih_TXT)")
' Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= #" & Me.Tarih_TXT & "#")
  Me.GiderToplami_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= #" & Tarih_TXT & "#")
 
' "[tarih]= " & clng(Me.Metin1)
'Formdaki Tarih Alani için (VBA'da)
'Kod:
' Dlookup ("Alan Adi", "Tablo veya Sorgu Adi", "Kriter=#" & forms!FormAdi!Formdaki Kontrolün Adi3 & "#")
' Dlookup ("CikanTutar", "T_HesapHareketleri", "Tarih=#" & forms!F_IsletmeDefteri!Me.Tarih_TXT & "#")



'  "Tarih=#" & forms!F_IsletmeDefteri!Tarih_TXT & "#")
'  "#CLng([Tarih_TXT])#")
'  [Tarih] = " & clng(txtTarih))"
'  "[Tarih] = #" & Me.Tarih_TXT & "#")

End Sub



Cvp: Dsum İle 2 Tarih Arasi Toplam Aldirmak - ozanakkaya - 12/03/2020

Me.GiderToplamı_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")



Cvp: Dsum İle 2 Tarih Arasi Toplam Aldirmak - berduş - 12/03/2020

Aşağıdaki kodu dener misiniz?
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 & ")")
Oğuz bey karmaşık işlemlerde en uygunu adım adım gitmektir :
1 - fonksiyon temel haliyle denenir
x1 = Dsum ("GirenTutar", "T_HesapHareketleri") '1. Adım kritersiz
2 - sonraki adımda 2 farklı kriteri tek tek denersiniz
x2 = Dsum ("GirenTutar", "T_HesapHareketleri", "[HesapTuru]='" & Me.HesapTuru_CBO & "'") '2. ve 3. adımlarda tek tek kriter denenir
x3 = Dsum ("GirenTutar", "T_HesapHareketleri", "Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & " And " & CLng(Tarih_TXT) - 1)
3 - son adımda ayrı ayrı kontrol edilen kriterler ihtiyaca göre ve/veya ile birleştirilir
xSon = 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 & ")")



Cvp: Dsum İle 2 Tarih Arasi Toplam Aldirmak - Oğuz Türkyılmaz - 12/03/2020

(12/03/2020, 00:53)ozanakkaya yazdı:
Me.GiderToplamı_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")
Ozan Bey Çok teşekkür ederim Bu bölümde Gider toplamında giderin hangi hesap türünden ödendiğinin bir önemi olmadığından bana sadece form üstündeki Tarihe Göre Çıkan tutar alanının  toplamı lazım bu yüzden hesap turu alanını koddan çıkardığımda 4 türlü yazdım ama son 2 sinde yazım hatası vermemesine rağmen kod çalıştığında hepsinde hataya düşüyor.

Option Compare Database
Option Explicit


Private Sub Form_Current()

Me.TF_HesapHareketleriGiderAF.Requery
Me.TF_HesapHareketleriGelirAF.Requery

'Me.GiderToplamý_TXT = Dsum ("[CikanTutar]","T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & "And [HesapTuru]='" & [HesapTuru_CBO] & "'")
'Me.GiderToplamý_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & )
'Me.GiderToplamý_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & ")
Me.GiderToplamý_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & "'")
    GiderToplamý_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & "'")


End Sub

Değer stringse tek tırnak ekleniyor ınteger ise çift tırnak bunu anladım ama tarih hep çift tırnak içinde yazılıyor. Ölçüt bölümününde  2 çift tırnak arasına yazılması lazım ama Tarih bölümü başlangıcı "[Tarih]= " &  2 çift tırnak içine yazılınca gerisi karışıyor. Kodu Parantezle de kapatmak şart.
Burda yapılması gereken nedir ve işlemin mantığını açıklarsanız çok makbule geçecek. Okuduğum her yerde Türkçe Tarih formatından dolayı Accessde bu tarz sorunların yaşandığı söyleniyor. SN.@alpeki99 un Vba derslerinde Dlookup konusunu anlatırken Tarih konusunda  kullandığı FECAAT kelimesi benim için az bile söylemiş dedirtiyor. Img-grin Çok teşekkür ederim yardımlarınız için.


[Resim: do.php?img=9833]


Cvp: Dsum İle 2 Tarih Arasi Toplam Aldirmak - ozanakkaya - 12/03/2020

Sadece tarih:

Me.GiderToplamı_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]))



Cvp: Dsum İle 2 Tarih Arasi Toplam Aldirmak - Oğuz Türkyılmaz - 12/03/2020

(12/03/2020, 09:44)berduş yazdı: Aşağıdaki kodu dener misiniz?
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 & ")")
Oğuz bey karmaşık işlemlerde en uygunu adım adım gitmektir :
1 - fonksiyon temel haliyle denenir
x1 = Dsum ("GirenTutar", "T_HesapHareketleri") '1. Adım kritersiz
2 - sonraki adımda 2 farklı kriteri tek tek denersiniz
x2 = Dsum ("GirenTutar", "T_HesapHareketleri", "[HesapTuru]='" & Me.HesapTuru_CBO & "'") '2. ve 3. adımlarda tek tek kriter denenir
x3 = Dsum ("GirenTutar", "T_HesapHareketleri", "Tarih Between " & CLng(DateSerial(Year(Me.Tarih_TXT), 1, 1)) & " And " & CLng(Tarih_TXT) - 1)
3 - son adımda ayrı ayrı kontrol edilen kriterler ihtiyaca göre ve/veya ile birleştirilir
xSon = 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 & ")")

Sn.@berduş inanın aynen dediğiniz gibi yaptım ama işaretlere görevlerine ve anlamlarına tam vakıf olmayınca o kadar denemeden sonra bir noktada klavyeyi kırasım geldi. Neyse çok teşekkür ederim sizler sayesinde benim için zor bölümleri bitti sayılır, allah ne muradınız varsa versin.