Binarto, Suryo , 2009. Tips dan Trik Membuat Program Penjualan Menggunakan Visual Basic 6.0. Jakarta: Media Kita.
Kurniadi, Adi, 2000. Pemrograman Visual Basic 6.0, Jakarta: Penerbit PT. Elex Media Komputindo.
Nono, 2011. Membangun Sistem Informasi Toko dan Distributor dengan VB dan Access. Jakarta: Penerbit PT. Elex Media Komputindo.
Subari dan Yuswanto. 2008. Panduan Lengkap Pemograman Visual Basic 6.0. Surabaya: Cerdas Pustaka Publisher.
Indriyana, Indah dan Nugroho, Bunafit. 2009. Panduan Tugas Akhir: Membuat Aplikasi Penjualan Barang dengan Visual Basic 6.0. Yogyakarta: Penerbit Alif Media.
Rusmawan, Uus, 2008. Koleksi Program VB 6.0 Konsep ADO untuk Tugas Akhir dan Skripsi, Jakarta: Penerbit PT
Diakses tanggal 11 Mei, 2012
Diakses tanggal 27 Mei, 2012
LAMPIRAN
Modul Utama
Option Explicit
Public KoneksiDB As New ADODB.Connection Public Rs_Jenis As ADODB.Recordset
Public Rs_Barang As ADODB.Recordset Public Rs_StokBarang As ADODB.Recordset Public Rs_Pengguna As ADODB.Recordset Public Rs_Penjualan As ADODB.Recordset Public Rs_CetakPenjualan As ADODB.Recordset Public Rs_PreviewPenjualan As ADODB.Recordset Public Rs As ADODB.Recordset
Public StrAkses As String Public SqlInsert As String Public SqlDelete As String Public SqlUpdate As String
Public PenggunaID, PenggunaNm As String Public SQL As String
Public Konfirmasi As String Public Status As String Public Sub BukaDatabase()
StrAkses = "Provider=Microsoft.Jet.OLEDB.4.0;Persist " _ & "Security Info=False;Data Source=" _
& App.Path + "\DbBarang.mdb"
On Error Resume Next
If KoneksiDB.State = adStateOpen Then KoneksiDB.Close
Set KoneksiDB = New ADODB.Connection KoneksiDB.Open StrAkses
Else
KoneksiDB.Open StrAkses End If
Set Rs_Jenis = New ADODB.Recordset
Rs_Jenis.Open "SELECT * FROM Jenis_Barang", _ KoneksiDB, adOpenDynamic, _
adLockBatchOptimistic
Set Rs_Barang = New ADODB.Recordset Rs_Barang.Open "SELECT Barang.*, " _ & " Jenis_Barang.Nama_Jenis " _
& " FROM Barang, Jenis_Barang WHERE " _
& " Jenis_Barang.Kode_Jenis=Barang.Kode_Jenis " _ & " ORDER BY Kode_Barang", _
KoneksiDB, adOpenDynamic, _ adLockBatchOptimistic
Set Rs_StokBarang = New ADODB.Recordset Rs_StokBarang.Open "SELECT Barang.*, " _ & " Jenis_Barang.Nama_Jenis " _
& " FROM Barang, Jenis_Barang WHERE " _
& " Jenis_Barang.Kode_Jenis=Barang.Kode_Jenis " _ & " AND Barang.Stok_Barang <> 0 " _
& " ORDER BY Kode_Barang", _ KoneksiDB, adOpenDynamic, _ adLockBatchOptimistic
Set Rs_Pengguna = New ADODB.Recordset
Rs_Pengguna.Open "SELECT * FROM Pengguna", _ KoneksiDB, adOpenDynamic, _
adLockBatchOptimistic
Set Rs_Penjualan = New ADODB.Recordset
Rs_Penjualan.Open "SELECT * FROM Penjualan", _ KoneksiDB, adOpenDynamic, _
adLockBatchOptimistic End Sub
Public Function TglSkrg(tgl As Date) As String TglSkrg = Format(Day(tgl), "00") & "/" _ & Format(Month(tgl), "00") & "/" _ & Format(Year(tgl))
End Function
Modul Cetak
Public Type arrCetak KodeBarang As String NamaBarang As String TanggalTerima As Date Jumlah As Long HargaSatuan As Long Total As Long End Type
Public tabCetak() As arrCetak '# Tulisan rata kiri
Function RKiri(NData, CFormat) As String If NData > 0 Then 'Jika NData bilangan positif RKiri = Format(NData, CFormat)
'RKiri = RKiri + Space(Len(CFormat) - Len(RKiri)) Else 'Jika NData merupakan string kosong
RKiri = Format(NData, CFormat) RKiri = "" + Space(Len(CFormat) - 1) End If
End Function
'# Tulisan rata kanan
Function RKanan(NData, CFormat) As String If NData > 0 Then 'Jika NData bilangan positif RKanan = Format(NData, CFormat)
RKanan = RKanan + Space(Len(CFormat) - Len(RKanan)) Else 'Jika NData merupakan bilangan nol
RKanan = Format(NData, CFormat) RKanan = Space(Len(CFormat) - 1) + "0" End If
End Function
Public Function IsPrinterInstalled() As Boolean On Error Resume Next
Dim strDummy As String
strDummy = Printer.DeviceName If Err.Number Then IsPrinterInstalled = False Else IsPrinterInstalled = True End If End Function
Form Menu Utama
Option Explicit
Private Sub Form_Paint() Dim lebar As Single Dim tinggi As Single Dim x As Single Dim y As Single lebar = Picture1.ScaleWidth tinggi = Picture1.ScaleHeight y = Toolbar1.Height Do While y < ScaleHeight x = 0 Do While x < ScaleWidth PaintPicture Picture1.Picture, _ x, y, lebar, tinggi x = x + lebar Loop y = y + tinggi
Loop End Sub
Private Sub Form_Unload(Cancel As Integer) Dim Tanya
Tanya = MsgBox("Keluar dari Sistem?", vbQuestion + vbYesNo) If Tanya = vbYes Then
End Else Exit Sub End If End Sub
Private Sub mnuGraJualBln_Click()
cr.ReportFileName = App.Path + "\rptGraJualBln.rpt" cr.DataFiles(0) = App.Path + "\DbBarang.mdb" cr.DiscardSavedData = True
cr.Destination = crptToWindow cr.WindowState = crptMaximized cr.Action = 28
End Sub
Private Sub mnuKeluar_Click() Dim Tanya
Tanya = MsgBox("Keluar Dari Program Ini?", vbQuestion + vbYesNo, "Keluar") If Tanya = vbYes Then
End Else End If End Sub
Private Sub mnuJualPeriode_Click() frmLapJualPeriode.Show 1 End Sub
Private Sub mnuJualTgl_Click() frmLapJualTgl.Show 1 End Sub
Private Sub mnuLapBrgJualAntrTgl_Click() frmLapBrgAntrTgl.Show 1
Private Sub mnuLapJlhBrgJualBln_Click() frmLapJlhBrgJualBln.Show 1
End Sub
Private Sub mnuLapJualAntrTgl_Click() frmLapJlAntrTgl.Show 1
End Sub
Private Sub mnuLapSelBrgJual_Click()
cr.ReportFileName = App.Path + "\rptGraSelJlhBrg.rpt" cr.DataFiles(0) = App.Path + "\DbBarang.mdb"
cr.DiscardSavedData = True cr.Destination = crptToWindow cr.WindowState = crptMaximized cr.Action = 28
End Sub
Private Sub mnuPengguna_Click() frmPengguna.Show 1
End Sub
Private Sub mnuJenis_Click() frmJenis.Show 1, FrmUtama End Sub
Private Sub mnuLapJual_Click() With rptLapPenjualan .Sections("Section4").Controls("Label5").Caption = _ Format(Date, "dd MMMM yyyy") .Show 1 End With End Sub
Private Sub mnuLapBarang_Click() With rptBarang .Sections("Section4").Controls("Label5").Caption = _ Format(Date, "dd MMMM yyyy") .Show 1 End With End Sub
Private Sub mnuLogin_Click()
If FrmUtama.mnuLogin.Caption = "Login" Then frmLogin.Show 1
Else
mnuLaporan.Enabled = False mnuBarang.Enabled = False
mnuJenis.Enabled = False mnuTamStok.Enabled = False mnuPengguna.Enabled = False mnuTransaksi.Enabled = False Toolbar1.Enabled = False Me.mnuLogin.Caption = "Login" End If End Sub
Private Sub mnuBarang_Click() frmBarang.Show 1, FrmUtama End Sub
Private Sub mnuBarangJenis_Click() frmLapBarangJenis.Show 1 End Sub
Private Sub mnuTamStok_Click() frmTambahStok.Show 1
End Sub
Private Sub mnuTransJual_Click() frmJual.Show 1, FrmUtama End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) On Error Resume Next
Select Case Button.Index Case 1: frmJenis.Show 1 Case 2: frmBarang.Show 1 Case 4: frmTambahStok.Show 1 Case 5: frmJual.Show 1 Case 7: frmLogin.Show 1 End Select End Sub
Form Menu Login
Option Explicit
Dim MaxLogin As Integer Private Sub Form_Load()
Skin1.ApplySkin Me.hWnd
Move (Screen.Width - Width) / 2, _ (Screen.Height - Height) / 3 Call BukaDatabase cmbStatus.AddItem ("KASIR") cmbStatus.AddItem ("ADMIN") End Sub
Private Sub TbLogin_Click() If txtUser.Text = "" Then
MsgBox "USER ID MASIH KOSONG !", _ vbCritical + vbOKOnly, "Error"
txtUser.SetFocus
ElseIf txtPwd.Text = "" Then
MsgBox "PASSWORD MASIH KOSONG !", _ vbCritical + vbOKOnly, "Error"
txtPwd.SetFocus Else
SQL = ""
SQL = "SELECT * FROM Pengguna " _
& "WHERE UserID='" & txtUser.Text & "' " _ & " AND PassID='" & txtPwd.Text & "'" _ & " AND Status='" & cmbStatus.Text & "'" Set Rs_Pengguna = KoneksiDB.Execute(SQL)
If Not Rs_Pengguna.BOF Then
If Rs_Pengguna!Status = "ADMIN" Then Unload Me FrmUtama.Enabled = True FrmUtama.Show FrmUtama.mnuLaporan.Enabled = True FrmUtama.mnuBarang.Enabled = True FrmUtama.mnuJenis.Enabled = True FrmUtama.mnuPengguna.Enabled = True FrmUtama.mnuTransaksi.Enabled = True FrmUtama.mnuTamStok.Enabled = True FrmUtama.mnuTransJual.Enabled = True FrmUtama.mnuJualPeriode.Enabled = True FrmUtama.mnuLapJual.Enabled = True FrmUtama.mnuJualTgl.Enabled = True FrmUtama.mnuLapSelBrgJual.Enabled = True FrmUtama.mnuLapJualAntrTgl.Enabled = True FrmUtama.mnuLapBrgJualAntrTgl.Enabled = True FrmUtama.mnuLapJlhBrgJualBln.Enabled = True FrmUtama.mnuGraJualBln.Enabled = True FrmUtama.Toolbar1.Enabled = True
Else Unload Me FrmUtama.Enabled = True FrmUtama.Show FrmUtama.mnuLaporan.Enabled = True FrmUtama.mnuLapBarang.Enabled = True FrmUtama.mnuBarangJenis.Enabled = True FrmUtama.mnuTransJual.Enabled = True FrmUtama.mnuTamStok.Enabled = False FrmUtama.mnuJualPeriode.Enabled = False FrmUtama.mnuLapJual.Enabled = False FrmUtama.mnuJualTgl.Enabled = False FrmUtama.mnuBarang.Enabled = False FrmUtama.mnuJenis.Enabled = False FrmUtama.mnuPengguna.Enabled = False FrmUtama.mnuTransaksi.Enabled = True FrmUtama.mnuLapJualAntrTgl.Enabled = False FrmUtama.mnuLapBrgJualAntrTgl.Enabled = False FrmUtama.mnuLapSelBrgJual.Enabled = False FrmUtama.mnuLapJlhBrgJualBln.Enabled = False FrmUtama.mnuGraJualBln.Enabled = False FrmUtama.Toolbar1.Enabled = False End If PenggunaID = Rs_Pengguna!UserId PenggunaNm = Rs_Pengguna!Nama With FrmUtama .StatusBar1.Panels(1).Text = Rs_Pengguna!Nama .StatusBar1.Panels(2).Text = "[" _
& Rs_Pengguna!Status & "]" .mnuLogin.Enabled = True .mnuLogin.Caption = "Logout" End With Unload Me Else
' Periksa, login hanya 3 kali ' 3x gagal pesan error ditampilkan If MaxLogin < 3 Then
MsgBox "PASSWORD MASIH SALAH, SILAHKAN ULANGI LAGI!", _ vbCritical + vbOKOnly, "Error"
txtPwd.Text = "" txtPwd.SetFocus
MaxLogin = MaxLogin + 1 Else
MsgBox "ANDA BUKAN USER YANG BERHAK!", _ vbCritical + vbOKOnly, "Error"
End If End If End If End Sub
Private Sub TbTutup_Click() Dim pil As VbMsgBoxResult
pil = MsgBox("Anda Yakin untuk keluar?", vbQuestion + vbYesNo, "Exit") If (pil = vbYes) Then Unload Me
End Sub
Form Menu Data Jenis
Option Explicit
Dim GridObjIndex As Byte Dim KodeJenis As String Private Sub Form_Load()
Skin1.LoadSkin App.Path & "/skin/chizh.skn" Skin1.ApplySkin Me.hWnd
Move (Screen.Width - Width) / 2, _ (Screen.Height - Height) / 3 Call BukaDatabase Call TampilGridData Call FormMati TbHapus.Enabled = False TbSimpan.Enabled = False TbUbah.Enabled = False End Sub Sub FormKosong() txtKode.Text = "" txtNama.Text = "" End Sub Sub FormHidup() txtKode.Enabled = True txtNama.Enabled = True End Sub Sub FormMati() txtKode.Enabled = False txtNama.Enabled = False End Sub Sub FormNormal()
FormKosong FormMati TbTambah.Enabled = True TbHapus.Enabled = False TbSimpan.Enabled = False TbUbah.Enabled = False TbKeluar.Caption = "Keluar" End Sub Sub BuatKodeJenis() Rs_Jenis.Requery
Set Rs_Jenis = New ADODB.Recordset Set Rs_Jenis = New ADODB.Recordset
Rs_Jenis.Open "SELECT * FROM Jenis_Barang", _ KoneksiDB, adOpenDynamic, _ adLockBatchOptimistic If Rs_Jenis.BOF Then KodeJenis = "K0001" Exit Sub Else Rs_Jenis.MoveLast KodeJenis = Rs_Jenis!Kode_Jenis KodeJenis = Right(KodeJenis, 4) KodeJenis = Val(KodeJenis) + 1 If Len(KodeJenis) > 4 Then
MsgBox "Kode jenis baru melewati batas", _ vbCritical, "Error"
Exit Sub End If End If
KodeJenis = "K" & Format(KodeJenis, "0000") End Sub Sub AktifGridJenis() With GridJenis .RowHeightMin = 300 .Col = 0 .Row = 0 .Text = "NO" .CellFontBold = True .ColWidth(0) = 400 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .RowHeightMin = 300 .Col = 1
.Row = 0 .Text = "KODE" .CellFontBold = True .ColWidth(1) = 800 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 2 .Row = 0
.Text = "NAMA JENIS" .CellFontBold = True .ColWidth(2) = 6000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter End With End Sub Sub TampilGridData() Dim Baris As Integer GridJenis.Clear AktifGridJenis GridJenis.Rows = 2 Baris = 0 Call BukaDatabase If Rs_Jenis.BOF Then
MsgBox "Tabel Jenis masih kosong!", _ vbOKOnly + vbInformation, "Perhatian" Exit Sub
Else
With Rs_Jenis .MoveFirst
Do While Not .EOF On Error Resume Next Baris = Baris + 1 GridJenis.Rows = Baris + 1 GridJenis.TextMatrix(Baris, 0) = Baris GridJenis.TextMatrix(Baris, 1) = !Kode_Jenis GridJenis.TextMatrix(Baris, 2) = !Nama_Jenis .MoveNext Loop End With End If End Sub
Private Sub GridJenis_DblClick() TbHapus.Enabled = True TbSimpan.Enabled = False
TbUbah.Enabled = True TbKeluar.Caption = "Batal" TbTambah.Enabled = False Call FormHidup txtNama.SetFocus GridObjIndex = GridJenis.Row
Set Rs_Jenis = New ADODB.Recordset
Rs_Jenis.Open " SELECT * FROM Jenis_Barang " _ & " WHERE Kode_Jenis='" _
& GridJenis.TextMatrix(GridObjIndex, 1) & "' " _ , KoneksiDB, adOpenDynamic, adLockBatchOptimistic
If Rs_Jenis.BOF Then
MsgBox "Tabel jenis Barang masih kosong!", _ vbOKOnly + vbInformation, "Perhatian"
Exit Sub
Call FormNormal Else
Rs_Jenis.MoveFirst
Do While Not Rs_Jenis.EOF On Error Resume Next
txtKode.Text = Rs_Jenis!Kode_Jenis txtNama.Text = Rs_Jenis!Nama_Jenis Rs_Jenis.MoveNext Loop End If End Sub
'# TOMBOL TAMBAH DIKLIK Private Sub TbTambah_Click() Call FormHidup Call BuatKodeJenis txtKode.Text = KodeJenis TbSimpan.Enabled = True TbTambah.Enabled = False TbUbah.Enabled = False TbHapus.Enabled = False TbKeluar.Caption = "Batal" txtNama.SetFocus Call TampilGridData End Sub
Dim Rs_Jenis As New ADODB.Recordset
Set Rs_Jenis = KoneksiDB.Execute("SELECT * " _ & " FROM Jenis_Barang " _
& " WHERE Nama_Jenis='" & txtNama.Text & "' ") If txtNama.Text = "" Then
MsgBox "Nama Jenis Barang tidak boleh kosong!", _ vbInformation + vbOKOnly, "Perhatian"
txtNama.SetFocus
ElseIf Not Rs_Jenis.BOF Then
MsgBox "Maaf, Nama jenis Barang" _ & " " & UCase(txtNama.Text) _ & " sudah tersedia!!", _
vbInformation + vbOKOnly, "Information" txtNama.Text = ""
txtNama.SetFocus Exit Sub
Else
SqlInsert = "INSERT INTO Jenis_Barang " _ & " (Kode_Jenis,Nama_Jenis) " _
& " VALUES('" & txtKode.Text & "','" _ & txtNama.Text & "')"
KoneksiDB.Execute SqlInsert, , adCmdText Rs_Jenis.Requery
Call FormNormal Call Form_Load
MsgBox "Data telah tersimpan dalam database !", _ vbOKOnly + vbInformation, "Konfirmasi" End If
End Sub
'# TOMBOL UBAH DIKLIK Private Sub TbUbah_Click() If txtNama.Text = "" Then
MsgBox "Nama jenis Barang tidak boleh kosong!", _ vbInformation + vbOKOnly, "Perhatian"
txtNama.SetFocus Else
SqlUpdate = "UPDATE Jenis_Barang" _
& " SET Nama_Jenis='" & txtNama.Text & "' " _ & " WHERE Kode_Jenis='" & txtKode.Text & "'"
KoneksiDB.Execute SqlUpdate, , adCmdText Rs_Jenis.Requery
Call FormNormal
vbOKOnly + vbInformation, "Konfirmasi"
Call Form_Load End If
End Sub
'# TOMBOL HAPUS DIKLIK Private Sub TbHapus_Click()
Konfirmasi = MsgBox("Anda yakin akan " _ & " menghapus pesan ini?", _
vbYesNo + vbQuestion, "Konfirmasi") If Konfirmasi = vbYes Then
SqlDelete = "DELETE FROM Jenis_Barang WHERE " _ & " Kode_Jenis='" & txtKode.Text & "'"
KoneksiDB.Execute SqlDelete, , adCmdText Rs_Jenis.Requery Call FormNormal Call Form_Load Else Call FormNormal End If End Sub
'# TOMBOL KELUAR DIKLIK Private Sub TbKeluar_Click()
If TbKeluar.Caption = "Keluar" Then Unload Me
Else
Call FormNormal End If
End Sub
Private Sub txtNama_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase((Chr(KeyAscii))))
If KeyAscii = vbKeyReturn Then TbSimpan.SetFocus
KeyAscii = 0 End If
End Sub
Form Menu Data Barang
Option Explicit
Dim GridObjIndex As Byte Dim Kd_Jenis As String Dim KodeBarang As String Dim KeteranganBarang As String Private Sub Form_Load()
Skin1.LoadSkin App.Path & "/skin/chizh.skn" Skin1.ApplySkin Me.hWnd
Move (Screen.Width - Width) / 2, _ (Screen.Height - Height) / 3 Call BukaDatabase Call TampilGridData Call FormMati TbHapus.Enabled = False TbSimpan.Enabled = False TbUbah.Enabled = False Call CmbJenis_Click Call cmbJenis_DropDown End Sub Sub FormKosong() txtKode.Text = "" CmbJenis.ListIndex = -1 txtNama.Text = "" txtHarga.Text = "0" txtStok.Text = "0" txtKeterangan.Text = "" End Sub Sub FormHidup() txtKode.Enabled = True CmbJenis.Enabled = True txtNama.Enabled = True txtHarga.Enabled = True txtStok.Enabled = True txtKeterangan.Enabled = True End Sub Sub FormMati() txtKode.Enabled = False CmbJenis.Enabled = False txtNama.Enabled = False txtHarga.Enabled = False txtStok.Enabled = False txtKeterangan.Enabled = False End Sub Sub FormNormal() Call FormKosong Call FormMati txtStok.Locked = False
TbTambah.Enabled = True TbHapus.Enabled = False TbSimpan.Enabled = False TbUbah.Enabled = False TbKeluar.Caption = "Keluar" End Sub
Private Sub CmbJenis_Click() Kd_Jenis = ""
Set Rs_Jenis = KoneksiDB.Execute("SELECT * FROM " _ & " Jenis_Barang WHERE " _
& " Nama_Jenis='" & CmbJenis.Text & "'") With Rs_Jenis
If .EOF And .BOF Then Exit Sub Else Kd_Jenis = Rs_Jenis!Kode_Jenis txtNama.SetFocus End If End With End Sub
Private Sub cmbJenis_DropDown() CmbJenis.Clear
Set Rs_Jenis = KoneksiDB.Execute("SELECT * FROM " _ & " Jenis_Barang ORDER BY Nama_Jenis")
If Not Rs_Jenis.BOF Then While Not Rs_Jenis.EOF
CmbJenis.AddItem Rs_Jenis!Nama_Jenis Rs_Jenis.MoveNext Wend End If End Sub Sub BuatKodeBarang() Rs_Barang.Requery
Set Rs_Barang = New ADODB.Recordset Rs_Barang.Open "SELECT Barang.*, " _ & " Jenis_Barang.Nama_Jenis " _
& " FROM Barang, Jenis_Barang WHERE " _
& " Jenis_Barang.Kode_Jenis=Barang.Kode_Jenis " _ & " ORDER BY Kode_Barang ASC ", _
KoneksiDB, adOpenDynamic, adLockBatchOptimistic If Rs_Barang.BOF Then
KodeBarang = "B0001" Exit Sub
Rs_Barang.MoveLast KodeBarang = Rs_Barang!Kode_Barang KodeBarang = Right(KodeBarang, 4) KodeBarang = Val(KodeBarang) + 1 If Len(KodeBarang) > 4 Then
MsgBox "Kode baru melewati batas", _ vbCritical, "Error"
Exit Sub End If End If
KodeBarang = "B" & Format(KodeBarang, "0000") End Sub Sub AktifGridBarang() With GridBarang .RowHeightMin = 300 .Col = 0 .Row = 0 .Text = "NO" .CellFontBold = True .ColWidth(0) = 400 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .RowHeightMin = 300 .Col = 1 .Row = 0 .Text = "KODE" .CellFontBold = True .ColWidth(1) = 750 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 2 .Row = 0 .Text = "JENIS" .CellFontBold = True .ColWidth(2) = 1900 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 3 .Row = 0
.Text = "NAMA BARANG" .CellFontBold = True
.ColWidth(3) = 3300
.CellAlignment = flexAlignCenterCenter .Col = 4 .Row = 0 .Text = "HARGA [Rp.]" .CellFontBold = True .ColWidth(4) = 1600 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 5 .Row = 0 .Text = "STOK" .CellFontBold = True .ColWidth(5) = 1600 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 6 .Row = 0 .Text = "KETERANGAN" .CellFontBold = True .ColWidth(6) = 3000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter End With End Sub Sub TampilGridData() Dim Baris As Integer GridBarang.Clear Call AktifGridBarang GridBarang.Rows = 2 Baris = 0 Call BukaDatabase If Rs_Barang.BOF Then
MsgBox "Tabel Barang masih kosong!", _ vbOKOnly + vbInformation, "Perhatian" Exit Sub
Else
With Rs_Barang .MoveFirst
Do While Not .EOF On Error Resume Next Baris = Baris + 1
GridBarang.Rows = Baris + 1 GridBarang.TextMatrix(Baris, 0) = Baris GridBarang.TextMatrix(Baris, 1) = !Kode_Barang GridBarang.TextMatrix(Baris, 2) = !Nama_Jenis GridBarang.TextMatrix(Baris, 3) = !Nm_Barang GridBarang.TextMatrix(Baris, 4) = !Hrg_Satuan GridBarang.TextMatrix(Baris, 5) = !Stok_Barang GridBarang.TextMatrix(Baris, 6) = !Keterangan .MoveNext Loop End With End If End Sub
Private Sub GridBarang_DblClick() TbHapus.Enabled = True TbSimpan.Enabled = False TbUbah.Enabled = True TbKeluar.Caption = "Batal" TbTambah.Enabled = False txtStok.Locked = True Call FormHidup CmbJenis.SetFocus GridObjIndex = GridBarang.Row
Set Rs_Barang = New ADODB.Recordset Rs_Barang.Open "SELECT Barang.*, " _ & " Jenis_Barang.Nama_Jenis " _
& " FROM Barang, Jenis_Barang WHERE " _
& " Jenis_Barang.Kode_Jenis=Barang.Kode_Jenis " _ & " AND Kode_Barang='" _
& GridBarang.TextMatrix(GridObjIndex, 1) _ & "' ORDER BY Kode_Barang ASC ", _
KoneksiDB, adOpenDynamic, adLockBatchOptimistic
If Rs_Barang.BOF Then
MsgBox "Tabel Barang masih kosong!", _ vbOKOnly + vbInformation, "Perhatian" Exit Sub
Call FormNormal Else
Rs_Barang.MoveFirst
Do While Not Rs_Barang.EOF On Error Resume Next
txtKode.Text = Rs_Barang!Kode_Barang CmbJenis.Text = Rs_Barang!Nama_Jenis txtNama.Text = Rs_Barang!Nm_Barang
txtHarga.Text = Rs_Barang!Hrg_Satuan txtStok.Text = Rs_Barang!Stok_Barang txtKeterangan.Text = Rs_Barang!Keterangan Rs_Barang.MoveNext Loop End If End Sub
Private Sub Label1_Click() End Sub
Private Sub TbTambah_Click() Call FormHidup Call BuatKodeBarang txtKode.Text = KodeBarang TbSimpan.Enabled = True TbTambah.Enabled = False TbUbah.Enabled = False TbHapus.Enabled = False TbKeluar.Caption = "Batal" CmbJenis.SetFocus Call TampilGridData End Sub
Private Sub TbSimpan_Click() If CmbJenis.ListIndex = -1 Then
MsgBox "Jenis Barang tidak boleh kosong!", _ vbInformation + vbOKOnly, "Perhatian" CmbJenis.SetFocus
ElseIf txtNama.Text = "" Then
MsgBox "Nama Barang tidak boleh kosong!", _ vbInformation + vbOKOnly, "Perhatian" txtNama.SetFocus
ElseIf txtHarga.Text = "" Or txtHarga.Text = "0" Then MsgBox "Harga Barang tidak boleh kosong!", _ vbInformation + vbOKOnly, "Perhatian" txtHarga.SetFocus
ElseIf txtStok.Text = "" Then
MsgBox "Stok Barang tidak boleh kosong!", _ vbInformation + vbOKOnly, "Perhatian" txtStok.SetFocus
Else
If txtKeterangan = "" Then
KeteranganBarang = "Tidak ada keterangan" Else
End If
SqlInsert = "INSERT INTO Barang " _
& " (Kode_Barang,Kode_Jenis, Nm_Barang, " _ & " Hrg_Satuan,Stok_Barang, Keterangan)" _ & " VALUES('" & txtKode.Text & "','" _ & Kd_Jenis & "','" & txtNama.Text & "','" _ & txtHarga.Text & "','" & txtStok.Text & "','" _ & KeteranganBarang & "')"
KoneksiDB.Execute SqlInsert, , adCmdText Rs_Barang.Requery
Call FormNormal Call Form_Load
MsgBox "Data telah tersimpan dalam database !", _ vbOKOnly + vbInformation, "Konfirmasi" End If
End Sub
Private Sub TbUbah_Click() If CmbJenis.ListIndex = -1 Then
MsgBox "Jenis Barang tidak boleh kosong!", _ vbInformation + vbOKOnly, "Perhatian" CmbJenis.SetFocus
ElseIf txtNama.Text = "" Then
MsgBox "Nama Barang tidak boleh kosong!", _ vbInformation + vbOKOnly, "Perhatian" txtNama.SetFocus
ElseIf txtHarga.Text = "" Or txtHarga.Text = "0" Then MsgBox "Harga Barang tidak boleh kosong!", _ vbInformation + vbOKOnly, "Perhatian" txtHarga.SetFocus
ElseIf txtStok.Text = "" Then
MsgBox "Stok Barang tidak boleh kosong!", _ vbInformation + vbOKOnly, "Perhatian" txtStok.SetFocus
Else
If txtKeterangan = "" Then
KeteranganBarang = "Tidak ada keterangan" Else
KeteranganBarang = txtKeterangan.Text End If
SqlUpdate = "UPDATE Barang" _
& " SET Kode_Jenis='" & Kd_Jenis & " ', " _ & " Nm_Barang='" & txtNama.Text & "', " _ & " Hrg_Satuan='" & txtHarga.Text & "', " _ & " Stok_Barang='" & txtStok.Text & "', " _
& " Keterangan='" & KeteranganBarang & "' " _ & " WHERE Kode_Barang='" & txtKode.Text & "'"
KoneksiDB.Execute SqlUpdate, , adCmdText Rs_Barang.Requery
Call FormNormal
MsgBox "Data telah ter_update dalam database !", _ vbOKOnly + vbInformation, "Konfirmasi"
Call Form_Load End If
End Sub
Private Sub TbHapus_Click()
Konfirmasi = MsgBox("Anda yakin akan " _ & " menghapus pesan ini?", _
vbYesNo + vbQuestion, "Konfirmasi") If Konfirmasi = vbYes Then
SqlDelete = "DELETE FROM Barang WHERE " _ & " Kode_Barang='" & txtKode.Text & "'"
KoneksiDB.Execute SqlDelete, , adCmdText Rs_Barang.Requery Call FormNormal Call Form_Load Else Call FormNormal End If End Sub
Private Sub TbKeluar_Click()
If TbKeluar.Caption = "Keluar" Then Unload Me
Else
FormNormal End If
End Sub
Private Sub txtHarga_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then
txtStok.SetFocus
ElseIf Not (KeyAscii >= Asc("0") _ And KeyAscii <= Asc("9") _ Or KeyAscii = vbKeyBack) Then Beep
KeyAscii = 0 End If
Private Sub txtKeterangan_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then
TbSimpan.SetFocus KeyAscii = 0 End If
End Sub
Private Sub txtNama_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then
txtHarga.SetFocus KeyAscii = 0 End If