Senin, 23 April 2012

MEMBUAT NOMOR URUT OTOMATIS VB 6.0


MEMBUAT NOMOR URUT OTOMATIS
‘Buat deklarasi

Dim Rst As New ADODB.Recordset
Dim N As String
'-------------------------------------------------------------------
'mengambil 4 karakter dari kanan (yg merupakan nomer) dari field NOMOR, kemudian dicari ‘nilai yg paling besar (max)   jika anda membuat nya lebih dari 4 karakter anda bisa ganti sesuai keperluan
‘'kemudian hasilnya d tampung d field buatan dgn nama Nomor

Rst.Open "select max(right(NO,4)) as Nomor from NamaTabel", Conn, adOpenKeyset
    ''jika kosong atau tdk ada data
    If IsNull(Rst!Nomor) Then   
        N = "A0001" 'member nilai awal
    Else  
        N = "A" & Format(Rst!Nomor + 1, "0000")
    End If 
Text1.Text = N 

Conn adalah variable  Conection ke database  contoh:

On Error GoTo Ero
Dim Conn As New ADODB.Connection

    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\databade.mdb;"


Conn = "DRIVER={MySQL ODBC 3.51 Driver};SERVER="localhost ";DATABASE="Database ";UID="root";PWD="password";PORT="3306";OPTION=3"





MEMBUAT NONOR URUT OTOMATIS DAN KEMBALI KE 0001 (NO AWAL ) SETIAP TAHUN
Sub AutoNoTahunan()
Dim Rst As New ADODB.Recordset
Dim N As String


Rst.Open "select max(right(NO,6)) as Nomor from NamaTabel where Year(Tanggal) = " & Year(Now), Conn, adOpenKeyset, adLockOptimistic

    'jika berisi null atau tdk ditemukan
    If IsNull(Rst!NOMOR) Then             
        N = "M-000001" 'member nilai awal
    Else
        N = "M-" & Format(Rst!NOMOR + 1, "000000")
    End If
    Text1.Text = N
   Rst.Close
End Sub

‘anda tinggal memanggil procedure di atas pada setiap roses simpan contoh
 AutoNoTahunan
Bisa juga
Call AutoNoTahunan
Format nomor urut yang di hasilakn adalah “M-000001” dst
Jika anda hanya angka saja anda tinggal  rubah

N = Format(Rst!NOMOR + 1, "00000")





MEMBUAT NO URUT OTOMATIS KEMBALI KE SATU  0001 SETIAP BULAN

Sub AotuNoBulanan()
Dim Rst As New ADODB.Recordset
Dim N As String

Rst.Open "select max(right(NO,4)) as Nomor from NamaTabel where Year(Tanggal) = " & Year(Now) & " and Month(Tanggal) = " & Month(Now), Conn, adOpenKeyset, adLockOptimistic

    ''jika tidak berisi null atau data kosong
    If IsNull(Rst!NOMOR) Then
        N= "0001" 'member nilai awal
    Else
        N = Format(Rst!NOMOR + 1, "0000")
    End If
    Text1.Text = N
    Rst.Close
End Sub


‘anda tinggal memanggil procedure di atas pada setiap roses simpan contoh
 AotuNoBulanan
Bisa juga
Call AotuNoBulanan



