AccessTr.neT

Tam Versiyon: aktif süre hesabı
Ş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 4
Arkadaşlar Merhaba

Acceste girilen 2 zaman arasındaki süreden , paydos sürelerini ve vardiya türüne göre bir güç kaybı süresi çıkararak aktif süre hesaplamak istiyorum. Güç kaybı sürelerini vardiya süresi 8,10 ve 12 saat olmasına göre Metin 153,156 ve 158'de hesapladım. Fakat vardiya türünün 8,10 veya 12 olmasına göre aktif süre bölümüne yazdıramıyorum. Bunun için bir kod yazdım fakat olmuyor. Kodu yalnızca şimdilik "paydos süresi" çıkılması yordamına koydum.

Diğer bir problemde bitiş süresi gece yarısından sonra olduğunda hesaplamayı yanlış yapıyorum. Örneğin başlangıç 20:00 bitiş gece 03:00 olması durumunda 17:00 çıkarıyor. Örneği ekte gönderiyorum.
http://rapidshare.com/files/300186761/AKM.accdb.html
Yardım eden arkadaşlara şimdiden teşekkür ederim :angel:
Yönetici mesajı:
Konu ilgili kategoriye taşındı
Sn yasinünal formda arama yaptınız mı? İsterseniz aşağıdaki linkleri inceleyiniz. Kolay gelsin. Saygılar...

https://accesstr.net/attachment.php?aid=3956

https://accesstr.net/attachment.php?aid=3957
Sayın Benremix yardımınız için teşekkür ederim. Fakat benim zaman farkım saatler arasındaki fark ayrıca bu zaman farkından çıkarılacak paydos süreleri ve güç kayıp süreleri gibi zamanlarda var. Yine vardiya gece 00:00'ı geçtiğinde çıkarma işlemini yukarıda belirttiğim üzee yanlış yapıyorum. Bunun için bazı vb kodları yazıyorum. Fakat çalışmıyor. Ayrıca Access programını da yeni öğrenmeye başlıyorum. Bu nedenle kodları yanlışta yazmış olabilirim.
TARİH FONKSİYONLARI

Date Fonksiyonu:
Sistemin tarih bilgisini döndürür.

Örnek:
Dim Tarih
Tarih =Date
Msgbox “Bu günün tarihi: ” & Tarih


Now Fonksiyonu:
Sistemin tarih bilgisini en ayrıntılı biçimde döndürür.

Örnek:
Dim Tarih
Tarih =Now
Msgbox “Şu an: ” & Tarih


DateAdd Fonksiyonu:
Belirtilen tarihe belli bir süreyi ekler veya çıkartır.

Kullanımı;
DateAdd(süre,sayi,tarih)
Süre eklenecek süre türünü belirtir, seçilen süreden ne kadar ekleneceğini belirtir, sayının ekleneceği tarihi belirtir.

Süre Degerleri;
Değer Açıklama
yyyy Yıl
q Çeyrek yıl (3 ay)
m Ay
y Yılın günü
d Gün
w Haftanın günü
ww Hafta
h Saat
n Dakika
s Saniye

Örnek:
Şimdi ”22.08.2003” tarihine 3 ay ekleyelim.

Dim ilkTarih As Date ‘Ekleme yapacağımız tarihi tanımladık
Dim EklenecekSure As İnteger ‘Eklenecek süreyi tanımladık
ilkTarih=”22.08.2003” ‘Ekleme yapacağımız tarihin değerini atadık.
EklenecekSure = 3 ‘Eklenecek sürenin degerini atadık.
YeniTarih=DateAdd(“m”,EklenecekSure,ilkTarih) ‘”m” değeri ay belirtir.
Msgbox YeniTarih

Örnek:
Şimdi ”22.08.2003” tarihine 15 gün ekleyelim.

Dim ilkTarih As Date ‘Ekleme yapacağımız tarihi tanımladık
Dim EklenecekSure As İnteger ‘Eklenecek süreyi tanımladık
ilkTarih=”22.08.2003” ‘Ekleme yapacağımız tarihin değerini atadık.
EklenecekSure = 15 ‘Eklenecek sürenin degerini atadık.
YeniTarih=DateAdd(“d”,EklenecekSure,ilkTarih) ‘”d” değeri gün belirtir.
Msgbox YeniTarih


