• Tidak ada hasil yang ditemukan

Sistem Informasi Penjualan Barang pada Apotek K-24

N/A
N/A
Protected

Academic year: 2019

Membagikan "Sistem Informasi Penjualan Barang pada Apotek K-24"

Copied!
54
0
0

Teks penuh

(1)

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

(2)

& " 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

(3)

'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

(4)

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

(5)

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

(6)

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()

(7)

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

(8)

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"

(9)

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

(10)

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

(11)

.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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

.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

(19)

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

(20)

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

(21)

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" _

(22)

& " 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

(23)

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

End Sub

Private Sub txtStok_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then

txtKeterangan.SetFocus

ElseIf Not (KeyAscii >= Asc("0") _ And KeyAscii <= Asc("9") _ Or KeyAscii = vbKeyBack) Then Beep

KeyAscii = 0 End If

End Sub

Form Menu Pengguna

Option Explicit

Dim GridBaris As Byte Dim TmpPassword As String Dim NewPassword As String Dim Tanya 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

cmbStatus.Clear

cmbStatus.AddItem ("KASIR") cmbStatus.AddItem ("ADMIN")

(24)

TbSimpan.Enabled = False TbHapus.Enabled = False

Call FormMati End Sub

Sub FormKosong() txtUserId.Text = "" txtPassword.Text = "" txtNama.Text = "" cmbStatus.ListIndex = -1 End Sub

Sub FormHidup()

txtUserId.Enabled = True txtPassword.Enabled = True txtNama.Enabled = True cmbStatus.Enabled = True

txtUserId.BackColor = &HFFFFFF txtPassword.BackColor = &HFFFFFF txtNama.BackColor = &HFFFFFF cmbStatus.BackColor = &HFFFFFF End Sub

Sub FormMati()

txtUserId.Enabled = False txtPassword.Enabled = False txtNama.Enabled = False cmbStatus.Enabled = False

txtUserId.BackColor = &HC0FFFF txtPassword.BackColor = &HC0FFFF txtNama.BackColor = &HC0FFFF cmbStatus.BackColor = &HC0FFFF End Sub

Sub FormNormal() Call FormKosong Call FormMati

TbBaru.Enabled = True TbUbah.Enabled = False TbHapus.Enabled = False TbSimpan.Enabled = False TbKeluar.Caption = "Keluar" End Sub

(25)

With GridPengguna

.RowHeightMin = 300 .Col = 0

.Row = 0

.Text = "USER ID" .CellFontBold = True .ColWidth(0) = 1300

.AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter

.Col = 1 .Row = 0

.Text = "PASSWORD" .CellFontBold = True .ColWidth(1) = 1300

.AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter

.Col = 2 .Row = 0

.Text = "NAMA PEMILIK" .CellFontBold = True .ColWidth(2) = 3700

.AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter

.Col = 3 .Row = 0

.Text = "STATUS" .CellFontBold = True .ColWidth(3) = 1300

.AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter End With

End Sub

Sub TampilGridData() Dim Baris As Integer GridPengguna.Clear Call AktifGridPengguna

GridPengguna.Rows = 2 Baris = 0

Set Rs_Pengguna = New ADODB.Recordset

(26)

If Rs_Pengguna.BOF Then

MsgBox "DATA Pengguna MASIH KOSONG!", _ vbOKOnly + vbInformation, "Perhatian"

Exit Sub Else

With Rs_Pengguna .MoveFirst

Do While Not .EOF On Error Resume Next Baris = Baris + 1

GridPengguna.Rows = Baris + 1

GridPengguna.TextMatrix(Baris, 0) = !UserId GridPengguna.TextMatrix(Baris, 1) = "xxxxxxx" GridPengguna.TextMatrix(Baris, 2) = !Nama GridPengguna.TextMatrix(Baris, 3) = !Status .MoveNext

Loop End With End If End Sub

Private Sub GridPengguna_DblClick() TbHapus.Enabled = True

TbSimpan.Enabled = False TbUbah.Enabled = True TbKeluar.Caption = "Batal" TbBaru.Enabled = False txtUserId.Locked = True