22 komentar:

  1. makasih dan salam kenal...bloger kebumen

    BalasHapus
  2. maap mas itu yg dimaksud "(NO,4)) as Nomor from NamaTabel where Year(Tanggal)" apa ya..??
    NO'y apa..??
    Nomor'y apa..??
    Tanggal'y apa..??

    tolong penjelasan'y mas...
    thx

    BalasHapus
    Balasan
    1. NO = Nama tabel
      4 = Banyak digit yang di ambil dari sebelah kanan
      Nomor = variabel penapung nilai maksismal
      Tanggal = nama kolom dengan value Date/Time

      Hapus
  3. makasih infonya sangat berguna.. :)

    BalasHapus
  4. Pak mau minta koreksi coding

    Private Sub nomor()
    Dim Urutan As String
    Dim Hitung As Integer
    sql = "select*from bukti_kas where no_bukti='" & Text2 & "'"
    Set rsbukti = dbado.Execute(sql, , adCmdText)
    If rsbukti.RecordCount <= 0 Then
    Urutan = "BKT" & "0001"
    Text2 = Urutan
    Else
    rsbukti.MoveLast
    Hitung = Val(Right(rsbukti!no_bukti, 4)) + 1
    Urutan = "BKT" & Right("0000" & Hitung, 4)
    Text2 = Urutan
    End If
    End Sub

    kenapa record selanjutnya nomornya ndak mau nambah..?? >.<

    BalasHapus
    Balasan
    1. where no_bukti='" & Text2 & "'"
      kode di atas kan membatasi data yang di tampilkan sesuai dengan no_bukti

      kalo model algoirtma di atas sebaiknya

      sql = "select * from bukti_kas order by no_bukti, ASC"

      Hapus
  5. Set rsbukti = dbado.Execute(sql, , adCmdText)
    If rsbukti.RecordCount <= 0 Then
    Urutan = "BKT" & "0001"
    Text2 = Urutan
    Else
    rsbukti.MoveLast
    Hitung = Val(Right(rsbukti!no_bukti, 4)) + 1
    Urutan = "BKT" & Right("0000" & Hitung, 4)
    Text2 = Urutan
    End If
    End Sub

    kenapa record selanjutnya nomornya ndak mau nambah..?? >.<

    BalasHapus
  6. untuk nomor otomatis nya bikin tabel baru gitu ya?

    BalasHapus
    Balasan
    1. iya mas yang saya tulus mereh "NamaTabel" itu sesuaikan dengan nama tabel yang salah satu kolomnya ingin kita urutkan

      Hapus
  7. Rst.Open "select max(right(NO,6)) as Nomor from NamaTabel where Year(Tanggal) =
    maksdnya itu bikin tabel baru lg ya?fieldnya apa aja ya?

    BalasHapus
    Balasan
    1. Year(NAMA_FIELD) = " & Year(Now)
      example :
      misallkan kolom tanggal "TGL_TERIMA" maka
      Year(TGL_TERIMA) = " & Year(Now)

      yang max(right(NO,6)) "NO" adalah field yang di urutkan

      Rst.Open "select max(right(NO_URUT,6)) as Nomor from NamaTabel where Year(Tanggal) = " & Year(Now), Conn, adOpenKeyset, adLockOptimistic

      contoh id jika nama kolom yang di urutkan dalah NO_URUT dan besar digit yang di urutkan dalah 6 digit "M-000003"

      Hapus
  8. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  9. maaf gan permisi tau ga cara membuat waktu atau tanggal otomatis di visual basic 6 dengan sistem DST setting ?

    BalasHapus
  10. Dim rst As New ADODB.Recordset
    'bln = Format(Date, "MM")
    'thn = Format(Now, "yyyy")
    'If Day(Now) = 1 And Month(Now) = 1 Then
    rst.Open "select nomor_urut from pendaftaran where Year(nomor_urut) = " & Year(Now) & " and Month(nomor_urut) = " & Month(Now)
    'Adodaftar.RecordSource = "select pendaftaran.nomor_urut from pendaftaran where nomor_urut GROUP BY pendaftaran.nomor_urut"
    'DataGriddaftar.Refresh
    'If Adodaftar.Recordset.EOF Then
    If IsNull(Adodaftar.Recordset!nomor_urut) Then
    oto = "000000"
    Else
    'Adodaftar.MoveLast
    no = Right(Adodaftar.Recordset!nomor_urut, 6) + 1
    oto = Right("000000" & no, 6)
    'End If
    'End If
    End If
    Textnomu.Text = oto

    saya ganti bulan kok tidak bisa kembali ke nomer awal ya...
    mohon bantuannya...
    terima kasih pak...

    BalasHapus
  11. mas kalo buat no otomatis misal 01 sampai 25 halaman 1, kalo udah smpai 25 kembali lagi ke 01-25 tapi halaman 2, dan seterusnya itu gimana yah caranya???? pake vb6 mas pleasee blssss

    BalasHapus
  12. kalo buat di php gmn ya mas?
    tolong infonya

    BalasHapus
  13. maaf gan, kalau untuk penomoran otomatis dengan posisi nomor kembali ke awal setiap harinya gmn ya gan, mohon pencerahannya. terima kasih

    BalasHapus
  14. assalamualaikum, bagaiman jika menggunakan visual studio 2013 untuk mengurutkan no yang ter reset setiap tahun?

    BalasHapus
  15. Mas, kalau aku pengen membuat nomor otomatis tapi berurutan, tapi sekali klik langsung muncul ankga 1 sampai 200,nah nomor 1 sampai 100 di field nomor1 dan 101 sampai 200 di field nomor2

    BalasHapus
  16. Mas, kalau aku pengen membuat nomor otomatis tapi berurutan, tapi sekali klik langsung muncul ankga 1 sampai 200,nah nomor 1 sampai 100 di field nomor1 dan 101 sampai 200 di field nomor2

    BalasHapus
  17. bang isnull itu buat apa ya kok saya coba error program saya bang

    BalasHapus