• Tidak ada hasil yang ditemukan

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

Dokumen terkait