Membuat Nomor Otomatis

Banyak pertanyaan di milis tentang cara membuat nomor baru secara otomatis. Misalnya nomor untuk Surat Jalan dimana nomor tersebut meningkat secara otomatis (sekuensial).

Berikut ini ada sebuah function sederhana untuk membuat nomor Surat Jalan secara otomatis.

Asumsi:
Table bernama: tbl_SuratJalan
Field nomor bernama: NoSuratJalan, type: Text, Size: 10 chars.

Nomor Surat Jalan terdiri dari 4 character pertama berisi prefiks, mungkin untuk kode lokasi, kode department, atau semacamnya. Nomor urut (sekuensial) panjangnya 6 chars.

Function NoBaru()
'Originally created by Haer Talib for RumahAccess.com
Prefiks = "AAbb"

NoBaru = Prefiks & "000000"
tSQL = "SELECT Max(NoSuratJalan) AS LastNo FROM [tbl_SuratJalan] " & _
"WHERE NoSuratJalan > '" & Prefiks & "000000' And NoSuratJalan <= '" & Prefiks & "999999'"
Dim rs1 As Object
Set rs1 = CurrentDb.OpenRecordset(tSQL, dbOpenDynaset, dbSeeChanges)
If Not rs1.EOF Then
LastNo = Val(Right(Nz(rs1!LastNo, "0"), 6))
Else
LastNo = 0
End If
rs1.Close
Set rs1 = Nothing
NoBaru = Prefiks & Format(LastNo + 1, "000000")
End Function


Anda bisa mengkustomasi function di atas untuk keperluan anda.
Unsur-unsur yang perlu dikustomasi adalah:
- Nama Table
- Nama Field untuk nomor
- String untuk Prefiks.

Semoga bermanfaat.

16 komentar:

Anonim mengatakan...

Sy orang baru di dunia programing.
Mr. gimana kalo penomorannya formatnya seperti ini :

"kode_barang-tahun-00000"

dimana setiap pergaantian tahun, nomor urut otomatis berubah ke awal lagi?

fadil mengatakan...

pertanyaan saya sama dengan di atas. apakah bisa penomorannya seperti itu..

saya juga baru dalam menggunakan access ini, apakah bisa access ini dipakai untuk pencatatan surat keluar dan masuk.?

Nature mengatakan...

Bagaimana untuk Pengkodean nomor di depan..
Misal :
"0000/AKU/V/2011"

Dan Berubahnya Setiap Pergantian Tahun Saja..!

Nature mengatakan...

Bagaimana Jika Hurufnya di bagian depan.
Misal : "0000/AKU/V/2011"

Dimana setiap Pengantian Tahun saja nomornya direset

Dzik mengatakan...

Bagaimana cara menggunkannya mas, maklum masih baru belajar...thanks

Zaitun Hakimiah NS mengatakan...

kurang cara penggunaannya mas.
mohon bantuannya

rois.mohamad mengatakan...

mas saya sudah mencoba yg ini berhasi, tp pas saya coba kombinasi dengan prefiksnya di ganti dg combobox dg pilihan A, b dan c

pas saya coba prefiks a, simpan bisa ngurut a1, a2 dst
pas di pindahin ke b, simpan
bisa ngurut juga b1, b2 dst

tp pas balik ke A lagi, eh balik lagi ke A1 padahal td ud bisa sampe a3 jd tidak bisa lanjut ke a4 begitu jg dg b
pas di cek di tabelnya ternyata isinya cuma 1

gmn ya mas, txs

Hasan Gmc mengatakan...

Yang membuat pos sudah dikubur,.. ga ada balasan komentar dari ke 7 komentar diatas dari tahun 2008 s/d 2014 dan status pos sudah basi. hihihihi....
Ga tanggungjawab bener ni yang punya pos.

Hasan Gmc mengatakan...

Saya coba jawab ni buat anonim komentar nomor 1 :
Ganti kode :
Prefiks = "AAbb"
NoBaru = Prefiks & "000000"

menjadi :
Prefiks = Kode_barang & "-" & format(date,"yyyy") & "-"
NoBaru = Prefiks & "000000"

Maka hasilnya akan menjadi :
"kode_barang-2014-00000" dst... jika record bertambah.

Tentukan kode barangnya sesuai kebutuhan.

Selamat mencoba semoga sesuai keinginan.

Hasan Gmc mengatakan...

Mencoba juga menjawab penanya nomor 3 atau Nature.

Ganti kode :
Prefiks = "AAbb"
NoBaru = Prefiks & "000000"

menjadi :
Prefiks = "/AKU/V/" & format(date,"yyyy") *** tahun akan menyesuaian terhadap tahun system pada komputer anda ****
NoBaru = "0000" & Prefiks

Maka hasilnya akan menjadi :
"0000/AKU/V/2014" dst... jika record bertambah.

Tentukan kode barangnya sesuai kebutuhan.

Selamat mencoba semoga sesuai keinginan.

Hasan Gmc mengatakan...

to Dzik.

Cara menggunakannya pada editor VBA access.

Kalo memang belum tahu sama sekali, saya agak bingung juga memberikan pencerahan, sementara tahunya anda sebatas mana, saya belum tahu. tapi kalo memang belum tahu sama sekali, silahkan belajar dulu dari tingkat dasar.

Hasan Gmc mengatakan...

mencoba menjawab sdr. Rois Muhamad

Jika pengisian berdasarkan pilihan combo = a sukses menjadi a1, a2
dan pilihan combo = b juga berhasil menjadi b1, b2

Namun jika combo dikembalikan ke pilihan combo = a bukan berlanjut menjadi a3 namun balik lagi ke a1, kemungkinan ada kesalahan pada pengetikan sourcenya :

If Not rs1.EOF Then
LastNo = Val(Right(Nz(rs1!LastNo, "0"), 6))
Else
LastNo = 0
End If
rs1.Close
Set rs1 = Nothing
NoBaru = Prefiks & Format(LastNo + 1, "000000")

Jika sudah diperbaiki namun masih tetap balik ke nomor awal, coba index primary field NoBaru nya.

Selamat mencoba.

Sma Almuayyad mengatakan...

Mau nanya, saya sudah bisa membuat namun nomor urut tadi tidak terekam pada field, bagaimana cara mengatasinya ...

Sma Almuayyad mengatakan...

Kemudian peletakan cara memanggil fungsi ini dimana?

ifvan laia mengatakan...

Terimakasih ilmunya mas... sangat membantu.

arikrennn mengatakan...

pa bisa minta file mentahnya kirim ke arikrennn@gmail.com