Call FormHidup txtPassword.SetFocus

GridBaris = GridPengguna.Row

Set Rs_Pengguna = New ADODB.Recordset

Rs_Pengguna.Open "SELECT * FROM Pengguna " _ & " WHERE UserId='" _

& GridPengguna.TextMatrix(GridBaris, 0) & "'", _ KoneksiDB, adOpenDynamic, adLockBatchOptimistic

If Rs_Pengguna.BOF Then

MsgBox "TABEL MASIH KOSONG", _ vbOKOnly + vbInformation, "Perhatian" Exit Sub

Call FormNormal Else

Rs_Pengguna.MoveFirst

(27)

txtUserId.Text = Rs_Pengguna!UserId txtNama.Text = Rs_Pengguna!Nama cmbStatus.Text = Rs_Pengguna!Status

TmpPassword = Rs_Pengguna!PassId Rs_Pengguna.MoveNext

Loop End If End Sub

Private Sub TbBaru_Click() Call FormHidup

Call TampilGridData

TbSimpan.Enabled = True TbBaru.Enabled = False TbHapus.Enabled = False TbKeluar.Caption = "Batal"

txtUserId.Locked = False txtUserId.SetFocus End Sub

Private Sub TbSimpan_Click()

Set Rs_Pengguna = New ADODB.Recordset

Rs_Pengguna.Open "SELECT * FROM Pengguna WHERE " _ & " UserId='" & Trim(txtUserId.Text) & "'", _

KoneksiDB, adOpenDynamic, adLockBatchOptimistic

If Len(txtUserId.Text) <= 4 Then

MsgBox "USER ID MINIMAL 4 DIGIT", _ vbOKOnly + vbCritical, "Error"

txtUserId.SetFocus

ElseIf txtNama.Text = "" Then

MsgBox "NAMA BELUM DIISI", _ vbOKOnly + vbCritical, "Error" txtNama.SetFocus

ElseIf Not Rs_Pengguna.BOF Then MsgBox "Maaf, UserId" _

& " " & UCase(txtUserId.Text) _ & " sudah tersedia!!", _

vbInformation + vbOKOnly, "Information" txtUserId.Text = ""

txtUserId.SetFocus Exit Sub

Else

SqlInsert = "INSERT INTO Pengguna " _ & " (UserId,PassId,Nama,Status) " _

(28)

& Trim(txtPassword.Text) & "','" _ & Trim(txtNama.Text) & "','" _ & Trim(cmbStatus.Text) & "')"

KoneksiDB.Execute SqlInsert, , adCmdText Rs_Pengguna.Requery

Call FormNormal Call Form_Load

MsgBox "DATA PENGGUNA BARU TELAH TERSIMPAN", _ vbOKOnly + vbInformation, "Sukses"

End If End Sub

Private Sub TbUbah_Click()

Set Rs_Pengguna = New ADODB.Recordset

Rs_Pengguna.Open "SELECT * FROM Pengguna WHERE " _ & " UserId='" & Trim(txtUserId.Text) & "'", _

KoneksiDB, adOpenDynamic, adLockBatchOptimistic

If txtNama.Text = "" Then

MsgBox "NAMA BELUM DIISI", _ vbOKOnly + vbCritical, "Error" txtNama.SetFocus

Else

If Trim(txtPassword.Text) = "" Then NewPassword = TmpPassword Else

NewPassword = txtPassword.Text End If

Tanya = MsgBox("AKAN MERUBAH DATA PENGGUNA? DARI : " _ & vbCrLf & "" & "NAMA LAMA : " _

& Rs_Pengguna.Fields!Nama + vbCrLf & "" _

& "NAMA BARU : " & txtNama.Text + vbCrLf & "", _ vbYesNo + vbQuestion, "Awass")

If Tanya = vbYes Then

SqlUpdate = "UPDATE Pengguna" _

& " SET PassId='" & NewPassword & " ', " _ & " Nama='" & Trim(txtNama.Text) & "', " _ & " Status='" & Trim(cmbStatus.Text) & "' " _ & " WHERE UserId='" & Trim(txtUserId.Text) & "'"

