Skip to main content

AccessTr.neT


Dsum İle 2 Tarih Arasi Toplam Aldirmak

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

Dsum İle 2 Tarih Arasi Toplam Aldirmak

#19
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
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#20
Me.GiderToplamı_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]) & " And [HesapTuru]='" & [HesapTuru_CBO] & "'")
Cevapla
#21
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 & ")")
Cevapla
#22
(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]
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#23
Sadece tarih:

Me.GiderToplamı_TXT = Dsum ("[CikanTutar]", "T_HesapHareketleri", "[Tarih]= " & CLng([Tarih_TXT]))
Cevapla
#24
(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.
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