Bpk, ada satu kolom yg kurang di sheet datadasar, yakni kolom status, apakah
statusnya in atau out. Semua mesin absen, dari tipe yg lama s.d yg baru umumnya
selalu ada / menyertakan tombol in out, bila tidak ada, akan sulit diketahui
apakah jam pulang atau jam masuk. Bahkan mesin absen manual seperti Amano pun
ada tombol in out nya. Selain itu, harus ada data Master Shift Karyawan, dan
Bpk sdh membuatnya di sheet "schedule". Fungsi master shift, supaya orang yg
masuk jam 9 malam, pulangnya kan di tanggal berikutnya (yakni jam 7 pagi),
kalau langsung dibuat query akan sulit karena sudah berbeda tanggal, karena itu
harus dibandingkan dengan master shift karyawan tersebut, bila hari ini dia
shift 3, maka kalau dia melakukan absen jam 9 malam, maka program harus cek jam
keluarnya pada tanggal berikutnya. Jadi Bpk coba cek di mesin absen, apakah ada
fasilitas/tombol In Out, kalau ada, harap diaktifkan.
Namun bila memang tidak ada fasilitas tsb, terpaksa Bpk harus buat query
tambahan utk mengetahui statusnya, supaya diketahui jam masuk atau jam keluar
dari suatu record, gunakan VBA dengan fungsi if, misal:
'Code sebelumnya...............
Dim Status As String
If Shift = 1 Then
If Jam >= #6:30:00 PM# And Jam <= #7:30:00 PM# Then
Status = "In"
ElseIf Jam >= #1:30:00 PM# And Jam <= #2:30:00 PM# Then
Status = "Out"
End If
ElseIf Shift = 2 Then
If Jam >= #1:30:00 PM# And Jam <= #2:30:00 PM# Then
Status = "In"
ElseIf Jam >= #8:30:00 PM# And Jam <= #9:30:00 PM# Then
Status = "Out"
End If
ElseIf Shift = 3 Then
If Jam >= #8:30:00 PM# And Jam <= #9:30:00 PM# Then
Status = "In"
ElseIf Jam >= #6:30:00 PM# And Jam <= #7:30:00 PM# Then
Status = "Out"
End If
End If
'Dst...............
Namun bila Bpk tidak ingin membuat function status In Out seperti diatas, maka
Bpk langsung buat saja function untuk Jam Masuk dan function untuk Jam Keluar,
misal:
Function JamMsk(Jam As Date) As Date
If Shift = 1 Then
If Jam >= #6:30:00 PM# And Jam <= #7:30:00 PM# Then JamMsk = Jam
ElseIf Shift = 2 Then
If Jam >= #1:30:00 PM# And Jam <= #2:30:00 PM# Then JamMsk = Jam
ElseIf Shift = 3 Then
If Jam >= #8:30:00 PM# And Jam <= #9:30:00 PM# Then JamMsk = Jam
End If
End Function
Function JamKrl(Jam As Date) As Date
If Shift = 1 Then
If Jam >= #1:30:00 PM# And Jam <= #2:30:00 PM# Then JamKrl = Jam
ElseIf Shift = 2 Then
If Jam >= #8:30:00 PM# And Jam <= #9:30:00 PM# Then JamKrl = Jam
ElseIf Shift = 3 Then
If Jam >= #6:30:00 PM# And Jam <= #7:30:00 PM# Then JamKrl = Jam
End If
End Function
Tempel fungsi diatas di query. Range jam sengaja saya lebih kurangkan sebanyak
30 menit mengingat karyawan bisa saja datang lebih awal dan datang terlambat.
Setelah ada querynya, bisa dibuat make table dan query lainnya.
Thank's
----- Original Message -----
From: GALIH PERSADHA
To: [email protected]
Sent: Tuesday, 23 February 2010 4:18 PM
Subject: [belajar-access] mohon solusinya [1 Attachment]
[Attachment(s) from GALIH PERSADHA included below]
saya ingin ada data dari ms access saya export ke exel
data dasar ada di sheet data dasar
dengan menggunakan kriteria dari data schedule saya ingin membuat output
seperti pada sheet hasil yang diinginkan
mohon bantuannya
------------------------------------------------------------------------------
Lebih aman saat online.
Upgrade ke Internet Explorer 8 baru dan lebih cepat yang dioptimalkan untuk
Yahoo! agar Anda merasa lebih aman. Gratis. Dapatkan IE8 di sini!