Perintah dalam codingnya yang kurang benar, kalau dalam sql, jika ada perintah
agregate funtion (MAX...), maka hasil dari perintah SQL nya sudah pasti tetap 1
record. Tetapi walaupun 1 recor, nilai record yang dihasilkan null. jadi
didalam code, tambahkan pengecekan null
If AdoNoUrut.RecordCou nt = 0 Then
N = 0 (baris ini tidak akan dilewati oleh program, krn jumlah record data
berjumlah 1)
Else
AdoNoUrut.MoveLast
N = AdoNoUrut.Fields( "N")
End If
N = N + 1
code diatas dirubah menjadi :
If AdoNoUrut.RecordCou nt = 1 Then
if isnull(AdoNoUrut( "N")) = true then ' jika isi N = nulll maka nilai N = 0
N = 0
Else
N = AdoNoUrut.Fields( "N")
End If
End If
N = N + 1
Semoga membantu: =(oVo)=
====================
BaceInside Publisher
Copyright @2007
Not for reproduced, republished.
Thank You
====================
----- Original Message ----
From: mukromin <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]; [email protected]
Sent: Monday, April 30, 2007 10:23:58 AM
Subject: [Programmer-VB] Nomor Otomatis
Selamat pagi rekan-rekan semua, saya punya koding seperti dibawah.
Sub NoUrut()
Set AdoNoUrut = New Recordset
AdoNoUrut.Open "Select Left(Max(tblIn. In_Id),4) As N from tblIn", db,
adOpenStatic, adLockOptimistic
If AdoNoUrut.RecordCou nt = 0 Then
N = 0
Else
AdoNoUrut.MoveLast
N = AdoNoUrut.Fields( "N")
End If
N = N + 1
txtNomor.Text = Format(N, "0000") & "-" & Format(Now, "MMM-yy") & ("-" & "IN" )
End Sub
Private Sub cmdAdd_Click( )
Call NoUrut
End Sub
Pada saat cmdAdd diclick nomor otomatis urut ( N + 1 ). Masalahnya jika tblIn
masih kosong nomor tidak otomatis
menjadi 1. Untuk nomor ke 2 dst tidak masalah. Mohon pencerahannya. Terima Kasih
Salam
Mukromin
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com