AccessTr.neT

Tam Versiyon: saatleri alt alta toplama hatası
Ş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 3
arkadaşlar ,personellerin işe giriş-çıkış kaydı yapan program
fakat giriş saati ile çıkış saati arasındaki fark kaç saat çalıştığını göstermesi gerekiyor.

örnek çıkış saati-giriş saat=aradaki fark
10:00 - 18:00 = 8:00 olması gereken

fakat yanlış bir rakam veriyor. yardımınızı bekliyorum.
calısansaat sorgusundaki saat: alanındaki *60'ı sil, AylikCalisilanSaat raporundaki saat metin kutusunun özelliklerindeki biçim'e Uzun Saat yaz.

Ayrıca tablolardaki alanlara giriş maskesi yanlış
Örneğinizin düzenlenmiş hali aşağıdadır.
öncelikle teşekkür ederim.giriş ve çıkış saatleri arasındaki farkı doğru veriyor.fakat saatleri alt alta topladığında ,toplam 24 saatten fazla ise toplam saat şaşıyor.bu durumda nasıl bir toplama yapmak gerekir.bakabilirseniz sevinirim.
örnek : 10:00
12:00
15:00
bu saatlerin toplamı 37:00 olması gerekirken başka bir rakam çıkıyor.
arkadaşlar personel giriş-çıkışlarını kaydeden program.
1-x personel raporlarda ise haftalık kaç saat çalışmış.
2-x personel aylık kaç saat çalışmış şeklinde.
fakat bunu raporlarda nasıl elde edeceğimi bilemiyorum.
saatleri alt alta topladığında 24 saati geçince rapor toplamı yanlış sonuç veriyor.
örnek : 10:00
12:00
08:00
toplam 30:00 saat sonuç vermesi gerekirken başka bir sonuç veriyor.

bu konuda personel bazında haftalık ve aylık kaç saat çalıştığını alabileceğim rapor konusunda yardımlarımlarınızı bekliyorum.

şimdiye kadar hiç bir karşılık beklemeden yardımcı olan arkadaşlara teşekkür ediyorum.access hiç bilmeyen biri olarak burda çok şey öğrendim.
Merhaba

Sorgunuzda

Kod:
saat: DateDiff("h";[giris];[cikis])

şeklinde bir alanla saat olarak

Kod:
dakika: DateDiff("n";[giris];[cikis])

şeklinde bir alanla da dakika olarak süreyi alabilirsiniz. Ama benim önerim Sledgeab'ın dediği gibi bu alanları saat olarak değil tarih + saat olarak almanızdır. Bunun için giriş ve çıkış alanlarına now() şeklinde veri gönderin. Sonra da datediff komutuyla bu alanlar arası süreyi çıkarın. Böylece mesela 01.03.2009 tarihinde işe başlayıp 02.03.2009 tarihinde, yani bir sonraki gün işi bırakan adamın çalışmasını da hesaplarsınız. Sanıldığı gibi her zaman mesai saatleri içinde çalışanlar olmayabilir.

Kolay gelsin.
Bunu nasıl yaparım derseniz:

1- Önce tablonuzdaki tarih maskesini kaldırın. Maskeleri tabloya değil formlara koymanızı öneririm. (Maskeyi kaldırmasanız da olur ama aklıma geldiği için yazdım)
2- Formunuzdaki giriş ve çıkış butonlarının kodlarındaki

Kod:
.Fields("giris") = Time

satırlarını

Kod:
.Fields("giris") = Now()

şekline dönüştürün. Sonra da CalisilanSaat isimli sorgunuza boş bir alana dediğim kodu ekleyin. Bu kadar.. Artık gerisiniz siz halledersiniz.
Hocamın açıklamasına ek olarak Microsoft'un sitesinde yapılan şu makaleyi de okumanızı tavsiye ederim:

http://support.microsoft.com/kb/210604

Burda da kod ile yapılması anlatılıyor...
Sayfalar: 1 2 3