Program Aplikasi Stok Barang Plus Report
Program Aplikasi Stok Barang Plus Report
2.
3.
4.
5.
6.
7.
Setelah pembuatan database dan tabel menggunakan Microsoft Access selesai, selanjutnya ikuti
langkah-langkah berikut ini :
1. Aktifkan Microsoft Visual Basic 6.0
2. Kemudian klik Project References untuk menambahkan Reference Microsoft ActiveX Data Objects
2.0 Library.
3.
Pilih Microsoft ActiveX Data Objects 2.0 Library pada kotak dialog References
4.
Tambahkan Module untuk menuliskan deklarasi variabel global dan procedure untuk koneksi database
5.
Option
Public
Public
Public
Public
Public
Explicit
KonekDB As ADODB.Connection
Rs_Barang As New ADODB.Recordset
Rs_Supplier As New ADODB.Recordset
Rs_Beli As New ADODB.Recordset
Rs_Keluar As New ADODB.Recordset
'Deklarasi Variabel
Public strKonekDB As String
Public SQL As String
Public Sub BukaDatabase()
Set KonekDB = New ADODB.Connection
strKonekDB = "Provider=Microsoft.Jet.OLEDB.4.0;Persist
Source=" & App.Path + "\database.mdb"
Security
Info=False;Data
6.
7.
Gagal,
Silakan
Periksa
Kembali..!!",
vbOKOnly
8.
Rancanglah form Data Barang dengan menambahkan 4 Label, 3 TextBox, 1 ComboBox, 1 Frame, 4
CommandButton dan 1 MsFlexGrid seperti contoh berikut ini:
9.
Kemudian atur properti masing-masing objek seperti tertera pada tabel berikut ini :
Nama Objek
Properti
Nilai Pengaturan
Form1
Name
frmBarang
Caption
Data Barang
Label1
Caption
Kode Barang
Label2
Caption
Nama Barang
Label3
Caption
Satuan
Label4
Caption
Stok
Text1
Name
txtKode
Text
(Kosongkan)
Text2
Name
txtNama
Text
(Kosongkan)
Text3
Name
txtStok
Text
(Kosongkan)
Combo1
Name
cbSatuan
Text
Kosongkan
Frame1
Caption
Proses
Command1
Name
cmdInput
Caption
&Input
Command2
Name
cmdEdit
Caption
&Edit
Command3
Name
cmdHapus
Caption
&Hapus
Command4
Name
cmdTutup
Caption
&Tutup
MsFlexGrid1
Name
GridData
Else
SQL = ""
SQL = "SELECT * FROM Barang WHERE Kode_Brg = '" & txtKode.Text & "'"
Set Rs_Barang = New ADODB.Recordset
Rs_Barang.Open SQL, KonekDB, adOpenDynamic, adLockOptimistic
If Not Rs_Barang.BOF Then
With Rs_Barang
.Fields!Kode_Brg = Trim(txtKode.Text)
.Fields!Nama_Brg = Trim(txtNama.Text)
.Fields!Satuan = Trim(cbSatuan.Text)
.Fields!Stok = Trim(txtStok.Text)
.Update
End With
Rs_Barang.Requery
Call Kosong
Call NonAktif
Call TampilGrid
MsgBox "Data berhasil diedit", vbOKOnly + vbInformation, "Informasi"
Else
MsgBox "Data gagal diedit", vbOKOnly + vbInformation, "Informasi"
End If
End If
End If
End Sub
Private Sub cmdHapus_Click()
If MsgBox("Apakah Anda yakin mau menghapus data ini?", vbYesNo + vbQuestion,
"Konfirmasi") = vbYes Then
SQL = "DELETE FROM Barang WHERE Kode_Brg='" & txtKode.Text & "'"
KonekDB.Execute SQL, , adCmdText
Rs_Barang.Requery
Call Kosong
Call NonAktif
Call TampilGrid
MsgBox "Data berhasil dihapus", vbOKOnly + vbInformation, "Informasi"
End If
End Sub
Private Sub cmdInput_Click()
If cmdInput.Caption = "&Input" Then
Call Aktif
cmdInput.Caption = "&Simpan"
cmdTutup.Caption = "&Batal"
txtKode.SetFocus
Else
If txtKode.Text = "" Then
MsgBox "Kode Barang tidak boleh kosong!", vbInformation + vbOKOnly,
"Informasi"
txtKode.SetFocus
ElseIf txtNama.Text = "" Then
MsgBox "Nama Barang tidak boleh kosong!", vbInformation + vbOKOnly,
"Informasi"
txtNama.SetFocus
ElseIf cbSatuan.Text = "" Then
MsgBox "Satuan tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi"
cbSatuan.SetFocus
ElseIf txtStok.Text = "" Then
MsgBox "Stok tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi"
txtStok.SetFocus
ElseIf Not IsNumeric(txtStok.Text) Then
MsgBox "Stok harus diisi dengan tipe number!", vbInformation + vbOKOnly,
"Informasi"
txtStok.Text = ""
txtStok.SetFocus
Else
SQL = ""
SQL = "SELECT * FROM Barang WHERE Kode_Brg = '" & txtKode.Text & "'"
Set Rs_Barang = New ADODB.Recordset
Rs_Barang.Open SQL, KonekDB, adOpenDynamic, adLockOptimistic
If Rs_Barang.BOF Then
With Rs_Barang
.AddNew
.Fields!Kode_Brg = Trim(txtKode.Text)
.Fields!Nama_Brg = Trim(txtNama.Text)
.Fields!Satuan = Trim(cbSatuan.Text)
.Fields!Stok = Trim(txtStok.Text)
.Update
End With
Rs_Barang.Requery
Call Kosong
Call NonAktif
Call TampilGrid
MsgBox "Data berhasil tersimpan", vbOKOnly + vbInformation, "Informasi"
Else
form
ini?",
vbYesNo
vbQuestion,
Sub TampilGrid()
Dim baris As Integer
GridData.Clear
Call AktifGrid
GridData.Rows = 2
baris = 0
Set Rs_Barang = New ADODB.Recordset
Rs_Barang.Open "SELECT * FROM Barang", KonekDB, adOpenDynamic, adLockOptimistic
If Rs_Barang.BOF Then
Exit Sub
Else
With Rs_Barang
.MoveFirst
Do While Not .EOF
On Error Resume Next
baris = baris + 1
GridData.Rows = baris + 1
GridData.TextMatrix(baris, 0) = baris
GridData.TextMatrix(baris, 1) = !Kode_Brg
GridData.TextMatrix(baris, 2) = !Nama_Brg
GridData.TextMatrix(baris, 3) = !Satuan
GridData.TextMatrix(baris, 4) = !Stok
.MoveNext
Loop
End With
End If
End Sub
Private Sub GridData_DblClick()
GridBaris = GridData.Row
Set Rs_Barang = New ADODB.Recordset
Rs_Barang.Open
"SELECT
*
FROM
Barang
WHERE
Kode_Brg='"
GridData.TextMatrix(GridBaris, 1) & "'", KonekDB, adOpenDynamic, adLockOptimistic
&
If Rs_Barang.BOF Then
MsgBox "TABEL MASIH KOSONG!", vbOKOnly + vbInformation, "Error"
Exit Sub
Else
Rs_Barang.MoveFirst
Do While Not Rs_Barang.EOF
On Error Resume Next
txtKode.Text = Rs_Barang!Kode_Brg
txtNama.Text = Rs_Barang!Nama_Brg
cbSatuan.Text = Rs_Barang!Satuan
txtStok.Text = Rs_Barang!Stok
Rs_Barang.MoveNext
Loop
cmdEdit.Enabled = True
cmdHapus.Enabled = True
cmdTutup.Caption = "&Batal"
cmdInput.Caption = "&Input"
cmdInput.Enabled = False
Call Aktif
txtKode.Enabled = False
txtNama.SetFocus
End If
End Sub
13. Tambahkan form baru dan rancanglah form Data Supplier dengan menambahkan 5 Label, 5 TextBox,
1 Frame, 4 CommandButton dan 1 MsFlexGrid seperti contoh berikut ini:
14. Atur properti masing-masing objek seperti tertera pada tabel berikut ini :
Nama Objek
Properti
Nilai Pengaturan
Form1
Name
frmSupplier
Caption
Data Supplier
Label1
Caption
Kode Supplier
Label2
Caption
Nama Supplier
Label3
Caption
Alamat
Label4
Caption
Kota
Label5
Caption
Telepon
Text1
Name
txtKode
Text
(Kosongkan)
Text2
Name
txtNama
Text
(Kosongkan)
Text3
Name
txtAlamat
Text
(Kosongkan)
Text4
Name
txtKota
Text
(Kosongkan)
Text5
Name
txtTelepon
Text
(Kosongkan)
Frame1
Caption
Proses
Command1
Name
cmdInput
Caption
&Input
Command2
Name
cmdEdit
Caption
&Edit
Command3
Name
cmdHapus
Caption
&Hapus
Command4
Name
cmdTutup
Caption
&Tutup
MsFlexGrid1
Name
GridData
10
Else
SQL = ""
SQL = "SELECT * FROM Supplier WHERE Kode_Supp = '" & txtKode.Text & "'"
Set Rs_Supplier = New ADODB.Recordset
Rs_Supplier.Open SQL, KonekDB, adOpenDynamic, adLockOptimistic
If Not Rs_Supplier.BOF Then
With Rs_Supplier
.Fields!Kode_Supp = Trim(txtKode.Text)
.Fields!Nama_Supp = Trim(txtNama.Text)
.Fields!Alamat = Trim(txtAlamat.Text)
.Fields!Kota = Trim(txtKota.Text)
.Fields!Telepon = Trim(txtTelepon.Text)
.Update
End With
Rs_Supplier.Requery
Call Kosong
Call NonAktif
Call TampilGrid
MsgBox "Data berhasil diedit", vbOKOnly + vbInformation, "Informasi"
Else
MsgBox "Data gagal diedit", vbOKOnly + vbInformation, "Informasi"
End If
End If
End If
End Sub
Private Sub cmdHapus_Click()
If MsgBox("Apakah Anda yakin mau menghapus data ini?", vbYesNo + vbQuestion,
"Konfirmasi") = vbYes Then
SQL = "DELETE FROM Supplier WHERE Kode_Supp='" & txtKode.Text & "'"
KonekDB.Execute SQL, , adCmdText
Rs_Supplier.Requery
Call Kosong
Call NonAktif
Call TampilGrid
MsgBox "Data berhasil dihapus", vbOKOnly + vbInformation, "Informasi"
End If
End Sub
Private Sub cmdInput_Click()
If cmdInput.Caption = "&Input" Then
Call Aktif
cmdInput.Caption = "&Simpan"
cmdTutup.Caption = "&Batal"
txtKode.SetFocus
Else
If txtKode.Text = "" Then
MsgBox "Kode Supplier tidak boleh kosong!", vbInformation + vbOKOnly,
"Informasi"
txtKode.SetFocus
ElseIf txtNama.Text = "" Then
MsgBox "Nama Supplier tidak boleh kosong!", vbInformation + vbOKOnly,
"Informasi"
txtNama.SetFocus
ElseIf txtAlamat.Text = "" Then
MsgBox "Alamat tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi"
txtAlamat.SetFocus
ElseIf txtKota.Text = "" Then
MsgBox "Kota tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi"
txtKota.SetFocus
ElseIf txtTelepon.Text = "" Then
MsgBox "No. Telepon tidak boleh kosong!", vbInformation + vbOKOnly,
"Informasi"
txtTelepon.SetFocus
ElseIf Not IsNumeric(txtTelepon.Text) Then
MsgBox "No. Telepon harus diisi dengan tipe Number!", vbInformation +
vbOKOnly, "Informasi"
txtTelepon.Text = ""
txtTelepon.SetFocus
Else
SQL = ""
SQL = "SELECT * FROM Supplier WHERE Kode_Supp = '" & txtKode.Text & "'"
Set Rs_Supplier = New ADODB.Recordset
Rs_Supplier.Open SQL, KonekDB, adOpenDynamic, adLockOptimistic
If Rs_Supplier.BOF Then
With Rs_Supplier
.AddNew
.Fields!Kode_Supp = Trim(txtKode.Text)
11
.Fields!Nama_Supp = Trim(txtNama.Text)
.Fields!Alamat = Trim(txtAlamat.Text)
.Fields!Kota = Trim(txtKota.Text)
.Fields!Telepon = Trim(txtTelepon.Text)
.Update
End With
Rs_Supplier.Requery
Call Kosong
Call NonAktif
Call TampilGrid
MsgBox "Data berhasil tersimpan", vbOKOnly + vbInformation, "Informasi"
Else
form
ini?",
vbYesNo
vbQuestion,
12
.CellAlignment = flexAlignCenterCenter
.Col = 5
.Row = 0
.Text = "Telepon"
.CellFontBold = True
.ColWidth(5) = 1500
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
End With
End Sub
Sub TampilGrid()
Dim baris As Integer
GridData.Clear
Call AktifGrid
GridData.Rows = 2
baris = 0
Set Rs_Supplier = New ADODB.Recordset
Rs_Supplier.Open "SELECT * FROM Supplier", KonekDB, adOpenDynamic, adLockOptimistic
If Rs_Supplier.BOF Then
Exit Sub
Else
With Rs_Supplier
.MoveFirst
Do While Not .EOF
On Error Resume Next
baris = baris + 1
GridData.Rows = baris + 1
GridData.TextMatrix(baris, 0) = baris
GridData.TextMatrix(baris, 1) = !Kode_Supp
GridData.TextMatrix(baris, 2) = !Nama_Supp
GridData.TextMatrix(baris, 3) = !Alamat
GridData.TextMatrix(baris, 4) = !Kota
GridData.TextMatrix(baris, 5) = !Telepon
.MoveNext
Loop
End With
End If
End Sub
Private Sub GridData_DblClick()
GridBaris = GridData.Row
Set Rs_Supplier = New ADODB.Recordset
Rs_Supplier.Open
"
SELECT
*
FROM
Supplier
WHERE
Kode_Supp='"
GridData.TextMatrix(GridBaris, 1) & "'", KonekDB, adOpenDynamic, adLockOptimistic
&
If Rs_Supplier.BOF Then
MsgBox "TABEL MASIH KOSONG!", vbOKOnly + vbInformation, "Error"
Exit Sub
Else
Rs_Supplier.MoveFirst
Do While Not Rs_Supplier.EOF
On Error Resume Next
txtKode.Text = Rs_Supplier!Kode_Supp
txtNama.Text = Rs_Supplier!Nama_Supp
txtAlamat.Text = Rs_Supplier!Alamat
txtKota.Text = Rs_Supplier!Kota
txtTelepon.Text = Rs_Supplier!Telepon
Rs_Supplier.MoveNext
Loop
cmdEdit.Enabled = True
cmdHapus.Enabled = True
cmdTutup.Caption = "&Batal"
cmdInput.Caption = "&Input"
cmdInput.Enabled = False
Call Aktif
txtKode.Enabled = False
txtNama.SetFocus
End If
End Sub
13
19. Kemudian tambahkan form baru dan rancanglah form Data Pembelian dengan menambahkan 8 Label,
7 TextBox, 1 DTPicker, 1 Frame, 6 CommandButton seperti contoh berikut ini :
20. Atur properti masing-masing objek seperti tertera pada tabel berikut ini :
Nama Objek
Properti
Nilai Pengaturan
Form1
Name
frmPembelian
Caption
Data Pembelian
Label1
Caption
No. Faktur
Label2
Caption
Tanggal
Label3
Caption
Kode Supplier
Label4
Caption
Nama Supplier
Label5
Alignment
Center
BackColor
(Pilih Warna)
Caption
Kode Barang
Label6
Alignment
Center
BackColor
(Pilih Warna)
Caption
Nama Barang
14
Label7
Alignment
Center
BackColor
(Pilih Warna)
Caption
Jumlah
Label8
Caption
Total
Text1
Name
txtNoFak
Text
Kosongkan
Text2
Name
txtKdSupp
Text
Kosongkan
Text3
Name
txtNmSupp
Text
Kosongkan
Text4
Name
txtKdBrg
Text
Kosongkan
Text5
Name
txtNmBrg
Text
Kosongkan
Text6
Name
txtJumlah
Text
Kosongkan
Text7
Name
txtTotal
Text
Kosongkan
DTPicker1
Name
dtTanggal
Frame1
Caption
Proses
Command1
Name
cmdCariSupp
Caption
...
Command2
Name
cmdCariBrg
Caption
...
Command3
Name
cmdOK
Caption
&OK
Command4
Name
cmdSimpan
Caption
&Simpan
Command5
Name
cmdBatal
Caption
&Batal
Command6
Name
cmdTutup
Caption
&Tutup
MsFlexGrid1
Name
GridData
21. Sehingga tampilan akhirnya menjadi seperti berikut ini :
15
16
.Col = 1
.Row = 0
.Text = "Nama Barang"
.CellFontBold = True
.ColWidth(1) = 4000
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 2
.Row = 0
.Text = "Jumlah"
.CellFontBold = True
.ColWidth(2) = 1000
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
End With
End Sub
Private Sub cmdSimpan_Click()
If baris <> 1 Then
If txtNoFak = "" Then
MsgBox "No. Faktur tidak boleh kosong!", vbOKOnly + vbInformation, "Informasi"
txtNoFak.SetFocus
ElseIf txtKdSupp = "" Then
MsgBox "Kode Supplier tidak boleh kosong!", vbOKOnly + vbInformation,
"Informasi"
txtKdSupp.SetFocus
Else
'Proses penyimpanan ke Pembelian
SQL = ""
SQL
=
"INSERT
INTO
Pembelian(No_Faktur,Tanggal,Kode_Supp,Nama_Supp,Total)
VALUES('" & txtNoFak.Text & "','" & dtTanggal.Value & "','" & txtKdSupp.Text & "','" &
txtNmSupp.Text & "','" & txtTotal.Text & "')"
KonekDB.Execute SQL, , adCmdText
'Proses penyimpanan ke Detail_Beli
For i = 1 To baris - 1
SQL = ""
SQL = "INSERT INTO Detail_Beli(No_Faktur,Kode_Brg,Nama_Brg,Jumlah) VALUES('"
& txtNoFak.Text & "','" & GridData.TextMatrix(i, 0) & "','" & GridData.TextMatrix(i, 1)
& "','" & GridData.TextMatrix(i, 2) & "')"
KonekDB.Execute SQL, , adCmdText
Dim StokBaru As Integer
Dim Kode As String
StokBaru = Val(GridData.TextMatrix(i, 2))
Kode = GridData.TextMatrix(i, 0)
Else
SQL = ""
SQL = "UPDATE Barang SET Stok=Stok + " & StokBaru & " WHERE Kode_Brg='" &
MsgBox "Maaf!
"Informasi"
End If
End Sub
Data
pembelian
barang
masih
kosong.",
vbOKOnly
vbInformation,
17
25. Atur properti masing-masing seperti tertera pada tabel berikut ini :
Nama Objek
Properti
Nilai Pengaturan
Form1
Name
frmCariSupplier
Caption
Pencarian
Frame1
Caption
Kata Kunci
Text1
Name
txtCari
Text
(Kosongkan)
Command1
Name
cmdTutup
Caption
&Tutup
MsFlexGrid1
Name
GridData
18
19
.Col = 5
.Row = 0
.Text = "Telepon"
.CellFontBold = True
.ColWidth(5) = 1800
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
End With
End Sub
Sub TampilGridData()
Dim baris As Byte
GridData.Clear
Call AktifGridData
GridData.Rows = 2
baris = 0
If Rs_Supplier.BOF Then
MsgBox "Data Supplier Masih Kosong..", vbInformation + vbOKOnly, "Informasi"
Exit Sub
Else
With Rs_Supplier
.MoveFirst
Do While Not .EOF
baris = baris + 1
GridData.Rows = baris + 1
GridData.TextMatrix(baris, 0) = baris
GridData.TextMatrix(baris, 1) = !Kode_Supp
GridData.TextMatrix(baris, 2) = !Nama_Supp
GridData.TextMatrix(baris, 3) = !Alamat
GridData.TextMatrix(baris, 4) = !Kota
GridData.TextMatrix(baris, 5) = !Telepon
.MoveNext
Loop
End With
End If
End Sub
Private Sub GridData_DblClick()
Dim b As Byte
b = GridData.Row
If GridData.Rows <> 1 Then
With frmPembelian
.txtKdSupp.Text = GridData.TextMatrix(b, 1)
.txtNmSupp.Text = GridData.TextMatrix(b, 2)
.txtKdBrg.SetFocus
End With
Else
Exit Sub
End If
Unload Me
End Sub
Private Sub txtCari_Change()
If txtCari.Text <> Empty Then
Set Rs_Supplier = New ADODB.Recordset
Rs_Supplier.Open "SELECT * FROM Supplier WHERE Kode_Supp LIKE '%" & txtCari.Text
&
"%'
OR
Nama_Supp
LIKE'%"
&
txtCari.Text
&
"%'",
KonekDB,
adOpenDynamic,
adLockBatchOptimistic
If Rs_Supplier.BOF Then
MsgBox "Data Yang Anda Cari Tidak Ditemukan..!", vbInformation + vbOKOnly,
"Informasi"
txtCari.Text = ""
txtCari.SetFocus
Else
Call TampilGridData
End If
End If
End Sub
20
29. Tambahkan form baru dan rancanglah form Pencarian Barang dengan menambahkan 1 Frame, 1
TextBox, 1 CommandButton dan 1 MsFlexGrid seperti contoh berikut ini :
30. Atur properti masing-masing seperti tertera pada tabel berikut ini :
Nama Objek
Properti
Nilai Pengaturan
Form1
Name
frmCariBarang
Caption
Pencarian
Frame1
Caption
Kata Kunci
Text1
Name
txtCari
Text
(Kosongkan)
Command1
Name
cmdTutup
Caption
&Tutup
MsFlexGrid1
Name
GridData
31. Sehingga tampilan akhirnya menjadi seperti berikut ini :
21
.Col = 1
.Row = 0
.Text = "Kode Barang"
.CellFontBold = True
.ColWidth(1) = 2000
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 2
.Row = 0
.Text = "Nama Barang"
.CellFontBold = True
.ColWidth(2) = 2000
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 3
.Row = 0
.Text = "Stok"
.CellFontBold = True
.ColWidth(3) = 1500
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
End With
End Sub
Sub TampilGridData()
Dim baris As Byte
GridData.Clear
Call AktifGridData
GridData.Rows = 2
baris = 0
If Rs_Barang.BOF Then
MsgBox "Data Barang Masih Kosong..", vbInformation + vbOKOnly, "Informasi"
Exit Sub
Else
With Rs_Barang
.MoveFirst
Do While Not .EOF
baris = baris + 1
GridData.Rows = baris + 1
GridData.TextMatrix(baris, 0) = baris
GridData.TextMatrix(baris, 1) = !Kode_Brg
GridData.TextMatrix(baris, 2) = !Nama_Brg
GridData.TextMatrix(baris, 3) = !Stok
.MoveNext
Loop
End With
End If
End Sub
Private Sub GridData_DblClick()
Dim b As Byte
b = GridData.Row
If GridData.Rows <> 1 Then
With frmPembelian
.txtKdBrg.Text = GridData.TextMatrix(b, 1)
.txtNmBrg.Text = GridData.TextMatrix(b, 2)
.txtJumlah.SetFocus
End With
Else
Exit Sub
End If
Unload Me
End Sub
Private Sub txtCari_Change()
If txtCari.Text = Empty Then
'
Else
Set Rs_Barang = New ADODB.Recordset
Rs_Barang.Open "SELECT * FROM Barang WHERE Kode_Brg LIKE '%" & txtCari.Text &
"%'
OR
Nama_Brg
LIKE'%"
&
txtCari.Text
&
"%'",
KonekDB,
adOpenDynamic,
adLockBatchOptimistic
22
If Rs_Barang.BOF Then
MsgBox "Data Yang Anda Cari Tidak Ditemukan..!", vbInformation + vbOKOnly,
"Informasi"
txtCari.Text = ""
txtCari.SetFocus
Else
Call TampilGridData
End If
End If
End Sub
35. Aturlah properti masing-masing objek seperti tertera pada tabel berikut ini :
Nama Objek
Properti
Nilai Pengaturan
Form1
Name
frmPengeluaran
Caption
Data Pengeluaran
Label1
Caption
No. Keluar
Label2
Caption
Tanggal
Label3
Alignment
Center
BackColor
(Pilih Warna)
Caption
Kode Barang
Label4
Alignment
Center
BackColor
(Pilih Warna)
Caption
Nama Barang
Label5
Alignment
Center
BackColor
(Pilih Warna)
Caption
Stok
Label6
Alignment
Center
BackColor
(Pilih Warna)
Caption
Qty Minta
Label7
Caption
Total Minta
Text1
Name
txtNo
Text
Kosongkan
Text2
Name
txtKdBrg
Text
Kosongkan
Text3
Name
txtNmBrg
Text
Kosongkan
Text4
Name
txtStok
Text
Kosongkan
Text5
Name
txtJumlah
Text
Kosongkan
23
Text6
DTPicker1
Frame1
Command1
Command2
Command3
Command4
Command5
MsFlexGrid1
Name
Text
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
txtTotal
Kosongkan
dtTanggal
Proses
cmdCariBrg
...
cmdOK
&OK
cmdSimpan
&Simpan
cmdBatal
&Batal
cmdTutup
&Tutup
GridData
24
25
SQL = ""
SQL = "UPDATE Barang SET Stok=Stok - " & JumKeluar & " WHERE Kode_Brg='" &
26
39. Tambahkan form baru dan rancanglah form Pencarian Barang dengan menambahkan 1 Frame, 1
TextBox, 1 CommandButton dan 1 MsFlexGrid seperti contoh berikut ini :
40. Atur properti masing-masing seperti tertera pada tabel berikut ini :
Nama Objek
Properti
Nilai Pengaturan
Form1
Name
frmCariBarang2
Caption
Pencarian
Frame1
Caption
Kata Kunci
Text1
Name
txtCari
Text
(Kosongkan)
Command1
Name
cmdTutup
Caption
&Tutup
MsFlexGrid1
Name
GridData
41. Sehingga tampilan akhirnya menjadi seperti berikut ini :
27
.Col = 1
.Row = 0
.Text = "Kode Barang"
.CellFontBold = True
.ColWidth(1) = 2000
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 2
.Row = 0
.Text = "Nama Barang"
.CellFontBold = True
.ColWidth(2) = 2000
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 3
.Row = 0
.Text = "Stok"
.CellFontBold = True
.ColWidth(3) = 1500
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
End With
End Sub
Sub TampilGridData()
Dim baris As Byte
GridData.Clear
Call AktifGridData
GridData.Rows = 2
baris = 0
If Rs_Barang.BOF Then
MsgBox "Data Barang Masih Kosong..", vbInformation + vbOKOnly, "Informasi"
Exit Sub
Else
With Rs_Barang
.MoveFirst
Do While Not .EOF
baris = baris + 1
GridData.Rows = baris + 1
GridData.TextMatrix(baris, 0) = baris
GridData.TextMatrix(baris, 1) = !Kode_Brg
GridData.TextMatrix(baris, 2) = !Nama_Brg
GridData.TextMatrix(baris, 3) = !Stok
.MoveNext
Loop
End With
End If
End Sub
Private Sub GridData_DblClick()
Dim b As Byte
b = GridData.Row
If GridData.Rows <> 1 Then
With frmPengeluaran
.txtKdBrg.Text = GridData.TextMatrix(b, 1)
.txtNmBrg.Text = GridData.TextMatrix(b, 2)
.txtStok.Text = GridData.TextMatrix(b, 3)
.txtJumlah.SetFocus
End With
Else
Exit Sub
End If
Unload Me
End Sub
Private Sub txtCari_Change()
If txtCari.Text = Empty Then
'
Else
Set Rs_Barang = New ADODB.Recordset
Rs_Barang.Open "SELECT * FROM Barang WHERE Kode_Brg LIKE '%" & txtCari.Text &
"%'
OR
Nama_Brg
LIKE'%"
&
txtCari.Text
&
"%'",
KonekDB,
adOpenDynamic,
adLockBatchOptimistic
28
If Rs_Barang.BOF Then
MsgBox "Data Yang Anda Cari Tidak Ditemukan..!", vbInformation + vbOKOnly,
"Informasi"
txtCari.Text = ""
txtCari.SetFocus
Else
Call TampilGridData
End If
End If
End Sub
45. Aturlah properti masing-masing objek seperti tertera pada tabel berikut ini :
Nama Objek
Properti
Nilai Pengaturan
Form1
Name
frmLogin
Caption
Login
Label1
Caption
Username
Label2
Caption
Password
Text1
Name
txtUser
Text
(Kosongkan)
Text2
Name
txtPassword
PasswordChar *
Text
(Kosongkan)
Command1
Name
cmdOK
Caption
&OK
Command1
Name
cmdBatal
Caption
&Batal
46. Sehingga tampilan akhirnya menjadi seperti berikut ini :
db As ADODB.Connection
rs As ADODB.Recordset
SQL As String
salah As Byte
Sub koneksi()
Set db = New ADODB.Connection
Set rs = New ADODB.Recordset
db.Open
"Provider=Microsoft.Jet.OLEDB.4.0;Data
"\database.mdb;Persist Security Info=False"
End Sub
Source="
&
App.Path
&
29
30
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Barang
mnuLapBarang
Supplier
mnuLapSupplier
mnuGaris2
Pembelian
mnuLapBeli
Pengeluaran
mnuLapKeluar
Keterangan : Untuk membuat sub menu seperti Data Barang yaitu dengan klik ikon panah arah ke
kanan (
)
50. Tambahkan kode program seperti contoh berikut ini :
Private Sub Form_Unload(Cancel As Integer)
If MsgBox("Apakah Anda yakin mau keluar dari aplikasi ini???", vbYesNo + vbQuestion,
"Konfirmasi") = vbYes Then
End
Else
Cancel = 1
End If
End Sub
Private Sub mnuBarang_Click()
frmBarang.Show
End Sub
Private Sub mnuKeluar_Click()
If MsgBox("Apakah Anda yakin mau keluar dari aplikasi ini???", vbYesNo + vbQuestion,
"Konfirmasi") = vbYes Then
End
End If
End Sub
Private Sub mnuLapBarang_Click()
lapBarang.Refresh
lapBarang.Show
End Sub
Private Sub mnuLapBeli_Click()
frmLapBeli.Show
End Sub
Private Sub mnuLapKeluar_Click()
frmLapKeluar.Show
End Sub
31
53. Aturlah properti masing-masing objek seperti tertera pada tabel berikut ini :
Nama Objek
Properti
Nilai Pengaturan
Form1
Name
frmLapBeli
Caption
Laporan
Label1
Alignment
2 - Center
Caption
Laporan Pembelian Barang
Font (Size)
14
Frame1
Caption
Kategori
Option1
Name
opt1
Caption
No. Faktur
Tab Index
1
Option2
Name
opt2
Caption
Tanggal
Tab Index
2
Option3
Name
opt3
Caption
Per Periode
Tab Index
3
Option4
Name
opt4
Caption
Seluruh
Tab Index
0
Combo1
Name
cbNo
Text
(Kosongkan)
DTPicker1
Name
dtTanggal
DTPicker2
Name
dtAwal
DTPicker3
Name
dtAkhir
Command1
Name
cmdTampilkan
Caption
Tampilkan
32
Command2
Name
cmdTutup
Caption
Tutup
54. Sehingga tampilan akhirnya menjadi seperti berikut ini :
FROM
Pembelian
ORDER
BY
No_Faktur",
KonekDB,
cbNo.Clear
Do While Not Rs1.EOF
cbNo.AddItem Rs1!No_Faktur
Rs1.MoveNext
Loop
End Sub
Private Sub Lap_PembelianNo()
If cbNo = "" Then
MsgBox "Pilihan No. Faktur tidak boleh kosong..!!", vbOKOnly + vbInformation,
"Informasi"
cbNo.SetFocus
Else
DELaporan.rsPembelian.Filter = "No_Faktur='" & cbNo.Text & "'"
LapBeli.Refresh
LapBeli.Show
End If
End Sub
Private Sub Lap_PembelianTanggal()
DELaporan.rsPembelian.Filter = "Tanggal='" & dtTanggal.Value & "'"
LapBeli.Refresh
LapBeli.Show
End Sub
Private Sub Lap_PembelianPeriode()
If dtAwal > dtAkhir Then
MsgBox "Tanggal Awal lebih besar dari Tanggal Akhir..!!", vbOKOnly +
vbInformation, "Informasi"
dtAwal.SetFocus
Else
DELaporan.rsPembelian.Filter = "Tanggal>='" & dtAwal.Value & "' AND Tanggal<='"
& dtAkhir.Value & "'"
LapBeli.Refresh
LapBeli.Show
33
End If
End Sub
Private Sub LapPembelianAll()
DELaporan.rsPembelian.Filter = ""
LapBeli.Refresh
LapBeli.Show
End Sub
Private Sub cmdTampil_Click()
If opt1 Then
'menampilkan laporan per No. Faktur
Lap_PembelianNo
ElseIf opt2 Then
'menampilkan laporan per Tanggal
Lap_PembelianTanggal
ElseIf opt3 Then
'menampilkan laporan per Periode
Lap_PembelianPeriode
Else
'menampilkan laporan seluruh data
NonAktif
LapPembelianAll
End If
End Sub
Private Sub cmdTutup_Click()
Unload Me
End Sub
Private Sub Form_Load()
BukaDatabase
NonAktif
End Sub
Private Sub opt1_Click()
NonAktif
cbNo.Enabled = True
cbNo.SetFocus
End Sub
Private Sub opt2_Click()
NonAktif
dtTanggal.Enabled = True
dtTanggal.SetFocus
End Sub
Private Sub opt3_Click()
NonAktif
dtAwal.Enabled = True
dtAkhir.Enabled = True
dtAwal.SetFocus
End Sub
Private Sub opt4_Click()
NonAktif
End Sub
34
FROM
Pengeluaran
ORDER
BY
No_Keluar",
KonekDB,
cbNo.Clear
Do While Not Rs1.EOF
cbNo.AddItem Rs1!No_Keluar
Rs1.MoveNext
Loop
End Sub
Private Sub Lap_PengeluaranNo()
If cbNo = "" Then
MsgBox "Pilihan No. Keluar tidak boleh kosong..!!", vbOKOnly + vbInformation,
"Informasi"
cbNo.SetFocus
Else
DELaporan.rsPengeluaran.Filter = "No_Keluar='" & cbNo.Text & "'"
LapKeluar.Refresh
LapKeluar.Show
End If
End Sub
Private Sub Lap_PengeluaranTanggal()
DELaporan.rsPengeluaran.Filter = "Tanggal='" & dtTanggal.Value & "'"
LapKeluar.Refresh
LapKeluar.Show
End Sub
Private Sub Lap_PengeluaranPeriode()
If dtAwal > dtAkhir Then
MsgBox "Tanggal Awal lebih
vbInformation, "Informasi"
dtAwal.SetFocus
Else
DELaporan.rsPengeluaran.Filter
Tanggal<='" & dtAkhir.Value & "'"
LapKeluar.Refresh
LapKeluar.Show
End If
End Sub
besar
dari
Tanggal
"Tanggal>='"
&
Akhir..!!",
dtAwal.Value
vbOKOnly
&
"'
AND
35
36
Langkah selanjutnya adalah membuat laporan menggunakan Data Report dengan cara sebagai
berikut :
1. Klik Project More ActiveX Designers Data Environment
2.
3.
4.
Atur properti name DataEnvironment1 menjadi DELaporan dan Connection1 menjadi Conn
Selanjutnya klik kanan pada Conn kemudian klik Properties
37
5.
6.
Pilih database yang akan dikoneksikan dengan cara klik tombol browse dan pilih database.mdb atau
dengan mengetik nama database yaitu database.mdb pada bagian Select or enter a database name.
Tetapi dengan catatan penyimpanan database.mdb harus satu folder/direktori dengan project VB yang
kita buat.
38
7.
Untuk memastikan koneksi, Anda bisa menekan tombol Test Connection. Jika ada pesan sukses,
berarti kita sukses untuk membuat koneksi ke database. Selanjutnya klik OK
Sebelum dilanjutkan, kita buka file database.mdb pada program aplikasi Microsoft Access 2007
untuk menambahkan 2 buah query yang digunakan untuk laporan Pembelian dan laporan Pengeluaran
dengan langkah-langkah berikut ini :
1. Buka file database.mdb
2. Klik tombol Create, kemudian klik Query Design pada Ribbon
3.
Pilih tabel Pembelian dan Detail_Beli kemudian klik Add lalu klik Close
4.
Tambahkan field No_Faktur, Tanggal dan Nama_Supp dari tabel Pembelian dengan cara double klik
pada masing-masing nama field
39
5.
6.
Tambahkan pula field Kode_Brg, Nama_Brg dan Jumlah dari tabel Detail_Beli
Sehingga menjadi seperti contoh berikut ini :
7.
8.
9.
10. Tambahkan field No_Keluar dan Tanggal dari tabel Pengeluaran dan field Kode_Brg, Nama_Brg dan
Jumlah dari tabel Detail_Keluar
11. Sehingga menjadi seperti contoh berikut ini :
40
Setelah selesai membuat 2 buah query pada Microsoft Access, kita kembali lagi ke Data Environment
pada project Visual Basic. Kemudian ikuti langkah-langkah berikut ini :
1. Klik kanan pada Conn kemudian klik Add Command
2.
3.
41
4.
Tambahkan command baru pada bagian Conn, kemudian atur sesuai contoh berikut ini :
5.
Tambahkan command baru pada bagian Conn, kemudian atur sesuai contoh berikut ini :
42
6.
Terakhir tambahkan command baru pada bagian Conn, kemudian atur sesuai contoh berikut ini :
7.
Sehingga tampilan akhir dari Data Environment menjadi seperti berikut ini :
8.
9.
Selanjutnya menambahkan Data Report dengan cara klik Project Add Data Report
Kemudian atur propertiesnya sesuai dengan ketentuan berikut ini :
Nama Objek
Properti
Nilai Pengaturan
DataReport1
Name
LapBarang
Caption
Laporan Barang
DataSource
DELaporan
DataMember
Barang
GridX
10
GridY
10
WindowState
2 - vbMaximized
43
10. Klik tahan (drag) command Barang pada Data Environment ke bagian Detail (Section1) pada Data
Report
44
12. Modifikasi report dengan memindahkan objek Label ke bagian Page Header (Section2) dan mengatur
lebar masing-masing label sehingga menjadi seperti berikut ini :
13. Kita juga dapat menambahkan label pada bagian Report Header (Section4), mengatur Alignment
label, kita juga dapat menambahkan RptShape dan RptLine untuk membuat bingkai pada report yang
telah kita buat. Sehingga hasil akhirnya menjadi seperti berikut ini :
45
46
Dan untuk menjalankan program aplikasi kita bisa menekan tombol F5 dengan catatan tabel admin
untuk field username dan password sudah diisi dengan username dan password yang digunakan untuk
proses Login. Pada contoh Tutorial ini username dan password adalah admin.
.: Semoga Bermanfaat :.
TERIMA KASIH
47