DİKKAT: Eğer zaman ile ilgili işlem yapılacak ise “12.06.2003 15:35:19” şeklinde olmalı

DateDiff Fonksiyonu:
İki Tarih Arasındaki süreyi verir.

Kullanımı;
DateDiff(süre, Tarih1, Tarih2,Haftanın ilk günü,Yılın ilk günü)

Süre alınmak istenen tarih türünü belirtir,Tarih1 ilk tarihi,Tarih2 tarihi belirtir.
Sürenin değerleri yukarıdaki tablonun aynısıdır.
Eğer haftanın ilk günü belirtilmez ise ilk günü Pazar olarak kabul eder.

Haftanın İlk Günü
Sabit Değer Açıklama
vbUseSystem 0 Sistem değeri
vbSunday 1 Pazar (Varsayılan)
vbMonday 2 Pazartesi
vbTuesday 3 Salı
vbWednesday 4 Çarşamba
vbThursday 5 Perşembe
vbFriday 6 Cuma
vbSaturday 7 Cumartesi

Yamuk yumuk oldu ama neyse..

Örnek:
Diyelim ki “13.02.2003” tarihinden bu gün ki tarihe kadar kaç gün geçti?

Dim Tarih As Date ‘Kullanacağımız tarihi tanımladık.
Dim Mesaj As String ‘Mesajın içeriği için değişken tanımladık
Tarih = “13.02.2003” ‘‘Kullanacağımız tarihi değerini atadık
Mesaj = DateDiff(“d”,Now,Tarih) ‘”d” ile günü,Now ile şimdiki tarihi belirttik
Msgbox “Bu günden bu kadar gündür:” & Mesaj


Örnek:
“13.02.2003” tarihi ile “15.07.2003” tarihi arasında kaç hafta var?

Dim Tarih1 As Date ‘Tarihleri tanımladık.
Dim Tarih1 As Date ‘Tarihleri tanımladık.
Dim Mesaj As String ‘Mesajın içeriği için değişken tanımladık
Tarih1 = “13.02.2003” ‘Tarihlere değerlerini atadık.
Tarih2 = “15.07.2003” ‘Tarihlere değerlerini atadık.
Mesaj = DateDiff(“ww”,Tarih1,Tarih2) ‘”ww” ile değeri hafta olarak istediğimizi belirttik.
Msgbox Mesaj & “ Haftadır.”



DatePart Fonksiyonu:
Verilen tarihin belirli bir kısmını verir.

Kullanımı;
DatePart(süre, Tarih,Haftanın ilk günü,Yılın ilk günü)

Süre yukarıdaki tabloda bukunan değerlerin aynısıdır.
Eğer haftanın ilk günü kullanılmaz ise Pazar haftanın ilk günü kabul edilir.


Örnek:
“13.02.2003” tarihinin yılını öğrenelim.

Dim Tarih As Date ‘Kullanacağımız tarihi tanımladık.
Dim Mesaj As String Mesajın içeriği için değişken tanımladık
Tarih = “13.02.2003” ‘Değişkene değerini atadıl
Mesaj = DatePart(“yyyy”,Tarih) ‘”yyyy” ile yıl değerini istediğimizi belittik.
Msgbox “Yıl: ” & Mesaj



Weekday Fonksiyonu:
Haftanın gün bilgisini dönderir.

Kullanımı;
Weekday(Tarih,Haftanınilkgünü)

Örnek:
Dim Tarih ‘Kullanacağımız tarihi tanımladık.
Dim GunAdi ‘Gün adını saklayacağımız değişkeni tanımladık
Tarih = “23.06.2003” ‘Değişkene değerini atadık.
GunAdi = Weekday(Tarih, ,vbMonday) ‘vbMonday ile haftanın ilk gününün pazartesi olduğunu belirttik.
‘Bize Gun 1 olarak döner, yani pazartesi, eğer haftanın ilk gününü pazartesi seçmemiş olsaydık. 2 yani Salı dönecekti.


