Skip to main content

AccessTr.neT


Accesste 3 Farklı Tablodan Veri Alarak Rapor Oluşturmak

Accesste 3 Farklı Tablodan Veri Alarak Rapor Oluşturmak

#7
(16/07/2025, 17:33)atoykan yazdı: hgs tablonuzda 2 tarih var hangisi baz alınacak? yoğunluktan hemen ilgilenme şansım yok ancak bakmaya çalışacağım

tşk ederim atoykan bey. büyük sabırsızlıkla bekliyorum. sorunu şöyle çözmeye çalıştım; 3 farklı tablo verisini dışa aktardan Excel formatıyla raporlar isimli klasöre yükledim. 1 tanede ben Excel açtım. diğer 3 tablodan olması gerekenleri bağ yapıştır ve çoketopla formulu ile sadeleştirdim. sonra acceste tablo hazırladım. dıştan veri al yöntemiyle tabloya yapıştırdım. o tabloya bağlı rapor oluşturdum. tablodaki excele aktar makrolarıyla aktarıyorum, sonra otomatik yaptığım Excel sayfasına otomatik aktarıyor. sonra veriyi acceste tabloya yapıştırıyorum. daha kolay yöntem arıyorum
(hgs baz alınacak tarih ilk tarih, yani otobana giriş tarihi)
Cevapla
#8
(17/07/2025, 10:28)mzizmir35mz yazdı: sorunu şöyle çözmeye çalıştım; 3 farklı tablo verisini dışa aktardan Excel formatıyla raporlar isimli klasöre yükledim. 1 tanede ben Excel açtım. diğer 3 tablodan olması gerekenleri bağ yapıştır ve çoketopla formulu ile sadeleştirdim. sonra acceste tablo hazırladım. dıştan veri al yöntemiyle tabloya yapıştırdım. o tabloya bağlı rapor oluşturdum. tablodaki excele aktar makrolarıyla aktarıyorum, sonra otomatik yaptığım Excel sayfasına otomatik aktarıyor. sonra veriyi acceste tabloya yapıştırıyorum. daha kolay yöntem arıyorum

Sağ kulağınızı sol elle amuda kalkarak göstermeye çalışmaktan farksız anlattıklarınız ancak çözüm geliştirmeye çalışmanızı son derece takdir ettim. Açıkçası yorgunluk ve yoğunluktan sorunuzu net anladığımdan emin değilim ancak
SELECT 
    A.Plaka, Nz(G.ToplaTutar, 0) AS ToplaGiderTutar, Nz(F.ToplaFaturaTutarı, 0) AS ToplaFaturaTutarı, Nz(AK.ToplaAlinanLitre, 0) AS ToplaAlinanLitre, Nz(AK.ToplaAlinanTl, 0) AS ToplaAlinanTl, Nz(H.ToplaIslemTutarı, 0) AS ToplaIslemTutarı
FROM ((([01_TumAraclar] AS A
    LEFT JOIN (
        SELECT PlakaNo, Sum(Tutar) AS ToplaTutar
        FROM [08_AracGiderKayit]
        WHERE Tarih > #1/1/2025# AND Tarih < #3/31/2025#
        GROUP BY PlakaNo) AS G ON A.Plaka = G.PlakaNo)
    LEFT JOIN (
        SELECT Plaka, Sum(FaturaTutarı) AS ToplaFaturaTutarı
        FROM [05_HabasGelir]
        WHERE Tarih > #1/1/2025# AND Tarih < #3/31/2025#
        GROUP BY Plaka) AS F ON A.Plaka = F.Plaka)
    LEFT JOIN (
        SELECT PlakaNo, Sum(AlinanLitre) AS ToplaAlinanLitre, Sum(AlinanTl) AS ToplaAlinanTl
        FROM [06_AkaryakitSarf]
        WHERE Tarih > #1/1/2025# AND Tarih < #3/31/2025#
        GROUP BY PlakaNo) AS AK ON A.Plaka = AK.PlakaNo)
    LEFT JOIN (
        SELECT Plaka, Sum(IslemTutarı) AS ToplaIslemTutarı
        FROM [07_HgsKayit]
        WHERE GirisTarihi > #1/1/2025# AND GirisTarihi < #3/31/2025#
        GROUP BY Plaka) AS H ON A.Plaka = H.Plaka;
sorgusu sanırım yapmak istediğiniz işlem. Kontrol edin lütfen. Tarih aralıklarını manuel farazi girdim, bunları bir form aracılığı ile belirleyebilirsiniz.
Cevapla
#9
atoykan hocam elleriniz dert görmesin. boş sorgu oluşturdum. Sql sayfasına yapıştırdım sorun kalmadı. toplam lt kısmını çıkardım sadece. çok çok tşk ederim. Sql kodlama olayını bilmiyorum ama kısa zamanda onu öğreneceğim. bu sorguya bağlı rapor oluşturacağım ancak tarih aralığı olayını nasıl yapıcam onu bilemedim.
Cevapla
#10
bir de hocam akaryakıt gideri, hgs gideri, habaş gelir bunlar tek başlık zaten ama giderler kısmında alt başlıklarda isim ve tutarda gerekli .. şöyle anlatayım; 

ilk tarih....... son tarih .......
...plaka
gider tablosu    adblue[tarih aralığına göre toplam]  500,00
gider tablosu    akaryakıt[tarih aralığına göre toplam] 35000,00
gider tablosu    yemek[tarih aralığına göre toplam]  3000,00
gider tablosu    diğer[tarih aralığına göre toplam]    2500,00
...
akaryakıt tablosu   akaryakıt[tarih aralığına göre toplam]  186000,00
hgs tablosu           hgs[tarih aralığına göre toplam]           26000,00
habaş gelir tablosu ... [tarih aralığına göre toplam]          654000,00

yani bitince buna benzer bir rapor görüntüsü almak istiyorum
Son Düzenleme: 18/07/2025, 10:12, Düzenleyen: mzizmir35mz.
Cevapla
#11
Sorgunun mantığına bakın ve eklemek istediğiniz alanları ToplaGiderTutar, ToplaFaturaTutar vb. şekilinde sorgunun join öncesine ekleyin, left joinler ise kabaca verileri almak istediğiniz tablolara dayalı sorgular ve eklemeniz gereken alanlar varsa bu sorgulara o alanları da eklemelisiniz. Access ile uygulama geliştirecekseniz olmazsa olmaz sorgu tasarımını öğrenmeniz gerekli. İlk etapta Sql olarak yazamasanız bile sorgu tasarımında deneye yanıla select, insert vb temel komutları uygulamayı ve Sql syntaxını öğrenmek, daha sonra left, right, inner join ile sorguları birleştirmeyi vs öğrenmek zorundasınız.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da