Membuat Nomor Otomatis Dengan Format Tanggal

Membuat Nomor Otomatis Dengan Format Tanggal. Pada postinga kali ini saya akan berbagi sebuah postingan tentang cara membuat nomor ototmatis dengan format tanggal, pada postingan sebelumnya pernah membahas cara membuat nomor ototmatis.
Maksud dari nomor otomatis dengan format tanggal adalah enam digit pertama terdiri dari 2 digit tahun 2 digit bulan 2 digit tanggal dan 3 digit terakhir merupakan no urut. Formatnya adalah yymmddxxx.
Setiap tanggal system komputer kita ganti maka tiga digit terakhir akan dimulai dari 001 walaupun tadinya tiga digit terakhir tersebut sudah mencapai 891. Enam digit dari depan mengikuti tanggal system komputer yang kita pakai.

Nomor otomatis seperti ini bisa kita gunakan untuk nomor transaksi pada program yang kita buat. Pada contoh kali ini saya akan membuat nim mahasiswa dengan format tanggal ini hanya contoh. silahkan diaplikasikan cara ini sesuai keinginan anda.

Bagaimanakah cara Membuat Nomor Otomatis Dengan Format Tanggal..? Langkah-langkahnya sebagai berikut ini:

Buatlah database dengan menggunakan ms access dengan nama DB_MHS dan buatlah tabel denngan nama Tbl_mhs seperti berikut ini

Tampilkan Gambar



Kemudian siapkan sebuah form tambahkan empat textbox, tiga commandbutton dan MsFlexgrid yang tampak seperti gambar berikut ini

Tampilkan Gambar



Jika sudah tambahkan sebuah modul lalu ketikan kode berikut ini. modul ini berfungsi untuk koneksi ke database

Public Conn As New ADODB.Connection
Public RsMhs As ADODB.Recordset

Public Sub Buka()
    Set Conn = New ADODB.Connection
    Conn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DB_MHS.mdb"
    Conn.CursorLocation = adUseClient
End Sub

Kemudian buatlah prosedur nomor otomatis, ketiklah kode berikut ini pada form yang telah kita buat tadi

Private Sub AutoNumber()
    Call Buka
    Set RsMhs = New ADODB.Recordset
    RsMhs.Open "SELECT * FROM Tbl_mhs WHERE nim in(select max(nim) from Tbl_mhs)order by nim desc", Conn
    RsMhs.Requery
    Dim Urut As String * 9
    Dim Hitung As Long
    With RsMhs
        If .EOF Then
            Urut = Format(Date, "yymmdd") + "001"
        Else
            If Left(!nim, 6) <> Format(Date, "yymmdd") Then
                Urut = Format(Date, "yymmdd") + "001"
            Else
                Hitung = (!nim) + 1
                Urut = Format(Date, "yymmdd") + Right("000" & Hitung, 3)
            End If
        End If
        TxtNim.Text = Urut
    End With
End Sub

Jika sudah buatlah prosedur dengan nama AktifGrid yang berguna untuk mengatur msflexgrid kodenya seperti berikut ini

Private Sub AktifGrid()
    With MSFlexGrid1
        .Cols = 5
        .RowHeightMin = 300

        .Col = 0
        .Row = 0
        .Text = "NO"
        .CellFontBold = True
        .ColWidth(0) = 400
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter

        .Col = 1
        .Row = 0
        .Text = "NIM"
        .CellFontBold = True
        .ColWidth(1) = 1200
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter

        .Col = 2
        .Row = 0
        .Text = "NAMA MAHASISWA"
        .CellFontBold = True
        .ColWidth(2) = 2500
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter

        .Col = 3
        .Row = 0
        .Text = "ALAMAT"
        .CellFontBold = True
        .ColWidth(3) = 2500
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter

        .Col = 4
        .Row = 0
        .Text = "JURUSAN"
        .CellFontBold = True
        .ColWidth(4) = 1500
        .AllowUserResizing = flexResizeColumns
        .CellAlignment = flexAlignCenterCenter
    End With
End Sub

Kemudian Buatlah prosedure dengan nama TampilGrid untuk menampilkan data ke msflexgrid