KoneksiDB.Execute SqlUpdate, , adCmdText End If

(29)

Call Form_Load End If

End Sub

Private Sub TbHapus_Click()

Tanya = MsgBox("YAKIN AKAN MENGHAPUS DATA INI?" _ & vbCrLf & "" & "USER ID : " _

& txtUserId + vbCrLf & "" _

& "NAMA : " & txtNama.Text + vbCrLf & "", _ vbYesNo + vbQuestion, "Awass")

If Tanya = vbYes Then

SQL = "DELETE FROM Pengguna WHERE " _ & " UserId='" & txtUserId.Text & "'"

KoneksiDB.Execute SQL, , adCmdText

Rs_Pengguna.Requery Call FormNormal Call FormMati Call TampilGridData Else

Call FormNormal End If

End Sub

Private Sub TbKeluar_Click()

If TbKeluar.Caption = "Keluar" Then Unload Me

Else

Call FormNormal End If

End Sub

Private Sub txtUserId_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then

txtPassword.SetFocus KeyAscii = 0

End If End Sub

Private Sub txtPassword_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then

txtNama.SetFocus KeyAscii = 0 End If

End Sub

(30)

If KeyAscii = vbKeyReturn Then cmbStatus.SetFocus

KeyAscii = 0 End If

End Sub

Form Menu Tambah Stok Barang

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 FormMati

SkinLabel7.Visible = False txtStokLama.Visible = False

TbCari.Enabled = False TbSimpan.Enabled = False End Sub

Sub FormKosong() txtKode.Text = "" txtJenis.Text = "" txtNama.Text = "" txtHarga.Text = "0" txtStok.Text = "0" txtStokLama.Text = "" txtKeterangan.Text = "" End Sub

Sub FormHidup()

txtKode.Enabled = True txtJenis.Enabled = True txtNama.Enabled = True txtHarga.Enabled = True txtStok.Enabled = True txtKeterangan.Enabled = True End Sub

Sub FormMati()

(31)

txtHarga.Enabled = False txtStok.Enabled = False txtKeterangan.Enabled = False End Sub

Sub FormNormal() Call FormKosong Call FormMati

txtStok.Locked = False SkinLabel7.Visible = False txtStokLama.Visible = False

TbCari.Enabled = False TbTambah.Enabled = True TbSimpan.Enabled = False TbKeluar.Caption = "Keluar" End Sub

Private Sub TbCari_Click() FrmUtama.Enabled = False frmTambahStok.Enabled = False frmCariBarang.Show 1

End Sub

Private Sub TbKeluar_Click()

If TbKeluar.Caption = "Keluar" Then FrmUtama.Enabled = True

Unload Me Else

FormNormal End If

End Sub

Private Sub TbSimpan_Click()

If txtStok.Text = "" Or txtStok.Text = "0" Then MsgBox "Stok Barang tidak boleh kosong!", _ vbInformation + vbOKOnly, "Perhatian" txtStok.SetFocus

Else

SqlUpdate = ""

SqlUpdate = "UPDATE Barang" _

& " SET Stok_Barang=Stok_Barang + " _ & Val(txtStok.Text) & "" _

& " WHERE Kode_Barang='" & txtKode.Text & "'"

(32)

Rs_Barang.Requery Call FormNormal

MsgBox "Data telah ter_update dalam database !", _ vbOKOnly + vbInformation, "Konfirmasi"

Call Form_Load End If

End Sub

Private Sub TbTambah_Click() Call FormHidup

TbCari.Enabled = True TbSimpan.Enabled = True TbTambah.Enabled = False TbKeluar.Caption = "Batal" txtKode.SetFocus

End Sub

Private Sub txtKode_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then

If Len(txtKode.Text) < 5 Then

MsgBox "KODE BARANG HARUS 5 DIGIT", _ vbCritical, "Error"

Exit Sub End If

KeyAscii = 0

SkinLabel7.Visible = True txtStokLama.Visible = True

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 Barang.Kode_Barang='" _

& txtKode.Text & "' ", _

KoneksiDB, adOpenDynamic, adLockBatchOptimistic If Rs_Barang.BOF Then

