Kamis, 19 Desember 2013

Auto Number ( penomoran automatis untuk kode unik ) VB.NET

Standard
Kadang kala kita membutuhkan sebuah fungsi penomoran otomatis pada kode atau id unik pada suatu record. Id ini misalnnya id pelanggan, id transaksi, id barang dan lain lain. id id tersebut harusnya muncul secara otomatis agar menghemat waktu dalam menginput data.
beriut cara membuat penomoran otomatis tersebut:
1.sebagai contoh txtid parkir yang akan dibuat id otomatis. Sedngakan inisial id tersebut ber awalna P.
         
  2. Form tersebut misalnya terhubung dengan tb_parkir dengan field Id_Parkir. Maka kodingnya sebagai berikut;
  TxtIdParkir.Enabled = False
        Dim strSementara As String = ""
        Dim strIsi As String = ""
        cmd = New SqlCommand("select * from Tb_Parkir order by ID_Parkir desc", conn)
        rd = cmd.ExecuteReader
        If rd.Read Then
            strSementara = Mid(rd.Item("ID_Parkir"), 2, 2)
            strIsi = Val(strSementara) + 1
            TxtIdParkir.Text = "P" + Mid("0", 1, 2 - strIsi.Length) & strIsi
        Else
            TxtIdParkir.Text = "P01"
        End If
        TxtPlatnomor.Focus()        



  3.  koding tersebut akan menghasilkan kode id dari p01, p02 ,,, dan seterusnya.
     pertama x dijalankan karena id terakhir adalah p08 maka id parkir terisi PO9.
   setelah data disimpan, auto number akan menghasilkan P10 pada Id Parkir.









 Semoga bermanfaat.. dan jangan lupa dokumentasikan ilmu anda...!

26 komentar:

  1. bang , bgaiman setalahnya misal p10 ,sedangkan pada database nilai p10 adalah string apabila dilakukan select maka nilai tersebut tdk dapat ascending p1,2,3,..,9,10 melainkan p1,p10,p,2,..,p10

    BalasHapus
    Balasan
    1. klo ragu coba :
      cmd = New OdbcCommand("Select * from tb_iuran_qurban where Id_Transaksi in (select max(Id_Transaksi) from tb_iuran_qurban) order by Id_Transaksi desc", conn)

      Hapus
  2. maaf atas keterlambatanya, sempet kelupaan password blognya.
    bisa saja karena code tersebut sudah saya tes, untuk select menggunakan desc untuk mendapatkan nilai tertingggi misal p10. untuk kasus ini kode maximal yang dpat dibuat yaitu P99

    BalasHapus
    Balasan
    1. bila lebih dari 99 gmna

      Hapus
    2. ambil mid nya 3 untuk sampai 999 atau 4 untuk 9999 atau 4 karakter

      Hapus
  3. bisa juga tergantung kota mw ya buat sampe puluhan ratusan atau jutaan ..tinggal ditambahin item saat ingin ditambah..

    BalasHapus
  4. kalau bikin autonumber tanpa batas gimana bang?

    BalasHapus
  5. Terimakasih Gan !!! Salam Syntax Error wkwkwk

    BalasHapus
  6. min cara buat tombol otomatis 1,2,3,4 dan seterusnya sampai tak terbatas gimn ya ??

    BalasHapus
    Balasan
    1. sebenarnya tinggal taruh fuction diatas pada ivent tombol yang di inginkan, masalhnya referensi angka terakhir mau diambil dari mana, kalau contoh diatas diambil dari tabel parkir dengan melihat id parkir sebelumnya.

      Hapus
  7. Mas, gimana cara membuat kode id otomatis di VB.Net dbAccess tapi berdasarkan nama pelanggan yang diambil 3 digit dari kiri nama pelanggan. Misal nama pelanggan Anton.A jadi ANT0001 jika ada nama yang sama Misal Anton.B jadi ANT0002. Mohon pencerahannya mas..terimakasih

    BalasHapus
  8. Tinggal memakai fungsi MicrosoMicrosoft.VisualBasic.left (3)

    BalasHapus
  9. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  10. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
    Balasan
    1. Komentar ini telah dihapus oleh pengarang.

      Hapus
  11. kak mau nanya. ini kan udah d bikin kayak d atas tp error pas d jalanin "There is already an open DataReader associated with this Connection which must be closed first".
    udah bingung mau d apain lgi
    tlong d bls kak

    BalasHapus
    Balasan
    1. mbb
      setelah end if coba tambahkan rd.close()

      Hapus
  12. itu disimppannya di textboxnya ?

    BalasHapus
  13. om, kodingnya sukses, namun ada sedikit kendala, ketika disimpan nomor tidak langsung Update om, harus di close dlu formnya terus masuk lagi form baru nomornya update.
    kalau pengen pas di save update nomor gmn om? maksih...

    BalasHapus
    Balasan
    1. Biasanya kl sudah rd.close baru di baris bawahnya panggil funtion auto numbernya.itu yg biasa sy lakukan

      Hapus
  14. saya pake VB 2010, database SQL server r2.
    makasih om..

    BalasHapus
  15. bang bikin id string biar bisa di search gimana? saya coba ganti id jadi shorttext malah ga kebaca :( mohon bantuannya

    BalasHapus
  16. pak tau gak cara membuat no seri dg hasil tampilan ke samping. bukan ke bawah

    BalasHapus
  17. Hallo kak, mau tanya, saya sudah simpan data pertama P1, waktu mau input data ke 2, kode otomatis saya tetap terbaca P1

    BalasHapus