Sub TampilGrid()
    Dim Baris As String
    MSFlexGrid1.Clear
    Call AktifGrid

    MSFlexGrid1.Rows = 2
    Baris = 0
    Call Buka
    Set RsMhs = New ADODB.Recordset
    RsMhs.Open "SELECT * FROM Tbl_mhs ORDER BY nim ASC", Conn, adOpenDynamic, adLockOptimistic

    If RsMhs.BOF Then
        Exit Sub
    Else
        With RsMhs
            .MoveFirst
            Do While Not .EOF
                Baris = Baris + 1
                MSFlexGrid1.Rows = Baris + 1
                MSFlexGrid1.TextMatrix(Baris, 0) = Baris
                MSFlexGrid1.TextMatrix(Baris, 1) = !nim
                MSFlexGrid1.TextMatrix(Baris, 2) = !nama
                MSFlexGrid1.TextMatrix(Baris, 3) = !alamat
                MSFlexGrid1.TextMatrix(Baris, 4) = !jurusan
                .MoveNext
            Loop
        End With
    End If
End Sub

Pada bagian form load tuliskan kode berikut ini

Private Sub Form_Load()
    Call Buka
    Call TampilGrid
    
    TxtNim = ""
    TxtNama = ""
    TxtAlamat = ""
    TxtJurusan = ""

    TxtNim.Enabled = False
    TxtNama.Enabled = False
    TxtAlamat.Enabled = False
    TxtJurusan.Enabled = False

    CmdSave.Enabled = False
End Sub

Jika sudah silahkan double klik tombol new kemudian ketikan kode berikut ini

Private Sub CmdNew_Click()
'' //Memanggil prosedure penomoran otomatis
    Call AutoNumber
    '-----------
    TxtNama.Enabled = True
    TxtAlamat.Enabled = True
    TxtJurusan.Enabled = True

    CmdNew.Enabled = False
    CmdSave.Enabled = True

    TxtNama.SetFocus
End Sub

Kemudian tulislah kode untuk simpan data dengan cara double klik tombol save kemudian ketikan kode berikut ini

Private Sub CmdSave_Click()
    If TxtNama = "" Or TxtAlamat = "" Or TxtJurusan = "" Then
        MsgBox "Ada Data Yang Belum Diisi...!," & vbCrLf & "" _
             & "Mohon Data Dilengkapi Dulu", vbCritical, "Peringatan"
        Exit Sub
    Else
        Dim SqlAdd As String
        SqlAdd = "INSERT INTO Tbl_mhs(nim,nama,alamat,jurusan)values" _
               & "('" & TxtNim & "','" & TxtNama & "','" & TxtAlamat & "','" & TxtJurusan & "')"
        Conn.Execute (SqlAdd)
    End If
    Call TampilGrid

    TxtNim = ""
    TxtNama = ""
    TxtAlamat = ""
    TxtJurusan = ""

    TxtNama.Enabled = False
    TxtAlamat.Enabled = False
    TxtJurusan.Enabled = False

    CmdSave.Enabled = False
    CmdNew.Enabled = True
End Sub

Jika sudah semua silahkan di run. jika berhasil maka akan tampak seperti gambar berikut ini

Tampilkan Gambar





Jika anda tidak ingin ribet silahkan download source codenya di link berikut. semoga dapat bermanfaat








Tags:
auto number,cara membuat nomor otomatis,cara membuat nomor otomatis dengan format tanggal,nomor otomatis di vb 6,cara mudah membuat nomor otomatis di vb,Cara Membuat Nomor Otomatis Dalam VB.6,Cara Membuat Nomor Otomatis di VB.6, Cara Membuat auto number di vb 6,Source code nomor otomatis,Download source code nomor otomatis di vb 6,source code auto number,source code nomer otomatis di vb 6,Cara membuat nomor otomatis di vb6,Membuat AutoNumber di Visual Basic 6.0,Membuat Nomor Otomatis Di VB6,Membuat Nomor Transaksi Otomatis VB 6.0,Membuat Nomor Otomatis Di VB6,Cara Membuat No Faktur Otomatis VB 6.0,membuat nomor urut otomatis pada visual basic 6.0,Cara Membuat Nomor Kode Otomatis pada VB,Membuat Faktur Format Tanggal Otomatis VB 6.0,Membuat Format Tanggal Secara Otomatis Pada Surat,membuat nomor otomatis dengan pola tanggal,Membuat Kode Otomatis Berdasarkan Tanggal di VB

