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................
>  


Kirim email ke