Tips #1:
kalo saya yang ketemu masalah seperti itu, akan membuat function sbb.
Private Function TotalMasuk(byval varNIK As String) as integer
Dim vCnString As String, varHitung as Integer
Dim rsAbensi As New ADODB.Recordset
vCnString = "SELECT * FROM Absensi WHERE NIK = '" & varNIK
& "'"
With rsAbsensi
.Open vCnString, gConnection, adOpenDynamic,
adLockOptimistic
If Not .EOF Then 'menjaga kemungkinan NIK yang
diberikan tidak ditemukan
varHitung = iif(isnull(!M1),0,1) + iif(isnull(!
M2),0,1) + iif(isnull(!M3),0,1) + _
iif(isnull(!M4),0,1) + iif(isnull(!M5),0,1)
End If
End With
TotalMasuk = varHitung
End Function
function ini bisa dipanggil dari procedure yang memanggil list nik
dan mengkalkulasi absensi untuk setiap NIK.
boleh dengan cara menampilkan dalam list box, flex grid atau dengan
membuat temporary tabel untuk menampilkan
data tsb dalam report.
Tips #2:
Tips lain yang akan sangat memudahkan kerjaan tanpa harus membuat
function dan temporary tabel adalah dengan menambahkan field sejumlah
banyaknya field M1, M2,.. dst misalnya iM1, iM2, .. dst
Datatype-nya integer (smallint), default value-nya 0. pada saat data
absensi dimasukkan oleh mesin, tambahkan sedikit command untuk
mengisi field iMx itu dengan angka 1.
Dengan contoh yang anda berikan maka perintah SQLnya menjadi:
"SELECT NIK, SUM(iM1 + iM2 + iM3 + iM4 + iM5) FROM ABSENSI"
data yang dihasilkan:
001 5
002 3
003 5
Semoga membantu.
Salam VB
--- In [email protected], Zulfikar Vcar <[EMAIL PROTECTED]>
wrote:
>
> Ket : 1. Datatype Field M1-M5 adalah nvarChar
> 2. saya ingin tahu total jumlah kehadiran NIK 001 adalah
4, NIK 002 = 3 dan NIK 003 = 5
> 3. nilai NULL artinya karyawan tsb tidak masuk.
>
> Atas bantuannya saya ucapkan terima kasih................
>