9 comments:

  1. permisi mau tanya, itukan setiap hari pasti ulang lagi dari awal ya ? kalo saya mau bikin tapi mulai lagi dari 1 nya itu tiap tahun bukan tiap hari gimana ya ? mohon penjelasannya, terimakasih

    ReplyDelete
    Replies
    1. kurang lebih koding seperti berikut ini mas:

      Private Sub AutoNumber()
      Dim RsAuto As New ADODB.Recordset

      Set RsMhs = New ADODB.Recordset
      RsMhs.Open "SELECT nim FROM Tbl_mhs WHERE nim in(select max(nim) from Tbl_mhs)order by nim desc", Conn
      RsMhs.Requery
      Dim Urut As String * 11
      Dim Hitung As Long
      With RsMhs
      If .EOF Then
      Urut = Format(Date, "yyyymmdd") + "001"
      Else
      Set RsAuto = New ADODB.Recordset
      RsAuto.Open "SELECT nim FROM Tbl_mhs WHERE left(nim,4)=year(now())", Conn, adOpenDynamic, adLockOptimistic
      If RsAuto.EOF Then
      Urut = Format(Date, "yyyymmdd") + "001"
      Else
      Hitung = (!nim) + 1
      Urut = Format(Date, "yyyymmdd") + Right("000" & Hitung, 3)
      End If
      End If
      TxtNim.Text = Urut
      End With
      End Sub

      silahkan di coba koding di atas

      Delete
  2. klo pingin nambahi huruf didepannya gmn mas ? misalnya jadi Sp1611280001

    ReplyDelete
    Replies
    1. Private Sub AutoNumber()
      Call Buka
      Set RsMhs = New ADODB.Recordset
      RsMhs.Open "SELECT * FROM Tbl_mhs WHERE nim in(select max(nim) from Tbl_mhs)order by nim desc", Conn
      RsMhs.Requery
      Dim Urut As String
      Dim Hitung As Long
      With RsMhs
      If .EOF Then
      Urut = "SP" + Format(Date, "yymmdd") + "0001"
      Else
      If Left(!nim, 6) <> Format(Date, "yymmdd") Then
      Urut = "SP" + Format(Date, "yymmdd") + "0001"
      Else
      Hitung = (!nim) + 1
      Urut = "SP" + Format(Date, "yymmdd") + Right("0000" & Hitung, 4)
      End If
      End If
      TxtNim.Text = Urut
      End With
      End Sub


      Silahkan coba kode diatas, semoga berhasil

      Delete
    2. klo cuma ditambahi " SP "+ ,0001 tidak berubah jadi 0002

      Delete
    3. Maksudnya gimana y? saya kurang jelas dengan pertanyaannya, mohon diperjelas pertanyaannya.

      Delete
    4. klo cuma Urut = "SP" + Format(Date, "yymmdd") + "0001" ( hasilnya SP1611300001) setelah di save harusnya kan menjadi SP1611300002, coding itu saya coba tidak berubah ( tetep muncul SP1611300001, smoga jelas pak pertanyaan saya, trims

      Delete
    5. Private Sub AutoNumber()
      Call Buka
      Set RsMhs = New ADODB.Recordset
      RsMhs.Open "SELECT * FROM Tbl_mhs WHERE nim in(select max(nim) from Tbl_mhs)order by nim desc", Conn
      RsMhs.Requery
      Dim Urut As String
      Dim Hitung As Long
      With RsMhs
      If .EOF Then
      Urut = "SP" + Format(Date, "yymmdd") + "0001"
      Else
      If Mid(!nim, 3, 6) <> Format(Date, "yymmdd") Then
      Urut = "SP" + Format(Date, "yymmdd") + "0001"
      Else
      Hitung = Right$(!nim, 4) + 1
      Urut = "SP" + Format(Date, "yymmdd") + Right("0000" & Hitung, 4)
      End If
      End If
      TxtNim.Text = Urut
      End With
      End Sub

      Coba koding ini, ternyata setelah saya teliti ada yang kurang dalam penulisan kodingnya. Jangan lupa panjang fieldnya di tambah. semoga berhasil

      Delete