Access..Tarihe göre yapılan sorgulama toplam alanlarını etkiliyor.

Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Estağfurullah.. Çok yardımcı oldunuz. Açık sözüyle neyi kastettiğimi anlattım ama kısaca tekrar anlatayım. Kullanıcı formu açıp da cari hesabı seçtiğinde tarih aralıklarını boş da bıraksa ilktarih ve son tarih olarak değer döndürmek için şu kodu kullanmıştım.

If IsNull(Me.ilktarih) Then
Me.ilktarih = DMin("işlemtarihi", "cariextretablosu")
End If
If IsNull(Me.sontarih) Then
Me.sontarih = DMax("işlemtarihi", "cariextretablosu")
End If

Biz güncelleştirme sorgularımızı da bu formdaki seçilen değerlere göre süzerek oluşturduğumuz için tabloda o anda veri olmayacaktır. Bu yüzden yukardaki kodlar gereksiz oldu.. Anlatabildim mi?
 
Katılım
15 Kasım 2006
Mesajlar
583
Excel Vers. ve Dili
Ms Office 2003 Türkçe
cariextretablosu tablosu hangi aşamada, hangi parametrelere göre oluşuyor?
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Cariextre tablosunun oluşumu için önce bir tablo ekledim. Daha sonra 5 sorgu yaptım. Bunlar sırasıyla
1- Silme sorgusu : Tabloyu temizliyor.
2- güncelleştirme sorgusu :alışfaturaları -Alış faturalarındaki verileri formdaki kriterlere göre tabloya atıyor.
3- Diğer 3 sorgu da aynı şekilde satış faturaları- ödeme ve tahsilat verilerini cariextre tablosuna yolluyor.

Tabii bu işlemleri yaparken herbiri geldiği tabloya göre işlem türü alanlarına da "ALIŞ FATURASI" "SATIŞ FATURASI" gibi bilgiler atıyor. Sonuçta biz de bu verilere göre cari raporumuzu oluşturuyoruz. Bu işlemlerin hepsi formun üzerinde CARİ düğmesinin girildiğinde yordamındaki bir makro ile çalışıyor. Makroda uyarı belirleme hayır ayarlandığı için ekleme sorgusu uyarılarını görmüyoruz.

Buraya kadar herşey tamam.. Yani formdaki tarih aralığı seçilmese de içinde bulunulan yılın ilk günü ile bugün arasındaki aralıkta çalışılabilir. Bu hale nasıl getiririz?
 
Katılım
15 Kasım 2006
Mesajlar
583
Excel Vers. ve Dili
Ms Office 2003 Türkçe
yılın ilk gününü

DateSerial(Year(Now()),'01','01')

ile bugun ise

Now()

bunları yerine koyacan okadar.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
If IsNull(Me.ilktarih) Then
Me.ilktarih = DateSerial(Year(Now()),'01','01')
End If

şeklinde hata verdi. Sence nerde hata yaptım?
 
