Mengatasi Penomoran Nota pada Transaksi Multiuser
Suatu aplikasi,software, program keuangan (manajemen dan monitoring) yang baek tentunya,mempunyai mekanisme pembuatan no nota yang otomatis sesuai urutan tanggal transaksi tertentu. Mengikuti perkembangan teknologi informasi, aplikasi harus bisa mendukung jaringan, sehingga bisa digunakan serentak oleh banyak user dalam waktu yang bersamaan. Oleh karena, dalam database tidak diperbolehkan adanya no nota yang sama dalam transaksi yang berbeda, maka harus dikondisikan secara otomatis penomoran yang selalu update per satuan waktu tertentu
Dalam desktop development, pemakaian komponen timer, menjadi suatu solusi untuk hal ini. Secara default, kecepatan timer adalah mili detik atau seper seribu detik. Dengan asumsi, koneksi jaringan mantap dan semua sistem berjalan normal, maka user dalam menjalankan aplikasi (misal) kasir, rata2 butuh waktu 1 menit. Dalam setiap kesempatan melakukan penyimpanan data (dengan tekan tombol simpan), pastilah ada perbedaan waktu meski itu setengah detik. Jadi interval waktu apikasi dalam membuat nota secara otomatis 1/1000 detik akan menjamin no nota tidak akan ganda.
Cuplikan source code :
Sub nmr()
Dim Vbln, Vthn As String
Vbln = VBA.Mid(vba.format(vba.now,”dd/mm/yyyy”), 4, 2) '12
Vthn = VBA.Mid(vba.format(vba.now,”dd/mm/yyyy”), 9, 2) '08
strSql = "SELECT max(Val(Right(no_nota, Len(Trim(no_nota)) - 5))) as nota FROM jual"
Set rsData2 = cN.Execute(strSql)
With rsData2
If IsNull(!Nota) Then
txtNoNota.Text = VBA.Trim(Vbln) + VBA.Trim(Vthn) + "/1"
Exit Sub
End If
If Not .EOF Then
nomor = !Nota
a = nomor + 1 '1208-1
txtNoNota.Text = VBA.Trim(Vbln) + VBA.Trim(Vthn) + "/" + Trim(Str(a))
End If
End With
' End If
End Sub
Letakkan prosedure di atas pada sebuah timer yang telah diatur interval 1 mii detik.
Dalam desktop development, pemakaian komponen timer, menjadi suatu solusi untuk hal ini. Secara default, kecepatan timer adalah mili detik atau seper seribu detik. Dengan asumsi, koneksi jaringan mantap dan semua sistem berjalan normal, maka user dalam menjalankan aplikasi (misal) kasir, rata2 butuh waktu 1 menit. Dalam setiap kesempatan melakukan penyimpanan data (dengan tekan tombol simpan), pastilah ada perbedaan waktu meski itu setengah detik. Jadi interval waktu apikasi dalam membuat nota secara otomatis 1/1000 detik akan menjamin no nota tidak akan ganda.
Cuplikan source code :
Sub nmr()
Dim Vbln, Vthn As String
Vbln = VBA.Mid(vba.format(vba.now,”dd/mm/yyyy”), 4, 2) '12
Vthn = VBA.Mid(vba.format(vba.now,”dd/mm/yyyy”), 9, 2) '08
strSql = "SELECT max(Val(Right(no_nota, Len(Trim(no_nota)) - 5))) as nota FROM jual"
Set rsData2 = cN.Execute(strSql)
With rsData2
If IsNull(!Nota) Then
txtNoNota.Text = VBA.Trim(Vbln) + VBA.Trim(Vthn) + "/1"
Exit Sub
End If
If Not .EOF Then
nomor = !Nota
a = nomor + 1 '1208-1
txtNoNota.Text = VBA.Trim(Vbln) + VBA.Trim(Vthn) + "/" + Trim(Str(a))
End If
End With
' End If
End Sub
Letakkan prosedure di atas pada sebuah timer yang telah diatur interval 1 mii detik.
Komentar