MsgBox "KODE BARANG TIDAK DIKENALI ..", _ vbInformation, "Info"

Else

With Rs_Barang

(33)

End With End If End If End Sub

Private Sub txtStok_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then

TbSimpan.SetFocus

ElseIf Not (KeyAscii >= Asc("0") _ And KeyAscii <= Asc("9") _ Or KeyAscii = vbKeyBack) Then Beep

KeyAscii = 0 End If

End Sub

Form Menu Cari Daftar Barang

Private Sub Form_Load()

Skin1.LoadSkin App.Path & "/skin/chizh.skn" Skin1.ApplySkin Me.hWnd

Move (Screen.Width - Width) / 2, _ (Screen.Height - Height) / 4

Call BukaDatabase Call TampilGridData 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

(34)

.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

.AllowUserResizing = flexResizeColumns .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

(35)

GridBarang.Rows = 2 Baris = 0

If Rs_Barang.BOF Then

MsgBox "Tabel Barang masih kosong!", _ vbInformation + vbOKOnly, "Informasi" Exit Sub

Else

With Rs_Barang .MoveFirst

Do While Not .EOF 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) = UCase(!Keterangan) .MoveNext

Loop End With End If End Sub

Private Sub GridBarang_DblClick() Dim barisGrid As String

barisGrid = GridBarang.Row

frmTambahStok.SkinLabel7.Visible = True frmTambahStok.txtStokLama.Visible = True

If GridBarang.Rows <> 1 Then With frmTambahStok

.txtKode.Text = _

UCase(GridBarang.TextMatrix(barisGrid, 1)) .txtJenis.Text = _

UCase(GridBarang.TextMatrix(barisGrid, 2)) .txtNama.Text = _

UCase(GridBarang.TextMatrix(barisGrid, 3)) .txtHarga.Text = _

UCase(GridBarang.TextMatrix(barisGrid, 4)) .txtStokLama.Text = _

UCase(GridBarang.TextMatrix(barisGrid, 5)) .txtKeterangan.Text = _

(36)

Else Exit Sub End If

FrmUtama.Enabled = False frmTambahStok.Enabled = True Unload Me

End Sub

Private Sub TbNormal_Click() Call Form_Load

txtCari.Text = "" txtCari.SetFocus End Sub

Private Sub TbTutup_Click() FrmUtama.Enabled = False frmTambahStok.Enabled = True Unload Me

End Sub

Private Sub txtCari_Change() If Option2.Value = True Then

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 Barang.Nm_Barang LIKE '%" _

& txtCari.Text & "%' " _

& " ORDER BY Kode_Barang", _

KoneksiDB, adOpenDynamic, adLockBatchOptimistic

If Rs_Barang.BOF Then

MsgBox "Tidak menemukan nama Barang! " _ & " - " & txtCari.Text & " - dalam tabel", _ vbInformation, "Informasi"

txtCari.Text = "" txtCari.SetFocus Else

Call TampilGridData End If

ElseIf Option1.Value = True Then

Set Rs_Barang = New ADODB.Recordset Rs_Barang.Open "SELECT Barang.*, " _ & " Jenis_Barang.Nama_Jenis " _

(37)

& " Jenis_Barang.Kode_Jenis=Barang.Kode_Jenis " _ & " AND Barang.Kode_Barang LIKE '%" _

& txtCari.Text & "%' " _

& " ORDER BY Kode_Barang", _

KoneksiDB, adOpenDynamic, adLockBatchOptimistic

If Rs_Barang.BOF Then

MsgBox "Tidak menemukan kode Barang! " _ & " - " & txtCari.Text & " - dalam tabel", _ vbInformation, "Informasi"

txtCari.Text = "" txtCari.SetFocus Else

Call TampilGridData End If

End If End Sub

Form Menu Transaksi Penjualan

Option Explicit Dim Baris As Integer Dim i As Integer Dim Tanya As String Dim NoNota As String

Dim NaikHargaJual 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 FormMati

TbSimpan.Enabled = False TbCari.Enabled = False TbMasuk.Enabled = False End Sub