Katılım
14 Ağustos 2007
Mesajlar
291
Excel Vers. ve Dili
office 2003, sql server
merhaba, konuya tam hakim olamadım ama anladığım kadarıyla anlatayım; diyelimki bir tablo 01.01.2007 den bu yana hareket görüyor ama biz ordan 20 mart 2007 ile 30.mayis 2007 arası verileri aktarmalı toplam ile yani banka hesap extresi gibi alacaz. bu durumda rapor aktarmalı toplamı 20 marttan itibaren alıyor önceki toplam ise yok! yani 01.01.2007 ile 19.03.2007 arası toplam bakiyesi de o raporun en üstünde olsun istiyoruz değil mi. Ben olsam iki ayrı sorgu yaparım veya sql ini alırım. 20 mart ile 3o mayıs arası alacağı devirli toplam için bir sorgu ve bu rapor oluyor diğerine de ayrı bir sorgu yani 01.01.2007 ile 19.03.2007 arası olan ve burayı sorguda gruplama toplam yaptır toplamları da rapora dlookup veya dsum ile aldır veya olduğu gibi alt bi rapor ekle o toplamı oraya geçir çok basit yaw..
kolay gelsin..
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
O zaman bir sorgu ile verilerin ilk başladığı tarih -yani ilktarih- ile sorulduğu tarih -yani bu sorgu için son tarih diğer sorgunu ilk tarihi oluyor- arasını da ayrıca sorgulamak gerek. Bu toplamı da bir alt rapor olarak en üste getirip en alttaki toplama da onu dahil etmekten mi bahsediyorsunuz? Evet olabilir. Zaten cariextre sorgusunu yaptırdığım formumun Başlangıç tarihi otomatik olarak görülmeyen bir sorgulamanın son tarihi olacak. İlk tarih de bu cari hesabın en eski işlemi olacak. Bunu da DMin ile alabilirim..
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Ok.. Sağolun. Yalnız şöyle bir durum var. Verileri oluşturma aşamasında filtrelediğimiz için tarih aralıklı veriler oluştu. Bu yüzden sorguların veri gönderdiği cariextre tablosu işimize yaramıyor. Bu nedenle ilk baştaki şekle dönüp verileri sql ile alt formlar aracılığıyla aldım. Böylece ilk tarih ve son tariheri otomatik olarak alma problemi de ortadan kalktı. Şimdi bu tablodan yeni bir sorgu ile verileri tekrar istiyorum. Sorun şu:
Formun üzerine görünmez bir metin kutusuna tablodaki en eski tarihi baslatarih adıyla yazdırdım. Şimdi sorguda tarih alanını bu formu referans alarak
between [baslatarih] and [ilktarih] şeklinde sorgulanmayan tarih aralığını sorgulattım. Sonuç olumlu. Yalnız eğer bu cari hesabın tüm hareketlerini en eski tarihten itibaren alırsam bu baslatarih şeklinde forma yazılan tablodaki en eski tarih iki kez işlenmiş oluyor. Yani raporun en üstünde -sallıyorum- 01.01.2007 tarihli işlem aktarılan bakiye olarak gelirken hem de ana raporda aynı toplam tekrar ele alınıyor.

01.01.2007 - aktarılan toplam 102 lira (toplam
01.01.2007 - 012456 nolu alış faturası 102 lira
02.01.2007 ...... gibi

Sonuçta alt toplamda sonuç yanlış. Üzerinde çalışıyorum. Bakalım nasıl olacak.. Yanımda örnek yok. Akşam evden yollayacağım.
 
Son düzenleme:
Katılım
14 Ağustos 2007
Mesajlar
291
Excel Vers. ve Dili
office 2003, sql server
Bakiye Devirli Rapor

Sanırım anladım sorunu, örnek göndersen hallederdik ama; şimdi yapıp ilişikte gönderdiğim bu örnek dediğinin hepsini yapıyor. inşallah istediğin gibi olmuştur.

iyi çalışmalar.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Çok teşeküür ederim ama tam benim sorunum diyemiyorum. Çünkü o kadar ilerledik ki artık veri tabanı yapısını değiştirmemiz mümkün değil.. Herneyse emeğine sağlık.. Ben bu gece dosya üzerinde biraz çalıştım. Tarih alanlarına -1 ilave ettim. Böylece ana sorgum en eski tarihten başlarken devreden bakiye sorgum en eski tarihin bir gün öncesinden başlıyor. Aynı şekilde form üzerinde seçilen ilk tarih metin kutusundan gelen tarihi de -1 ile bir gün öncesinden aldım. Galiba oldu. Tek sorun ne iştir anlamadım ama bu alt rapordan gelen verileri null olunca zero yapamadım. Halbuki aynı raporda diğer alt rapolardan gelenleri zero yapmıştım. Bu olmadı.. Kafam da yoruldu ya.. Herhalde ondan..
 
Katılım
14 Ağustos 2007
Mesajlar
291
Excel Vers. ve Dili
office 2003, sql server
merhaba önceki gönderdiğim devirli türden her işlem için işine yarar diye tahmin ediyorum, örneğin kasa olayında lazım olur sanırım..
Gönderdiğini istediğin şekliyle yaptım, bi bak inşallah istediğin gibi olmuştur.
selamlar.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Teşekkürler inceleyeyim ... Çok sağol ama burda kıyamet kopuyor. Dün gece sabaha kadar uyamadık selden.. Bu gece de yine aynen başladı yağmaya.. Şimşekü, yağmur.. Ne ararsan var.. Elektrikler de bir gidiyor bir geliyor. Allah sonumuzu hayretsin.. Haa Samsun'dan bahsediyorum. Bugün televizyonlarda izlemişsinizdir Samsun'u...
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Evet çok iyi.. Çalışıyor. Eğer sayı yıksa sıfır varsa olan sayı al demişsin. Teşekkürler.. Ama sanki toplamlarda sorun var. Normal olarak 01.01.2006 ile 25.08.2007 arasını sorguladığımda 30 bin küsür ytl mal alımı yapmışız . Ama sadece 8. nci ayı sorguladığımda devredende çıkan sayı 51 bin küsür borç... Galiba elmayla armut toplanmış :))) Ama sorun değil, o zaman şöyle yaparız. Tıpkı diğer altfraporlarda olduğu gibi dört altrapor yapıp herbirinin ölçütüne ALIŞ FATURASI - SATIŞ FATURASI- TAHSİLAT ve ÖDEME diye kriterler atarız. Böylece önceki bakiyeler de doğrulanır. Simdiki şeklinde elmaları, armutları, erikleri ve şeftalileri topluyor :)))
 
