• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Database Saatleri Toplama

Trilenium

Destek Ekibi
Destek Ekibi
Katılım
16 Eylül 2008
Mesajlar
1,299
Excel Vers. ve Dili
Microsoft Office 2019 English
Merhaba,

Bir adet .mdb database dosyam var.

Bu dosya içerisinde bir tabloda kişilere ait saatleri tutuyorum. Veriler; SicilNo,AdSoyad,Tarih,BaslangicSaati,BitisSaati,FarkSaati,Ay adlı alanlara yazılı.

Verilerin tipleri

Tarih =Datetime
BaslangicSaati=Datetime
BitisSaati=Datetime
FarkSaati=Text
Ay=Text

Bu bilgiler ışığında ; Ben Aylık bazda hangi kişi Toplam Kaç saati (Farksaati) bulunmaktadır. Nasıl bir SQL cümleciği ile bunu alabilirim. Format(Sum ile denediğim yöntem kalmadı olmadı malesef.

Örnek Detay Liste;
123 - Ali Veli Konya 12:30 Nisan
123 - Ali Veli Konya 10:00 Nisan
123 - Ali Veli Konya 10:30 Nisan
123 - Ali Veli Konya 08:30 Nisan

123 - Ali Veli Konya 12:30 Mayıs
123 - Ali Veli Konya 10:00 Mayıs
123 - Ali Veli Konya 10:00 Mayıs
123 - Ali Veli Konya 08:30 Mayıs

Almak istediğim Sonuç

123 - Ali Veli Konya 41:30 Nisan
123 - Ali Veli Konya 41:00 Mayıs


Not : Detaylı listeyi Listview üzerinde gösterebiliyorum,eğer SQL sorgusu ile halledemiyor isem Listviewden de özete gidebilirim
 
Bende MS Acess olmadığı için, verdiğiniz örnek datayla Excel üzerinde bir örnek yaptım.

Siz SQL sorgusunu kendinize göre detaylandırırsınız....

.
 

Ekli dosyalar

Haluk Bey merhaba,

Deneyip size geri dönüş yapacağım.
Teşekkürler
 
Merhaba,

Haluk Bey , bu kod işimi malesef çözmedi :(
 
1 Hafta önce yazdığım mesajda belirttiğim gibi, bende MS Access olmadığı için, ben Excel üzerinde deneme yapıp çalışan kodu önermiştim.

Access dosyanız olsaydı belki bir çözüm bulurduk...

.
 
Örnek Access dosyası ektedir.
 

Ekli dosyalar

  • VTA.zip
    VTA.zip
    510.1 KB · Görüntüleme: 14
Örnek Access dosyası ektedir.

Aceess dosyasında Fark Saati (TotalTime) formatını "Text" olarak belirlediğiniz için toplama yapılamaz. Toplama için Sayısal veri olarak ayarlamalısınız.
buna göre yeni Access dosyasını gönderirseniz üzerinde bakabiliriz.
iyi Çalışmalar.
 
İlk mesajımda belirtmiştim bunu text diye.
 
Aceess dosyasında Fark Saati (TotalTime) formatını "Text" olarak belirlediğiniz için toplama yapılamaz. Toplama için Sayısal veri olarak ayarlamalısınız.
buna göre yeni Access dosyasını gönderirseniz üzerinde bakabiliriz.
iyi Çalışmalar.

Access' te "TotalTime" formatını Tarih yada sayı olarak belirledikten sonra ekli kodları kullanabilirsiniz. iyi Çalışmalar.
 

Ekli dosyalar

Haluk Bey merhaba,

Ellerinize sağlık teşekkür ederim.

Ben listview kullanıyorum, ve listwieve şu şekil de toplamak istiyorum. Sicil ve Ad Soyad sonra ayları dizicem ve toplamlarını göstereceğim.

Aylar bazında saat toplamları.

223295
 
Yani .... benden beklentiniz nedir ? Onu anlamadım.

.
 
Haluk Bey tekrar merhaba,

Ellerinize sağlık çok teşekkür ederim. Kodu

trSQL = "Select [Sicil], " & _
"sum(CDate([TotalTime])) as [ToplamSaat] " & _
"from [Veri6] as Table1 where [Ay]='" & Range("H2") & "'" & _
"group by [Sicil],[Ay]"


yapınca istediğim veriye ulaştım.
 
Neyse halletmişiniz, geçmiş olsun.

2 No'lu mesjımda belirttiğim gibi; ben strSQL'i örnek vermiş ve geliştirilmesini size bırakmıştım.

.
 
Evet, bunu yatay olarak raporlamak için kodlamam gerekecek sadece.
 
"Transform" ifadesi ile arama yapınız.
 
Veysel Bey merhaba,

Powerquery için ne zamandır bakınıyordum, güzel örnek olmuş, inceleyip öğreneceğim. Çok teşekkür ederim
 
Google Sheets'e merakı olanlar için;

@Korhan Ayhan arkadaşımızın önerdiği işlemin Google Sheets'de QUERY fonksiyonu kullanılarak yapılmış bir örneğini bugün kişisel blog'umda yayınladım.


.
 
Önerdiğim çözümün sizin Access dosyası için hazırlanmış kodları ektedir. Sarı renkli alana "Sicil" girin, butona basın ...

.
Haluk hocam merhaba,

burada yer alan Access dosyası herhangi bir server altında bulunulursa; server' a kullanıcı adı ve şifre ile bağlanması durumunda; aşağıdaki connection string dizininde nasıl bir düzenleme yapmak gerekir.

IP = 192.168.1.18
Username = administrator
password = 12345

Kod:
yol = "//192.168.1.18/Users/Administrator/Desktop"
 strFile = yol & "\VTA.mdb"
    
    With objADO
        If Val(Application.Version) < 14 Then
            .Provider = "Microsoft.Jet.OLEDB.4.0"
        Else
            .Provider = "Microsoft.Ace.OLEDB.12.0"
        End If
       .ConnectionString = strFile
       .Open
    End With

teşekkürler, iyi akşamlar.
 
Geri
Üst