Sub FormKosong() txtNoNota.Text = "" txtTgl.Text = "__/__/____" txtKode.Text = ""

(38)

txtJumlah.Text = "" txtTotal.Text = "0" txtTotalHarga = "0" txtKembali.Text = "0" txtCash.Text = "0"

Baris = 1

GridPenjualan.Clear GridPenjualan.Rows = 2 Call AktifGridJual End Sub

Sub FormTransKosong() txtTotalHarga.Text = "0" txtCash.Text = ""

txtKembali.Text = "0" End Sub

Sub FormMati()

txtNoNota.Enabled = False txtTgl.Enabled = False txtKode.Enabled = False txtNama.Enabled = False txtStok.Enabled = False txtHarga.Enabled = False txtJumlah.Enabled = False txtTotal.Enabled = False txtTotalHarga.Enabled = False txtCash.Enabled = False txtKembali.Enabled = False End Sub

Sub FormHidup()

txtNoNota.Enabled = True txtTgl.Enabled = True txtKode.Enabled = True txtNama.Enabled = True txtStok.Enabled = True txtHarga.Enabled = True txtJumlah.Enabled = True txtTotal.Enabled = True txtTotalHarga.Enabled = True txtCash.Enabled = True txtKembali.Enabled = True End Sub

(39)

TbKeluar.Caption = "Keluar" TbSimpan.Enabled = False TbBaru.Enabled = True TbCari.Enabled = False TbMasuk.Enabled = False End Sub

Sub BuatNotaJual() Rs_Penjualan.Requery

Set Rs_Penjualan = New ADODB.Recordset Rs_Penjualan.Open " SELECT * FROM " _ & " Penjualan ORDER BY No_Nota ", _ KoneksiDB, adOpenDynamic, _

adLockBatchOptimistic

If Rs_Penjualan.BOF Then NoNota = "JL-00001" Exit Sub

Else

Rs_Penjualan.MoveLast

NoNota = Rs_Penjualan!No_Nota NoNota = Right(NoNota, 5) NoNota = Val(NoNota) + 1

If Len(NoNota) > 5 Then

MsgBox "Nomor nota baru melewati batas", _ vbCritical, "Error"

Exit Sub End If End If

NoNota = "JL-" & Format(NoNota, "00000") End Sub

Sub AktifGridJual() With GridPenjualan .Col = 0

.Row = 0

.Text = "KODE" .CellFontBold = True .ColWidth(0) = 1300

.AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter

.Col = 1 .Row = 0

(40)

.AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter

.Col = 2 .Row = 0

.Text = "HARGA (Rp)" .CellFontBold = True .ColWidth(2) = 1800

.AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter

.Col = 3 .Row = 0

.Text = "JUMLAH" .CellFontBold = True .ColWidth(3) = 1300

.AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter

.Col = 4 .Row = 0

.Text = "SUBTOTAL (Rp)" .CellFontBold = True .ColWidth(4) = 1800

.AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter End With

End Sub

Private Sub TbBaru_Click()

txtTgl.Text = Format(Date, "dd/MM/yyyy") Call FormHidup

Call AktifGridJual

Call BuatNotaJual

txtNoNota.Text = NoNota

TbBaru.Enabled = False TbCari.Enabled = True TbKeluar.Caption = "Batal" TbSimpan.Enabled = True TbMasuk.Enabled = True

Baris = 1 End Sub

(41)

frmJual.Enabled = False frmCariStok.Show 1 End Sub

Private Sub TbMasuk_Click() If txtKode.Text = "" Then

MsgBox "Barang masih kosong! ", _ vbOKOnly + vbCritical, "Konfirmasi" TbCari.SetFocus

ElseIf Val(txtJumlah.Text) > _ Val(txtStok.Text) Then

MsgBox "Maaf..! Stok tidak memadai .", _ vbOKOnly + vbCritical, "Konfirmasi" txtJumlah.Text = "0"

txtJumlah.SetFocus

ElseIf txtJumlah.Text = "0" _ Or txtJumlah.Text = "" Then