Son düzenleme:
Katılım
14 Ağustos 2007
Mesajlar
291
Excel Vers. ve Dili
office 2003, sql server
ben sadece senin dediğin yeri yaptım zero yani..
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Evet en sonunda istediğim şekli oluşturdum. Bakalım beğenecek misiniz Yeni54 ve Cüneyta ... İkinize de kucak dolusu selamlar. Ortak bir çalışma oldu bence.. Tabii ki bu bir programın sadece cari döküm alma bölümü. Programda daha yaklaşık 80-100 civarında form ve rapor mevcut. Sadece cari rapor için bu kadar uğraştım ki siz diğer yerlerini gelin hesap edin. Neyse işte son hali..
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Cüneyta.. Nz yi çalıştırman için işlem türü alanlarını sorgudan kaldırmışsın ya. Herbir işlem türü için ayrı ayrı olarak nz fonksiyonu çalışmıyor mu?.. Yani herbir işlem türü için (alış-satış-ödeme vb) ayrı ayrı satırlar oluşup nz de bu arada işini yapamıyor mu?.. Herhalde topla dediğimiz alanın içinde işlem türü adında toplanamayacak bir alan gördüğü için mi sapıtıyor?
 
Katılım
14 Ağustos 2007
Mesajlar
291
Excel Vers. ve Dili
office 2003, sql server
gruplamada işlemtürü ne yapacak :))))... düşünsene işlem türünün tek bir gurup olduğunu.. mesela alış işlemi, satış işlemi, ödünç vesaire bu tek gurup nasıl olur!! yani orda yapmak istediğimiz önceki toplamları getirmek gurup olarak yani tutar bölümü toplamı gelecek oraya.. eğer işlem türü de gelirse ki onda gruplama yaparsak bir sürü ayrı grup getirip oraya koyar.. onu da öyle yapmamışsın ki.. sen işlem türünü de oraya koyduğunda hiç bir zaman ne sıfır verir ne grup toplar ne de başka işlem ... olduğu gibi falseee.. yani olmayan bir sorgu .. istersen işlem türünü aç bak.. ne zero oluyor ne yeri boş kalıyor olduğu gibi false..
selamlar.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Evet. Ben de bir sorgu oluşturdum orada işlem türünü seçtim. Sonra ondan bir sorgu oluşturdum orada da parasal değerleri topladım. Zaten öbür sorguda işlem türü seçildiği için gelen veriler seçili olara o işlem türüne ait verilerdi. Bunu 4 kez yapmam gerekti. Bzöylece sonuç gönderdiğim dosyada. Belki daha kolay yapılırdı ama herkesin bir yoğurt yiyişi vardır. Ayrıca kurulu yapıyı değiştirmek daha zor olabilir diye düşünüyorum. Senin de yardımlarında dikkat ediyorum radikal değilsin. Yani var olan yapıyı değiştirmeden düzeltme yaparak gidiyorsun. Halbuki bir başkası taa tablodan başlardı veriyi toplamaya...
 
Üst