WeekdayName Fonksiyonu:
Haftanın gün bilgisinin adını döndürür.

Kullanımı;
WeekdayName(HaftanınGunu, Kısaltma, Haftanınilkgünü)

Örnek:
Dim Tarih ‘Kullanacağımız tarihi tanımladık.
Dim Gun ‘Kullanacağımız gün numarasını saklayacağımız değişkeni tanımladık.
Dim GunAdi ‘Gün adını saklayacağımız değişkeni tanımladık.
Tarih = “23.06.2003” ‘tarih değişkenine değerini atadık.
Gun =Weekday(Tarih, vbMonday) ‘Belirttiğimiz tarihin haftanın kaçıncı günü olduğunu bulduk.
GunAdi = WeekdayName(Gun, ,False, vbMonday) ‘False değeri kısaltma yok demek.


Year Fonksiyonu:
Tarih bilgisinin yıl değerini döndürür.

Kullanımı;
Year(Tarih)

Örnek:
Dim Tarih, Yil
Tarih = “03.08.2003”
Yil = Year(Tarih) ‘2003 değeri döner.
Msgbox “Yıl: “ & Yil


Month Fonksiyonu:
Tarih bilgisinin ay değerini döndürür.

Kullanımı;
Month(Tarih)

Örnek:
Dim Tarih, Ay
Tarih = “03.08.2003”
Ay = Month(Tarih) ‘8 değeri döner.
Msgbox “Ay: “ & Ay


Day Fonksiyonu:
Verilen tarihin Ayın hangi günü olduğunu döndürür.

Kullanımı;
Day(Tarih)

Örnek:
Dim Tarih, Gun
Tarih = “23.06.2003”
Gun = Day(Tarih) ‘Bize Gun 23 olarak döner.


Time Fonksiyonu:
Sistemin zaman bilgisini döndürür.

Örnek:
Dim Zaman
Zaman =Time
Msgbox “Şuan saat: ” & Zaman


Hour Fonksiyonu:
Gün bilgisinin saat değerini verir.

Örnek:
Dim Zaman, Saat
Zaman =#3:12:19 PM#
Saat = Hour(Zaman) ’15 değeri döner.
MsgBox Saat


Minute Fonksiyonu:
Zamanın dakika bilgisini döndürür.

Örnek:
Dim Zaman, Dakika
Zaman =#3:12:19 PM#
Dakika = Minute(Zaman) ’12 değeri döner.
MsgBox Dakika


Timer Fonksiyonu:
Zamanı saniye cinsinden verir.

Örnek:
Dim Sn
Sn = Timer
Msgbox Sn

Alıntıdır.
Sn puletine Tesekkur

Bence şunu da deneyiniz;
Bir modülün içerisine;
Kod:
Function zfark(tarih1 As Date, tarih2 As Date, arg As String)

zfark = DateDiff(arg, tarih1, tarih2)

End Function
fonksiyonu kullanırken örneğin GirisTarihi ile CikisTarihi arasındaki farkı dakika göstertmek için;

Kod:
=zfark(GirisTarihi;CikisTarihi;"n")
yazın. iki tarih arasındaki farkı dakika olarak verecektir. Saat olarak almak için "n" yerine "h" yazın.
Arkadaşlar sanırım derdimi tam anlatamadım. Benim tarihlerimde gün yok sadece saatler var. Zaten accesste gün ve saati aynı anda yazdıramıyorum. (01.11.2009 13:20 gibi yazamıyorum) Ayrıca asıl derdimin kaynağı ekteki örneği incelerseniz "paydos süresi alanına" çıkıldığında yordamına bir if kodu ekledim fakat çalışmıyor. Anlamıyorum şu ana kadar yazdığım neredeyse hiç bir if kodunu çalıştıramadım. Bana asıl bu konuda yardımcı olursanız. Sanırım diğer problemleri çözebilirim.
Sayfalar: 1 2 3 4