AccessTr.neT

Tam Versiyon: Rapordaki grup içinde sorgu yapmak
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
Merhaba,

Saatte bir defa kayıt alan bir programım var. Bu programın oluşturmuş olduğu veritabanına Access ile bağlanıyorum. Bir form oluşturdum ve bu form'dan iki tarih aralığı giriyorum. Yazmış olduğum sorgu, girilen iki tarih arasındaki değerleri yeni bir tabloya atıyor ve bu değerleri RAPOR'da günlük olarak gruplanmış olarak görüyorum.
RAPOR aşağıdaki gibidir;

25.11.2008
07:00:00 45346
08:00:00 32444
09:00:00 43544
10:00:00 65453
..
..
..
26.11.2008
07:00:00 65464
08:00:00 43523
09:00:00 65764
10:00:00 64564
..
..
..

Benim problemim şu;
Ben TARIH'in yazılı olduğu grubun altbilgisine 10:00:00 saatindeki değerle 09:00:00 saatindeki değerin farkını yazdırmak istiyorum.

Yardımlarınızı bekliyorum.
Sorununuz direkt olarak sorgudan
veya rapora kod yazılarak çözülebilir.

Ufak bir örnek yapıp gönderirseniz daha kolay yardımcı olabiliriz.

Tablo yaratmak, verileri girmekle zaman kaybetmemek için bize yardımcı olun bizde size yardımcı olalım.
seruz merhaba,

öncelikle ilgine teşekkür ediyorum. Access dosyasını gönderiyorum. Ben çalışmamı OFFICE 2007 kullanarak yaptım. 2000 olarak ta kaydediyorum. Umarım problem olmaz.

İyi Çalışmalar,
1.Çözüm olarak,
Fark adında bir text box ekledim ve alttaki kodları yazdım.

Kod:
Option Compare Database
Option Explicit
Dim OncekiDeger

Private Sub Ayrıntı_Print(Cancel As Integer, PrintCount As Integer)
    If IsNull(OncekiDeger) Or IsEmpty(OncekiDeger) Or OncekiDeger = 0 Then
        Me.FARK = 0
    Else
        Me.FARK = Me.EA1 - OncekiDeger
    End If
    OncekiDeger = Me.EA1
End Sub

2. Çözüm olarak Crosstab - Çapraz sorgu ile
tüm günü detaylı olarak görebileceğiniz bir örnek ekledim ve 3 farklı şeklini yaptım.

Ayrıca sorguda kod ile de çözülebilirdi ancak fırsatım olmadı ve
bunlar yeterli sanırım.
Sorgu ile de farkı hesaplamak için gerekli olan
önceki değer böyle bulunabilir

Kod:
SELECT FLTIME, EA1, (SELECT Top 1 EA1 FROM ENERJI1 Where FLTIME<Srz.FLTIME Order By FLTIME DESC) AS OncekiDeger
FROM ENERJI1 AS Srz
ORDER BY Srz.FLTIME;

Ama rapordaki kod performans açısından daha iyi bir çözüm gibi.
Seruz merhaba,

Yardımlarınıziçin teşekkür ederim. Çözüm-1 olarak göndermiş olduğunuz program benim işimi görüyor. Ancak bu kod Access 2003'te çalışmasına rağmen Access 2007'de çalışmıyor. Bu konuda da yardımınızı bekliyorum.

İyi Çalışmalar,
Sayfalar: 1 2