Tuesday, February 10, 2009

Access>> Membuat Nomor Urut Otomatis

Membuat nomor urut otomatis dengan format 'yyyymmdd999'. Mengapa susunannya ymd bukan dmy? susunan ymd menghasilkan urutan record yang relevan saat diurutkan berdasarkan nomor urutnya. Kode dalam MS-Access seperti ini :

Private Sub cmdsimpan_Click()
Dim db As Database Dim rs As Recordset
Dim str As String
Dim nomor As Integer
Dim strnomor As String
Dim vnomor As String

Set db = CurrentDb()
Set rs = db.OpenRecordset("tnomor")
If rs.RecordCount <> 0 Then
rs.MoveLast
vnomor = rs!nourut
If Val(Mid(vnomor, 5, 2)) = Month(Now()) Then
nomor = Val(Right(vnomor, 3))
nomor = nomor + 1
Else
nomor = 1
End If
Else
nomor = 1
End If
strnomor = Format(nomor, "000")
rs.AddNew rs!nourut = Format(Now(), "yyyymmdd") & strnomor

rs.Update
rs.Close
db.Close
End Sub

file .mdb silahkan download disini
Link

73 comments:

  1. Mas bisa minta tolong dikasih contoh file mdb dengan form yang menggunakan script diatas?
    Kirim ke email saya aja ud13en@gmail.com
    Saya coba praktekkan kesulitan membuat tabel yang dibutuhkan untuk membuat form-nya.
    Atau paling tidak dikasih struktur tabel yang dibutuhkan untuk menjalankan script diatas
    Terima Kasih sebelumnya.

    ReplyDelete
  2. mas saya juga minta tolong dikirim mas ke mail saya "emsanadi@gmail.com
    terima kasih sebelumnya...

    ReplyDelete
  3. paket sudah dikirim, ya.....

    ReplyDelete
  4. mas saya juga minta contoh file nya yah
    mail saya robotvoltus@gmail.com

    ReplyDelete
  5. Bisakah ke saya juga ??
    trims....

    roronoajoenoez@gmail.com

    ReplyDelete
  6. ini nomor buat apa ya mas Edi :
    seperti autonumber kah?

    trus ini artinya apa? koq pake 5,2 :
    rs.MoveLast
    vnomor = rs!nourut
    If Val(Mid(vnomor, 5, 2)) = Month(Now()) Then
    nomor = Val(Right(vnomor, 3))

    tks

    ReplyDelete
  7. betul, ini untuk autonumber yang reset setiap berganti bulan dengan format "yyyymmddnomor". perintah "Mid(vnomor, 5, 2)" untuk mengambil nilai mulai posisi 5 sebanyak 2 karakter/digit, yaitu "mm". fungsi lengkapnya untuk memeriksa apakah bulan pembuatan nomor urut sama dengan bulan pada record terakhir, shingga kalau masih sama nomor + 1, kalau tidak akan direset nomor = 1.

    rs.MoveLast -> pindah ke record terakhir
    vnomor = rs!nourut -> variabel vnomor diisi dengan data dari field nourut
    If Val(Mid(vnomor, 5, 2)) = Month(Now()) Then -> dijelaskan diatas
    nomor = Val(Right(vnomor, 3)) -> ambil tiga karakter dari posisi paling kanan, konversi menjadi tipe numerik dengan function val().

    ReplyDelete
  8. Mas saya juga dikirim file mdb ke email saya sugiwibowo@yahoo.com terima kasih sebelumnya.

    ReplyDelete
  9. Mas saya juga dikirim file mdb ke email saya ikrar_mq@yahoo.com terima kasih sebelumnya.

    ReplyDelete
  10. aduh...moga mas belum bosen ngirim contoh mdbnya...kbetulan bgt saya nyari2 hal ini dah lama,,,bisa minta tolong kirim juga mas ke
    the_agestha@yahoo.com
    tengkyu bgt ya mas

    ReplyDelete
  11. Boleh donk mas kirim file mdbnya..
    ke emailku hermawan_yahoo.com.au

    ReplyDelete
  12. @Hermawan : email address-nya salah, ya.... tidak bisa terkirim.

    ReplyDelete
  13. oh hermawan_b29@yahoo.com mas..
    maaf...
    bisa kirim lagi pak..
    Thx b4.

    ReplyDelete
  14. oh iya...
    yg bener : hermawan_b29@yahoo.com.au mas...

    big thx mas..

    ReplyDelete
  15. Mas, bisa tolong file na di upload kan ke file host ga ?, biar ga perlu pake kirim2 an, thanks

    ReplyDelete
  16. file sudah di-aplot..... silahkan yang mau donlot gak perlui japri lage....

    ReplyDelete
  17. mas kalo misalnya nomor baru merupakan nomor terakhir + 1 dari record yang ada dan berhubungan dengan field lain.
    contoh tabelnya :

    jenis | nomor |
    S |001 |
    S |002 |
    SP |001 |
    ND |001 |
    ND |002 |

    jadi nomor baru untuk jenis S (misal dipilih dari combobox)adalah 003, nomor baru untuk jenis SP adalah 002, nomor baru untuk jenis ND adalah 003. Mohon petunjuknya. Terima Kasih.

    (Budhi)

    ReplyDelete
  18. @budi : cek mdb-nya disini : http://www.mediafire.com/file/c359b971nqphtf2/NoUrutbyGroup.mdb. selamat berkreasi......

    ReplyDelete
  19. Terima kasih atas tanggapan dan bantuannya.
    Maaf, ada lagi yang saya tanyakan di http://edirosadie.blogspot.com/2009/08/berbagi-pakai-database-ms-access.html.

    (Budhi)

    ReplyDelete
  20. Kode Barang muncul otomatis dengan ketentuan 6 digit, 3 digit pertama “BRG”, 3 digit berikutnya angka.

    itu gimna cara bikinnya ya ?? tolong bantu

    ReplyDelete
  21. modif aja bagian ini :

    strnomor = Format(nomor, "000")
    rs.AddNew
    rs!nourut = Format(Now(), "yyyymmdd") & strnomor

    menjadi:

    strnomor = Format(nomor, "000")
    rs.AddNew
    rs!nourut = "BRG" & strnomor 'baris ini yg berubah

    salam

    ReplyDelete
  22. @budhi :
    1. baris yang ini => nomor="' & text2 & "' dibuang single quote-nya menjadi =>nomor= "& text2 & "

    2. gunakan variabel :

    dim vnomor as integer
    dim vtanggal as string

    if len(trim(text1)) < 1 then
    vnomor=0
    else
    vnomor=text2
    endif

    if len(trim(text4)) < 1 then
    vtanggal= "01/01/1901"
    else
    vtanggal=text4
    endif

    3. gunakan logika seperti ini untuk event onchange atau after update:

    dim vpos as integer
    dim vlen as integer

    vlen = len(trim(mytextbox))
    if right(vlen,1) not in (0..9) then
    msgbox("Isian harus angka")
    mytextbox.setfocus
    endif

    ReplyDelete
  23. Terima Kasih atas bantuannya, mas.

    (Budhi)

    ReplyDelete
  24. mas ikut bertanya,,
    misalnya saya punya form data buku,,dimana text box kd_buku saya ingin otomatis bertambah apabila memasukkan data buku baru

    format :F001 atau NF001 (increment sesuai nomor terakhir data)

    begini klo saya punya combo box jenis_buku,,bila dklik ada 2 opsi yaitu Fiksi atau non fiksi,,bila sya pilih fiksi maka otomatis di text box kd_buku yg muncul F001 (atau otomatis bertambah sesuai dengan urutan data buku fiksi di tabel buku) klo sya pilih opsi Non Fiksi maka kd_buku yg muncul NF001,,tlng bantuannya email sya im4.wat13@gmail.com,,trma ksh mas edi
    (wati)

    ReplyDelete
    Replies
    1. ikut, saya juga mau nanya yg seperti ini neh mas...
      mba wati klo ud dapet share juga yak..
      @mas edi mohon dibantu ye.. terimakasih, email : kurnianto.wahyu@ymail.com

      Delete
    2. 'untuk konsistensi, fiksi diawali dengan F dan non-fiksi diawali dengan N.
      'variabel yang digunakan masih bisa disederhanakan/dikurangi
      'Asumsi :
      '- Nama Tabel: TNomor
      '- Prefiks jenis: F untuk fiksi dan N untuk non-fiksi
      '- Nama ComboBox: cmbJenis dengan item value "Fiksi", "Non Foksi"


      Private Sub cmdsimpan_Click()
      Dim db As Database Dim rs As Recordset
      Dim str As String
      Dim nomor As Integer
      Dim strnomor As String
      Dim vnomor As String
      Dim vJenis as string

      if cmbJenis.text="Fiksi" then
      vJenis = "F"
      else
      vJenis = "N"
      endif


      Set db = CurrentDb()

      Set rs = db.OpenRecordset("select * from tnomor where left(NoUrut,1)='" & vJenis & "'")

      If rs.RecordCount <> 0 Then
      rs.MoveLast

      vnomor = rs!nourut
      nomor = Val(Right(vnomor, 3))
      nomor = nomor + 1

      Else
      nomor = 1
      End If

      strnomor = Format(nomor, "0000")
      rs.AddNew rs!nourut = vJenis & strnomor
      rs.Update
      rs.Close
      db.Close
      End Sub

      Delete
    3. nomor = Val(Right(vnomor, 3))

      seharusnya

      nomor = Val(Right(vnomor, 4))

      Delete
  25. mas, klo misalnya no urutnya hanya empat angka saja, tidak dengan format tahun dan bulan, yang mana yang dibuang??

    makasih sebelumnya

    ReplyDelete
  26. @yusuf : ubah baris ini:

    rs.AddNew rs!nourut = Format(Now(), "yyyymmdd") & strnomor

    menjadi

    rs.AddNew rs!nourut = strnomor

    ReplyDelete
  27. Mas boleh dikirim sample File nya ke indra150882@gmail.com ?
    Sy baru saja belajar access
    Please...

    ReplyDelete
  28. silahkan dowload saja disini :
    http://www.mediafire.com/?sxil1mjicy3fras

    ReplyDelete
  29. mas ..
    saya baru belajar buat nomor urut undian ...
    bisa tolong bantu..
    contoh :
    Ahmad punya 4 nomor undian
    Andi punya 6 nomor undian..

    hasil yg saya inginkan .seperti ini:
    Ahmad 0000001
    Ahmad 0000002
    Ahmad 0000003
    Ahmad 0000004
    Andi 0000006
    Andi 0000007
    Andi 0000008
    Andi 0000009
    Andi 0000010
    Andi 0000011

    minta source codenya?
    tolong email ke fadjar_kn@yahoo.com

    ReplyDelete
  30. mas mau tanya..kalau fungsi ini saya sisipkan di button tambah data dimana sudah ada fungsi go to ac new recordnya..supaya pada saat button tambah data di klik no nya juga menjadi baru..tapi keluar pesan seperti ini.."only comment may appear after end sub, end function, or end property"..maksudnya itu apa yah, mas?? makasih sebelumnya...

    ReplyDelete
  31. mas kalau mau buat no rangking otomatis bagaimana yaaa? kirimi ke sugeng_hnf@yahoo.com

    ReplyDelete
  32. mas boleh minta samplenya tolong kirim ke email billyroot5353@gmail.com.
    terima kasih

    ReplyDelete
    Replies
    1. silahkan dowload saja disini :
      http://www.mediafire.com/?sxil1mjicy3fras atau klik teks 'download disini' dibawah artikel

      Delete
  33. dibawah artikel ada teks 'file .mdb silahkan donlot'. klik teks 'donlot'

    ReplyDelete
  34. Mas mf mau minta di buatkan kodenya:
    hasilnya seperti ini, NIS: 0101011108660001
    dimana:
    01 --> kode nama Keluarga atau saudara
    01 --> Wilayah
    01 --> jenis kelamin
    110866 --> tgl,bln,thn dan..
    0001 --> nomor urut
    --jadi--
    diharap pada saat menginput tempat dan tanggal lahir akan muncul nis.

    mohon ya mas, untuk buat data di pesantren nih. kirim ke aguskasyaf@gmail.com

    Terima Kasih, Salam sukses selalu utk Mas

    ReplyDelete
    Replies
    1. contoh sudah dikirim....

      Delete
    2. bisa juga donlot di : http://www.mediafire.com/?odc0y06i6v8on2u

      Delete
  35. Mas minta bantuannya dung, script dan contoh file MS Access untuk kasus ini membuat nomor invoice & norek secara otomatis dan bersamaan.
    tbl_nomor
    norek --> number 9 digit
    invoice --> text 10 digit

    tbl_transaksi
    norek
    invoice
    tanggal

    mohon bantuannya mas, bila berkenan kirim ke email yudo_dev@yahoo.com , terima kasih

    ReplyDelete
  36. Mas Edi,

    Kalau saya mau buat scripts kaya begini harus tambahin apa lagi.

    No Register 001/MDN/EB-CP/EK/I/2014

    Makasih
    Made

    ReplyDelete
    Replies
    1. format atau aturannya bagaimana? kalau yang saya lihat formatnya nomor urut plus teks /MDN/EB-CP/EK/ terus bulan dan tahun. kalau berganti bulan, nomornya reset menjadi 001 lagi gak?

      Delete
  37. This comment has been removed by the author.

    ReplyDelete
  38. mas kirim lagi ya yusuf_escapist@yahoo.co.id bisa buat copas Guest Bill A No, kalo ini buat nomer faktur bro ...

    ReplyDelete
  39. Pak Edi

    saya lagi buat nomor otomstis tapi dari 2 field misal :
    MrNumber , text 10 , ( Mr/14010001)
    MrNumberNew ,number ( 1 )

    untuk mrNumberNew untuk bantuan aja tapi saya belum bisa tiap bulan ganti /reset ke 1 lagi

    Private Sub TambahMr1_Click()
    DoCmd.GoToRecord , , acNewRec
    Me.MrNumber = MrNumberBaru1()
    DoCmd.RefreshRecord


    End Sub



    Function MrNumberBaru1()

    Me!MrNumberNew = DMax("MrnumberNew", "tblMaterialRequisition") + 1
    tgl = Format(Date, "yymm")
    nomormr = Format(MrNumberNew, "000")
    MrNumberBaru1 = tgl & nomormr


    End Function


    ReplyDelete
  40. Mas bisa kirim ke email saya ?
    paulus@teamstrongs.com

    Oh ya mas ? Script itu di taruh di Tombol Save ya ?
    Apakah itu langsung link di tablenya

    ReplyDelete
  41. Agan,saya mau tanya,sy punya tabel TBeliHd.
    Trus d form Fbeli, ketika saya klik tombol baru, nomor faktur (NoBeli)Nya otomatis terisi FB1403000(FB faktur beli,14tahun 2014,dan 03 bulan maret,tanpa tanggal soalnya klo pake tanggal nti kepanjangan nomornya)itu scriptnya kira2 gmn ya gan?tolg email ke xellanavi@gmail.com
    Oia d akhir bulan nomornya d reset gan
    Terimakasih atas bantuannya

    ReplyDelete
    Replies
    1. Private Sub cmdsimpan_Click()
      Dim db As Database Dim rs As Recordset
      Dim str As String
      Dim nomor As Integer
      Dim strnomor As String
      Dim vnomor As String

      Set db = CurrentDb()
      Set rs = db.OpenRecordset("tnomor")
      If rs.RecordCount <> 0 Then
      rs.MoveLast

      vnomor = mid(rs!nourut,7,3) => ekstrak no urut
      vmonth = mid(rs!nourut,5,2) => ekstrak bulan

      'FB1403000

      If Val(vmonth) = Month(Now()) Then => bulan yang sama, nomor bertambah
      nomor = Val(vnomor)
      nomor = nomor + 1
      Else
      nomor = 1 => bulan berbeda, nomor reset 1 lagi
      End If
      Else
      nomor = 1
      End If

      strnomor = Format(nomor, "000")
      rs.AddNew rs!nourut = "FB" & Format(Now(), "yymm") & strnomor
      rs.Update
      rs.Close
      db.Close
      End Sub

      Delete
  42. Salam kenal, bisa kirim ke sini : upe_anakogie@yahoo.co.id
    Termkasih

    ReplyDelete
  43. kirim versi yang mana? cukup copy-paste aja kok scriptnya.....

    ReplyDelete
  44. Terima kasih banyak sebelumnya, saya sudah unduh contoh diatas, tapi masih bingung. saya punya kendala, kasusnya seperti ini :

    Saya punya 3 Tabel :
    1. Tabel Master Kelurahan (t_kel)
    2. Tabel Kepala Keluarga (t_kk)
    3. Tabel Anggota Kepala Keluarga (t_kk_detail). misal
    t_kel ---> 13760102
    t_kk ----> 01 (No Urut)
    t_kk_detail ---> 01 (No Urut)

    Diharapkan pada saat menginput kode kelurahan akan muncul kode t_kk menjadi 1376010201 dan setelah menginput t_kk muncul kode t_kk_detail menjadi 137601020101

    minta tolong bantuannya dengan contoh Access 2003, dikirim ke email, upe_anakogie@yahoo.co.id

    Terima kasih banyak

    ReplyDelete
  45. siang mas

    saya punya 1 case

    saya punya 1 kolom namanya kode_transaksi
    didalamnya ada 2 kode, whs dan sdo,

    berada pada 2 form berbeda namun 1 kolom pada tabel

    case yg terjadi saat ini, saya input di form SDO, nomor dimulai SDO-000001, dan ketika saya ingin input di form WHS, nomor dimulai WHS-000002

    Apakah bisa dibuat untuk masing2 dimulai dari 00001?walaupun berada pada 1 kolom??

    Mohon di bantu

    ReplyDelete
    Replies
    1. gunakan perintah select max(nourut) where right(nourut)="WHS" untuk mendapatkan no urut terakhir warehouse. begitu juga sebaliknya. kalau nilainya diambil dari combobox, ada tambahan baris :

      vnourut=cmbnomor.text

      perintah sql-nya menjadi :

      select max(nourut) where right(nourut)='" & vnourut & "'"

      Delete
    2. masih error pak

      ini ak kasih contoh kasus nya
      https://groups.yahoo.com/neo/groups/belajar-access/conversations/messages/39340

      bales nya via email aja pak
      atriandari@gm***.com

      makasih pak

      Delete
  46. setelah mencari2... alhamdulillah ketemu blog agan, kalau berkenan saya minta kirimkan email contoh ms. access maklum masih meraba2. email: saehu77@gmail.com terima kasih dan semoga tambah berkah...

    ReplyDelete
  47. mas mohon pencerahannya..
    saya membuat program penjualan brg menggunakan vb.2005 dan data base acess..
    saya ingin membuat kode barangnya secara otomatis bia saat menginputan tidak ada kode barang yg doubel..

    kira" source codenya seperti apa ia mas..
    apa hampis sama kaya yang diatas atau beda??
    trus rs As Recordset itt gunanya untuk apa?
    apakah harus menambahkan deklarasi di module lagi??

    ReplyDelete
  48. Kang saya mau nanya kalo ngebuat nomor urut dari nomor 235 trus dia tiap diinput itu otomatis ganti gimana caranya ya?kalo tiap ganti tahun dia ngereset dari 0 lagi dan nampilin nomor sebelumnya
    contoh nomornya : GBB.11/235
    GBB = bagian perusahaab
    11 = tahun
    235 = nomornya
    mohon bantuannya kang
    Terima Kasih

    ReplyDelete
  49. kalo ingin mereset nomor dengan tahun yang berganti sesuai tahun pada komputer gmana, mas. format nomor saya buat dari script awal mas. hanya saya buang_ If Val(Mid(vnomor, 5, 2)) = Month(Now()) - karena format nomor saya strnomor = Format(nomor, "000"). bagaimana yah, mas.sebelumnya terima kasih banyak atas bantuannya

    ReplyDelete
  50. Maaf mas Mohon Petunjuk masalah no urut pada from datasheet, saat ini jika iput data baru maka data baru akan menjadi no urut 2. apakah bisa jika no urut yang lama menjadi 2 sedangkan yang baru menjadi 1 dan seterusnya... mohon petunjuk nya mas

    ReplyDelete
  51. kak, minta tolong dong buatin coding autonumber format nya kayak gini : 1/VIII/2016/PUSAT 1: nomor urut, VIII: bulan skrg (berupa angka romawi), 2016: tahun sekarang, PUSAT: kata pusat. minta tolong di emailkan ke dpradika84@gmail.com terima kasih kak.

    ReplyDelete
  52. Assalamu'alaikum,...
    bang,. kalau bikin no surat seperti ini : 012/Ket/MTs.AMQ/VII/2016
    bagaimana?
    VII : Bulan Saat ini
    2016 : Tahun Saat ini
    tolong kirim contoh filenya ke :Banianaz7@yahoo.com
    thnks bang,..

    ReplyDelete
  53. Info Manfaat ni, Maaf bisa bantu saya kirimin juga Tabel dan Form jadinya krn sudah saya coba tidak berhasil terus kirim ke wijana2010@yahoo.com

    ReplyDelete
  54. Assalamualaikum bang :)
    Blognya manfaat banget sumfeh.
    Saya punya kondisi nih bang kali aja abang bisa bantu selesaiin.

    saya mau buat di access penomoran kaya gini :
    "yymmkksssnnn"
    ex : 160201008001

    yy : tahun
    mm : bulan
    kk : kategori
    sss : subkategori
    nnn : nomor urut.

    jadi setiap berganti bulan, untuk setiap kategori dan subkategori berbeda, nomor urut berulang.

    Mohon pencerahannya bang. Tq

    tamibiran@gmail.com

    ReplyDelete
  55. mas kalau menggunakan database sql cara membuat nomor urut otomatisnya gmna ya?

    ReplyDelete
    Replies
    1. logikanya sama. tergantung bahasa pemrogramannya apa?

      Delete
  56. This comment has been removed by the author.

    ReplyDelete
  57. saya kurang paham mas boleh kirim ke email gk contohnya? rahmiamir95@gmail.com

    ReplyDelete
  58. Mas boleh minta tolong dikirim format form nya dengan menggunakan source diatas utk pembelajaran. Tks
    Email dedejendol13@gmail.com

    ReplyDelete