MsgBox "Jumlah barang masih kosong! ", _ vbOKOnly + vbCritical, "Konfirmasi" txtJumlah.SetFocus

ElseIf GridPenjualan.Rows = 1 Then

MsgBox "Belum ada barang yang akan dijual!", _ vbOKOnly + vbCritical, "Konfirmasi"

TbCari.SetFocus

ElseIf txtStok.Text = "1" Then

MsgBox "Stok barang minimum!", _ vbOKOnly + vbCritical, "Konfirmasi" Call BersihBarang

ElseIf Val(txtStok.Text) = _ Val(txtJumlah.Text) Then

MsgBox "Stok harus disisakan untuk sempel!", _ vbOKOnly + vbCritical, "Konfirmasi"

txtJumlah.Text = Val(txtJumlah.Text) - 1 TbMasuk.SetFocus

Else

With GridPenjualan .Rows = Baris + 1

.TextMatrix(Baris, 0) = txtKode.Text .TextMatrix(Baris, 1) = txtNama.Text .TextMatrix(Baris, 2) = txtHarga.Text .TextMatrix(Baris, 3) = txtJumlah.Text .TextMatrix(Baris, 4) = txtTotal.Text End With

txtTotalHarga.Text = _

Val(txtTotalHarga.Text) + Val(txtTotal.Text)

(42)

End If End Sub

Private Sub TbSimpan_Click() Dim i As Integer

If txtNoNota.Text = "" Then

MsgBox "Nomor transaksi masih kosong !", _ vbOKOnly + vbCritical, "Konfirmasi"

txtNoNota.SetFocus ElseIf Baris = 1 Then

MsgBox "Belum ada Barang yang akan dijual!", _ vbOKOnly + vbCritical, "Konfirmasi"

TbCari.SetFocus

ElseIf txtCash.Text = "" Or txtCash.Text = "0" Then MsgBox "Belum melakukan pembayaran ! ", _ vbOKOnly + vbCritical, "Konfirmasi"

txtCash.SetFocus

ElseIf Val(txtCash.Text) < _ Val(txtTotalHarga.Text) Then

MsgBox "Pembayaran masih kurang", _ vbOKOnly + vbCritical, "Konfirmasi" txtCash.SetFocus

Else

SqlInsert = ""

SqlInsert = "INSERT INTO Penjualan" _

& "(No_Nota,Tgl_Nota,Total_Bayar,UserId)" _ & "VALUES ('" & txtNoNota.Text & "','" _ & Format(Date, "yyyy-MM-dd") & "','" _ & txtTotalHarga.Text & " ','" _

& PenggunaID & "')"

KoneksiDB.Execute SqlInsert, , adCmdText Rs_Penjualan.Requery

For i = 1 To Baris - 1 SqlInsert = ""

SqlInsert = "INSERT INTO Detail_Penjualan" _ & "(No_Nota,Kode_Barang,Harga_Jual, " _ & " Jumlah_Jual,SubTotal)" _

& " VALUES ('" & txtNoNota.Text & "','" _ & GridPenjualan.TextMatrix(i, 0) & "','" _ & GridPenjualan.TextMatrix(i, 2) & "','" _ & GridPenjualan.TextMatrix(i, 3) & "','" _ & GridPenjualan.TextMatrix(i, 4) & "')" KoneksiDB.Execute SqlInsert, , adCmdText

SqlUpdate = ""

(43)

& Val(GridPenjualan.TextMatrix(i, 3)) & "" _ & " WHERE Kode_Barang='" _

& GridPenjualan.TextMatrix(i, 0) & "'" KoneksiDB.Execute SqlUpdate, , adCmdText Next i

MsgBox "Data telah tersimpan dalam database !", _ vbOKOnly + vbInformation, "Konfirmasi"

On Error Resume Next With frmCetakJual

.NoNota = txtNoNota.Text .TotHarga = txtTotalHarga.Text .UangBayar = txtCash.Text .UangKembali = txtKembali.Text .Show 1

End With

Call FormNormal Call FormTransKosong End If

End Sub

Private Sub TbKeluar_Click()

If TbKeluar.Caption = "Keluar" Then

