20 Juli 2010

Program Visual Basic: Membuat No. Faktur Otomatis atau No. Order Otomatis atau Penomberan Otamatis

20 Juli 2010
Sekarang kita akan membuat program membuat No Faktur atau Penomberan secara otomatis, sangat berguna pada saat kita menginputkan sebuah data. Dengan adanya penomberan otomatis maka kecil kemungkinan kita akan salah menginputkan sebuah penomberan karena akan otamatis melakukan sebuah penambahan.

Kita Menggunakan Project Yang sudah pernah kita buat di Tutor Cara Koneksi Visual Basic dengan Database SQL

Buat Project seperti di bawah ini:

Sekarang kita mulai Pengcodingan:
1. Untuk generalisasi
Public cn As ADODB.Connection
Dim rsTblMhs As ADODB.Recordset
Dim rs As ADODB.Recordset
Dim strsql As String


2. Buat Sub Koneksi untuk mengkoneksikan database dengan visual basic
Public Sub koneksi()
Set cn = New ADODB.Connection
'cn.Open "FILE NAME=koneksi_TblMhs.udl"
'untuk nampilin tabel di sql tadi,buka koneksi_TblMhs.udl dg notepad trus copy deh kesini
cn.Open "Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=DatabaseMhs;Data Source=TOSHIBA-PC"
End Sub


3. Buat Sub Kode_Otomatis
Private Sub kode_otomatis()
Set rs = New ADODB.Recordset
strsql = "Select max(NIM)as NIM from TblMhs"
rs.CursorLocation = adUseClient
rs.Open strsql, cn, adOpenDynamic, adLockOptimistic

If Not rs!NIM = "" Then
KODE = Mid(rs!NIM, 6, 9)
NoUrut = CLng(KODE)
NoUrut = NoUrut + 1
TxtNIM.Text = "080010" + Format(NoUrut, "000")
Else
NoUrut = 1
TxtNIM.Text = "080010" + Format(NoUrut, "000")
End If
End Sub

Sub Kode_otomatis di panggil di tombol New.
If Not rs!NIM = "" Then
KODE = Mid(rs!NIM, 6, 9)
NoUrut = CLng(KODE) -> merubah menjadi char long
NoUrut = NoUrut + 1
TxtNIM.Text = "080010" + Format(NoUrut, "000")
jika tabel tidak kosong maka, maka tambahkan no urut (angka yang paling tinggi) + 1 dari nilai string 6, dan penambahan di string 9 sebanyak 1

Else
NoUrut = 1
TxtNIM.Text = "080010" + Format(NoUrut, "000")
jika tidak maka penambahan langsung 1

4. Cmd New
Private Sub CmdNew_Click()
CmdAdd.Enabled = True
CmdNew.Enabled = False
TxtNIM.Locked = False
txtNama.Locked = False
TxtAlamat.Locked = False
kode_otomatis
End Sub

Penomberan kode otomatis di panggil di sini, jadi setiap kali user mengklik tombol new maka NIM akan langsung otomatis terisi secara berurutan.

5.Form Load

Private Sub Form_Load()
TxtNIM.Text = ""
txtNama.Text = ""
TxtAlamat.Text = ""

koneksi

Set rsTblMhs = New ADODB.Recordset
rsTblMhs.CursorLocation = adUseClient
strsql = "select*from TblMhs"
rsTblMhs.Open strsql, cn, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rsTblMhs

CmdAdd.Enabled = False
CmdUpdate.Enabled = True
CmdEdit.Enabled = True

CmdDelete.Enabled = True
TxtNIM.Locked = True
txtNama.Locked = True
TxtAlamat.Locked = True
End Sub

Koneksi di taruh disini, jadi setiap di load database langsung terkoneksi di visual basic.

6. Sub CmdAdd
Private Sub CmdAdd_Click()
If TxtNIM.Text = "" Then
MsgBox "NIM belum diisi", vbInformation, "PESAN"
TxtNIM.SetFocus
ElseIf txtNama.Text = "" Then
MsgBox "NAMA belum diisi", vbInformation, "PESAN"
txtNama.SetFocus
ElseIf TxtAlamat.Text = "" Then
MsgBox "ALAMAT belum diisi", vbInformation, "PESAN"
TxtAlamat.SetFocus
Else
rsTblMhs.AddNew
rsTblMhs("NIM") = TxtNIM.Text
rsTblMhs("NAMA") = txtNama.Text
rsTblMhs("ALAMAT") = TxtAlamat.Text
rsTblMhs.Update
End If
Set DataGrid1.DataSource = rsTblMhs
TxtNIM.Text = ""
txtNama.Text = ""
TxtAlamat.Text = ""
CmdAdd.Enabled = False
CmdUpdate.Enabled = True
CmdNew.Enabled = True
CmdDelete.Enabled = True
End Sub

menambahkan data ke database

7.Sub CmdDelete
Private Sub CmdDelete_Click()
TxtNIM.Locked = False
txtNama.Locked = False
TxtAlamat.Locked = False
TxtNIM.Text = rsTblMhs("NIM")
txtNama.Text = rsTblMhs("NAMA")
TxtAlamat.Text = rsTblMhs("ALAMAT")
If MsgBox("apakah yakin ingin dihapus?", vbYesNo, "KONFIRMASI") = vbYes Then
Set rsTblMhs = cn.Execute("Delete from TblMhs where NIM='" & TxtNIM.Text & " ' ")
MsgBox "Data telah dihapus", vbInformation, "PESAN"
End If
'untuk me-refresh datagrid setelah delete data
If cn.State = adStateOpen Then
setrsTblMhs = New ADODB.Recordset
rsTblMhs.CursorLocation = adUseClient
strsql = "select * from TblMhs"
rsTblMhs.CursorLocation = adUseClient
rsTblMhs.Open strsql, cn, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rsTblMhs
End If
End Sub

Menghapus database

8.Cmd Refresh

Private Sub Refresh_Click()
Set DataGrid1.DataSource = Nothing
DataGrid1.Refresh
End Sub

Mengosongkan datagrid, tapi data masih tersimpan di database

Untuk Program lengkapnya bisa di download di sini


Selamat Mencoba

9 comments:

Anonim mengatakan...

:h:

toholic mengatakan...

halo, lagi nyusun TA dan bingung soal penomoran otomatis, tapi kami diminta menggunakan class >.< bisa dibantu gx ya :m

Anonim mengatakan...

terima kasih ya atas codding programnya,,,,,,,,,,,,

Anonim mengatakan...

ni kan pake sql server, klo pake database access gmn koneksi'y?
mohon bantuan :m

Yosi De Luffy mengatakan...

mas, kok di bagian ini saya error trs ya??
If Not rs!NIM = "" Then

notifikasi error nya "item cannot be found in the collection corresponding to the requested name or ordinal"

gmn cara ngatasinnya ya??

xuliyawen mengatakan...

:m:

Anonim mengatakan...

gan repost donk....itu filenya berupa exe :h:

nanang herman mengatakan...

Unut koding Modul disini saya kasih kodingnya penambahan no secara otomatis menyesuaikan rekord database
nofaktur(Maksudnya yang nama yang ada di textboox) = "000000" & Format(rdetail_transaksi_penjualan.RecordCount + 1, "0")

herublogger mengatakan...

gan bisa gak no otomatis misalkan no 1 di hapus, no 2 nya rubah jadi no 1

Poskan Komentar

sampaikan komentar dengan sopan dan bertanggung jawab :)