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
Kemudian siapkan sebuah form tambahkan empat textbox, tiga commandbutton dan MsFlexgrid yang tampak seperti gambar berikut ini
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
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
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
ReplyDeletekurang lebih koding seperti berikut ini mas:
DeletePrivate 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
klo pingin nambahi huruf didepannya gmn mas ? misalnya jadi Sp1611280001
ReplyDeletePrivate Sub AutoNumber()
DeleteCall 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
klo cuma ditambahi " SP "+ ,0001 tidak berubah jadi 0002
DeleteMaksudnya gimana y? saya kurang jelas dengan pertanyaannya, mohon diperjelas pertanyaannya.
Deleteklo 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
DeletePrivate Sub AutoNumber()
DeleteCall 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
jooos mas hadi
ReplyDelete