Tanya = MsgBox("ANDA YAKIN AKAN " _ & " MENGAKHIRI APLIKASI INI..?", _ vbQuestion + vbYesNo, "Exit")

If Tanya = vbYes Then FrmUtama.Enabled = True Unload Me

Else Exit Sub End If Else

Call FormNormal End If

End Sub

Sub BersihBarang() txtKode.Text = "" txtNama.Text = "" txtHarga.Text = "0" txtStok.Text = "0" txtJumlah.Text = "" txtTotal.Text = "0" End Sub

(44)

If txtCash.Text = "" Or txtTotalHarga.Text = "" Then txtKembali.Text = "0"

Exit Sub Else

txtKembali.Text = _

Val(txtCash.Text) - Val(txtTotalHarga.Text) End If

End Sub

Private Sub txtCash_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then

TbMasuk.SetFocus

ElseIf Not (KeyAscii >= Asc("0") _ And KeyAscii <= Asc("9") _ Or KeyAscii = vbKeyBack) Then Beep

KeyAscii = 0 End If

End Sub

Private Sub txtJumlah_Change() On Error Resume Next

If txtJumlah.Text = "" Or txtHarga.Text = "" Then txtTotal.Text = "0"

Exit Sub Else

txtTotal.Text = txtJumlah.Text * txtHarga.Text End If

End Sub

Private Sub txtJumlah_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then

TbMasuk.SetFocus

ElseIf Not (KeyAscii >= Asc("0") _ And KeyAscii <= Asc("9") _ Or KeyAscii = vbKeyBack) Then Beep

KeyAscii = 0 End If

End Sub

Private Sub txtKode_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then

If Len(txtKode.Text) < 5 Then

MsgBox "KODE BARANG HARUS 5 DIGIT", _ vbCritical, "Error"

(45)

KeyAscii = 0

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 " _

& " AND Barang.Kode_Barang='" & txtKode.Text & "' ", _ KoneksiDB, adOpenDynamic, _

adLockBatchOptimistic

If Rs_StokBarang.BOF Then

MsgBox "KODE BARANG TIDAK DIKENALI ..", _ vbInformation, "Info"

Else

With Rs_StokBarang

txtStok.Text = !Stok_Barang txtNama.Text = !Nm_Barang

' Harga penjualan secara otomatis ' dinaikkan 10% dari harga satuan NaikHargaJual = _

(0.1 * Val(Rs_StokBarang!Hrg_Satuan)) txtHarga.Text = _

(Val(Rs_StokBarang!Hrg_Satuan) + NaikHargaJual) txtJumlah.SetFocus

End With End If End If End Sub

Form Menu Cari Persediaan Barang

Option Explicit

Dim NaikHargaJual 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) / 2

Call BukaDatabase Call TampilGridData End Sub

(46)

.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

.AllowUserResizing = flexResizeColumns .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

(47)

End With End Sub

Sub TampilGridData() Dim Baris As Integer

GridBarang.Clear Call AktifGridBarang

GridBarang.Rows = 2 Baris = 0

If Rs_StokBarang.BOF Then

MsgBox "Tabel Barang masih kosong!", _ vbInformation + vbOKOnly, "Informasi" Exit Sub

Else

With Rs_StokBarang .MoveFirst

Do While Not .EOF 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 .MoveNext

Loop End With End If

End Sub

Private Sub GridBarang_DblClick() Dim barisGrid As String

barisGrid = GridBarang.Row

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.Kode_Barang='" _

(48)

If GridBarang.Rows <> 1 Then With frmJual

.txtKode.Text = _

UCase(GridBarang.TextMatrix(barisGrid, 1)) .txtNama.Text = _

UCase(GridBarang.TextMatrix(barisGrid, 3)) .txtStok.Text = _

GridBarang.TextMatrix(barisGrid, 5)

' Harga penjualan secara otomatis ' dinaikkan 10% dari harga satuan NaikHargaJual = _

(0.1 * Val(Rs_StokBarang!Hrg_Satuan)) .txtHarga.Text = _

(Val(Rs_StokBarang!Hrg_Satuan) + NaikHargaJual) End With

Else Exit Sub End If

FrmUtama.Enabled = False frmJual.Enabled = True Unload Me

End Sub

Private Sub TbNormal_Click() Call Form_Load

txtCari.Text = "" txtCari.SetFocus End Sub

Private Sub TbTutup_Click() FrmUtama.Enabled = False frmJual.Enabled = True Unload Me

End Sub

Private Sub txtCari_Change() If Option2.Value = True Then

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.Nm_Barang LIKE '%" _

(49)

If Rs_StokBarang.BOF Then

MsgBox "Tidak menemukan nama Barang! " _ & " - " & txtCari.Text & " - dalam tabel", _ vbInformation, "Informasi"

txtCari.Text = "" txtCari.SetFocus Else

Call TampilGridData End If

ElseIf Option1.Value = True Then

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.Kode_Barang LIKE '%" _

& txtCari.Text & "%' ORDER BY Kode_Barang", _ KoneksiDB, adOpenDynamic, adLockBatchOptimistic

If Rs_StokBarang.BOF Then

MsgBox "Tidak menemukan kode Barang! " _ & " - " & txtCari.Text & " - dalam tabel", _ vbInformation, "Informasi"

txtCari.Text = "" txtCari.SetFocus Else

Call TampilGridData End If

End If End Sub

Form Laporan Barang Per- Jenis

Option Explicit

Dim Kd_Jenis As String

Private Sub cmbJenis_Change() Kd_Jenis = ""

' Menampilkan seluruh daya jenis barang

Set Rs_Jenis = KoneksiDB.Execute("SELECT * FROM" _ & " Jenis_Barang WHERE Nama_Jenis='" _

& CmbJenis.Text & "'")

With Rs_Jenis

(50)

If .EOF And .BOF Then Exit Sub

Else

'Jika data ada, maka akan ditampilkan On Error Resume Next

Kd_Jenis.Text = !Kode_Jenis CmbJenis.Text = !Nama_Jenis TbTampil.SetFocus

End If End With End Sub

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

'Menampilkan seluruh data berdasarkan nama jenis

Set Rs_Jenis = KoneksiDB.Execute("SELECT * FROM " _ & " Jenis_Barang ORDER BY Nama_Jenis")

With Rs_Jenis

'Memeriksa keberadaan data jenis barang If .BOF Then

Exit Sub Else

'Jika data jenisa barang, maka ditampilkan .MoveFirst

Do While Not .EOF

CmbJenis.AddItem ![Nama_Jenis] .MoveNext

Loop End If End With End Sub

Private Sub TbKeluar_Click() Unload Me

End Sub

Private Sub TbTampil_Click() Dim SQL As String

Referensi

Dokumen terkait

Menurut Panen (2001) mengungkapkan bahwa bahan ajar merupakan bahan-bahan atau materi pelajaran yang disusun secara sistematis, yang digunakan guru dan peserta didik dalam

Kegiatan melakukan evaluasi purnahuni pada panti rehabilitasi cacat netra berwawasan lingkungan perilaku memiliki maksud untuk mengetahui kinerja rancangan yang

 merencanakan kegiatan tindak lanjut dalam bentuk pembelajaran remedi, program pengayaan, layanan konseling dan/atau memberikan tugas baik tugas individual maupun kelompok

Faktor-Faktor yang Berhubungan dengan Kunjungan Ibu Balita ke Posyandu (Studi di Kelurahan Cabawan Wilayah Kerja Puskesmas Margadana Kota Tegal Tahun 2011).. VI +

Dari hasil pengamatan penulis saat melakukan praktek keperawatan diberbagai rumah sakit, sebagian besar pasien dengan tindakan pembedahan mengakibatkan

Kesimpulan : informasi merupakan hasil dari pengolahan data menjadi bentuk yang lebih berguna bagi yang.. menerimanya dan dapat digunakan sebagai alat bantu untuk pengambilan

Setelah diberikan contoh melakukan teknik shooting yang benar seta dengan menggunakan metode pembelajaran kooperatif tipe TGT kemampuan siswa dalam melakukan

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Multirate