1
Program Aplikasi Persediaan Barang
Oleh : Eko Sugiharto, S.Kom.
Buatlah database dan beberapa tabel menggunakan program Microsoft Access sesuai dengan
ketentuan berikut ini :
Nama database :
database.mdb
Daftar tabel
1.
Nama Tabel :
Barang
Field Name
Data Type (Length)
*Kode_Brg
Text(10)
Nama_Brg
Text(30)
Satuan
Text(20)
Stok
Number(Integer)
2.
Nama Tabel :
Supplier
Field Name
Data Type (Length)
*Kode_Supp
Text(10)
Nama_Supp
Text(30)
Alamat
Text(150)
Kota
Text(30)
Telepon
Text(20)
3.
Nama Tabel :
Pembelian
Field Name
Data Type (Length)
*No_Faktur
Text(10)
Tanggal
Date
Kode_Supp
Text(10)
Nama_Supp
Text(30)
Total
Number(Integer)
4.
Nama Tabel :
Detail_Beli
Field Name
Data Type (Length)
No_Faktur
Text(10)
Kode_Brg
Text(10)
Nama_Brg
Text(30)
Jumlah
Number(Integer)
Keterangan : Tanpa Primary Key
5.
Nama Tabel :
Pengeluaran
Field Name
Data Type (Length)
*No_Keluar
Text(10)
Tanggal
Date
Total
Number(Integer)
6.
Nama Tabel :
Detail_Keluar
Field Name
Data Type (Length)
No_Keluar
Text(10)
Kode_Brg
Text(10)
Nama_Brg
Text(30)
Stok
Number(Integer)
Jumlah
Number(Integer)
Keterangan : Tanpa Primary Key
7.
Nama Tabel :
Admin
Field Name
Data Type (Length)
*Username
Text(16)
2
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
3
5.
Ketik kode program sesuai contoh berikut ini :
Option Explicit
Public KonekDB As ADODB.Connection Public Rs_Barang As New ADODB.Recordset Public Rs_Supplier As New ADODB.Recordset Public Rs_Beli As New ADODB.Recordset Public 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 Security Info=False;Data Source=" & App.Path + "\database.mdb"
'Untuk membuka koneksi On Error Resume Next
If KonekDB.State = adStateOpen Then KonekDB.Close
Set KonekDB = New ADODB.Connection Else
KonekDB.Open strKonekDB End If
'Periksa status koneksi If Err.Number <> 0 Then
MsgBox "Koneksi Database Gagal, Silakan Periksa Kembali..!!", vbOKOnly + vbInformation, "Informasi"
End Else
'Koneksi Database Sukses End If
End Sub
6.
Simpan
Module
tersebut dengan nama
Config
7.
Tambahkan komponen
Microsoft FlexGrid Control 6.0
dengan cara
klik kanan
pada area
Toolbox
4
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
5
10. Sehingga tampilan akhirnya menjadi seperti berikut ini :
11. Kemudian tambahkan kode program sesuai contoh berikut ini :
Dim GridBaris As Byte
Sub NonAktif() txtKode.Enabled = False txtNama.Enabled = False cbSatuan.Enabled = False txtStok.Enabled = False cmdEdit.Enabled = False cmdHapus.Enabled = False cmdInput.Enabled = True cmdInput.Caption = "&Input" cmdTutup.Caption = "&Tutup" End Sub Sub Aktif() txtKode.Enabled = True txtNama.Enabled = True cbSatuan.Enabled = True txtStok.Enabled = True End Sub Sub Kosong() txtKode.Text = "" txtNama.Text = "" cbSatuan.Text = "" txtStok.Text = "" End Sub
Private Sub cmdEdit_Click()
If MsgBox("Apakah Anda yakin mau mengedit data ini?", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then
If 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"
6
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
7
Rs_Barang.Requery Call Kosong Call NonAktif Call TampilGrid
MsgBox "Data berhasil tersimpan", vbOKOnly + vbInformation, "Informasi" Else
MsgBox "Data tidak tersimpan", vbOKOnly + vbInformation, "Informasi" End If
End If End If
End Sub
Private Sub cmdTutup_Click()
If cmdTutup.Caption = "&Tutup" Then
If MsgBox("Apakah Anda mau menutup form ini?", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then
Unload Me End If Else Call Kosong Call NonAktif End If End Sub
Private Sub Form_Load()
Call BukaDatabase Call TampilGrid Call NonAktif End Sub Sub AktifGrid() With GridData .Cols = 5 .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 Barang" .CellFontBold = True .ColWidth(1) = 1750 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 2 .Row = 0
.Text = "Nama Barang" .CellFontBold = True .ColWidth(2) = 2500 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 3 .Row = 0 .Text = "Satuan" .CellFontBold = True .ColWidth(3) = 1500 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 4 .Row = 0 .Text = "Stok" .CellFontBold = True .ColWidth(4) = 1000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter End With End Sub
8
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
9
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
10
15. Sehingga tampilan akhirnya menjadi seperti berikut ini :
16. Kemudian tambahkan kode program seperti contoh berikut ini :
Dim GridBaris As Byte
Sub NonAktif() txtKode.Enabled = False txtNama.Enabled = False txtAlamat.Enabled = False txtKota.Enabled = False txtTelepon.Enabled = False cmdEdit.Enabled = False cmdHapus.Enabled = False cmdInput.Enabled = True cmdInput.Caption = "&Input" cmdTutup.Caption = "&Tutup" End Sub Sub Aktif() txtKode.Enabled = True txtNama.Enabled = True txtAlamat.Enabled = True txtKota.Enabled = True txtTelepon.Enabled = True End Sub Sub Kosong() txtKode.Text = "" txtNama.Text = "" txtAlamat.Text = "" txtKota.Text = "" txtTelepon.Text = "" End Sub
Private Sub cmdEdit_Click()
If MsgBox("Apakah Anda yakin mau mengedit data ini?", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then
If 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"
11
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
12
.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 TampilGridMsgBox "Data berhasil tersimpan", vbOKOnly + vbInformation, "Informasi" Else
MsgBox "Data tidak tersimpan", vbOKOnly + vbInformation, "Informasi" End If
End If End If
End Sub
Private Sub cmdTutup_Click()
If cmdTutup.Caption = "&Tutup" Then
If MsgBox("Apakah Anda mau menutup form ini?", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then
Unload Me End If Else Call Kosong Call NonAktif End If End Sub
Private Sub Form_Load()
Call BukaDatabase Call TampilGrid Call NonAktif End Sub Sub AktifGrid() With GridData .Cols = 6 .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 Supplier" .CellFontBold = True .ColWidth(1) = 1750 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 2 .Row = 0
.Text = "Nama Supplier" .CellFontBold = True .ColWidth(2) = 2000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 3 .Row = 0 .Text = "Alamat" .CellFontBold = True .ColWidth(3) = 3000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 4 .Row = 0 .Text = "Kota" .CellFontBold = True .ColWidth(4) = 1500 .AllowUserResizing = flexResizeColumns
13
.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
14
18. Tambahkan komponen
Microsoft Windows Common Controls-2.6.0
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)
15
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
16
22. Kemudian tambahkan kode program seperti contoh berikut ini :
Dim i, baris As Integer
Private Sub cmdBatal_Click()
Kosong
End Sub
Private Sub cmdCariSupp_Click()
frmCariSupplier.Show
End Sub
Private Sub cmdCariBrg_Click()
frmCariBarang.Show
End Sub
Private Sub Kosong()
txtNoFak.Text = ""
dtTanggal.Value = Format(Now, "dd-mm-yyyy") txtKdSupp.Text = "" txtNmSupp.Text = "" txtKdBrg.Text = "" txtNmBrg.Text = "" txtJumlah.Text = "" txtTotal.Text = "" baris = 1 GridData.Clear GridData.Rows = 2 AktifGridData End Sub
Private Sub cmdOK_Click()
On Error Resume Next If txtKdBrg = "" Then
MsgBox "Kode Barang tidak boleh kosong..!!", vbInformation + vbOKOnly, "Informasi"
txtKdBrg.SetFocus ElseIf txtNmBrg = "" Then
MsgBox "Kode Barang tidak terdaftar..!", vbInformation + vbOKOnly, "Informasi" txtKdBrg = ""
txtJumlah = "" txtKdBrg.SetFocus ElseIf txtJumlah = "" Then
MsgBox "Jumlah tidak boleh kosong..!!", vbInformation + vbOKOnly, "Informasi" txtJumlah.SetFocus
ElseIf Not IsNumeric(txtJumlah) Then
MsgBox "Jumlah harus diisi dengan tipe Number!", vbInformation + vbOKOnly, "Informasi" txtJumlah = "" txtJumlah.SetFocus Else GridData.Rows = baris + 1 GridData.TextMatrix(baris, 0) = txtKdBrg.Text GridData.TextMatrix(baris, 1) = txtNmBrg.Text GridData.TextMatrix(baris, 2) = txtJumlah.Text
txtTotal.Text = Val(txtTotal.Text) + Val(txtJumlah.Text) baris = baris + 1 txtKdBrg = "" txtNmBrg = "" txtJumlah = "" txtKdBrg.SetFocus End If Rs_Barang.Requery End Sub
Private Sub AktifGridData()
With GridData .Cols = 3 .RowHeightMin = 300 .Col = 0 .Row = 0
.Text = "Kode Barang" .CellFontBold = True .ColWidth(0) = 2000
.AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter
17
.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)
SQL = ""
SQL = "UPDATE Barang SET Stok=Stok + " & StokBaru & " WHERE Kode_Brg='" & Kode & "'"
KonekDB.Execute SQL, , adCmdText Next i
MsgBox "Data Pembelian telah tersimpan.", vbInformation + vbOKOnly, "Informasi" Kosong
End If Else
MsgBox "Maaf! Data pembelian barang masih kosong.", vbOKOnly + vbInformation, "Informasi"
End If
End Sub
Private Sub cmdTutup_Click()
If MsgBox("Apakah Anda mau menutup form ini?", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then
Unload Me End If
End Sub
Private Sub Form_Load()
Call BukaDatabase Call Kosong
End Sub
Private Sub TampilBarang()
If txtKdBrg <> "" Then SQL = ""
SQL = "SELECT * FROM Barang WHERE Kode_Brg='" & txtKdBrg.Text & "'" Set Rs_Barang = New ADODB.Recordset
18
If Not Rs_Barang.BOF Then
txtNmBrg = Rs_Barang.Fields!Nama_Brg txtJumlah.SetFocus
End If End If
End Sub
Private Sub TampilSupplier()
If txtKdSupp <> "" Then SQL = ""
SQL = "SELECT * FROM Supplier WHERE Kode_Supp='" & txtKdSupp.Text & "'" Set Rs_Supplier = New ADODB.Recordset
Rs_Supplier.Open SQL, KonekDB, adOpenDynamic, adLockOptimistic
If Not Rs_Supplier.BOF Then
txtNmSupp = Rs_Supplier.Fields!Nama_Supp txtKdBrg.SetFocus
End If End If
End Sub
Private Sub txtKdBrg_Change()
TampilBarang
End Sub
Private Sub txtKdSupp_Change()
TampilSupplier
End Sub
23. Simpan form tersebut dengan nama
frmPembelian
24. Tambahkan form baru dan rancanglah form Pencarian Supplier dengan menambahkan
1 Frame, 1
TextBox, 1 CommandButton
dan
1 MsFlexGrid
seperti contoh berikut ini :
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
19
26. Sehingga tampilan akhirnya menjadi seperti berikut ini :
27. Tambahkan kode program seperti contoh berikut ini :
Private Sub cmdTutup_Click()Unload Me
End Sub
Private Sub Form_Load()
Call BukaDatabase
Set Rs_Supplier = New ADODB.Recordset
Rs_Supplier.Open "SELECT * FROM Supplier", KonekDB, adOpenDynamic, adLockOptimistic Call TampilGridData GridData.Cols = 6 End Sub Sub AktifGridData() With GridData .Cols = 6 .RowHeightMin = 300 .Col = 0 .Row = 0 .Text = "No" .CellFontBold = True .ColWidth(0) = 400 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 1 .Row = 0
.Text = "Kode Supplier" .CellFontBold = True .ColWidth(1) = 2000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 2 .Row = 0
.Text = "Nama Supplier" .CellFontBold = True .ColWidth(2) = 2000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 3 .Row = 0 .Text = "Alamat" .CellFontBold = True .ColWidth(3) = 3500 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 4 .Row = 0 .Text = "Kota" .CellFontBold = True .ColWidth(4) = 1500 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter
20
.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
21
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 :
32. Tambahkan kode program seperti contoh berikut ini :
Private Sub cmdTutup_Click()Unload Me
End Sub
Private Sub Form_Load()
Call BukaDatabase
Set Rs_Barang = New ADODB.Recordset
Rs_Barang.Open "SELECT * FROM Barang", KonekDB, adOpenDynamic, adLockOptimistic Call TampilGridData GridData.Cols = 4 End Sub Sub AktifGridData() With GridData .Cols = 4 .RowHeightMin = 300 .Col = 0 .Row = 0 .Text = "No" .CellFontBold = True .ColWidth(0) = 400 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter
22
.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
23
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
33. Simpan form tersebut dengan nama
frmCariBarang
34. Tambahkan form baru dan rancanglah form Data Pengeluaran dengan menambahkan
7 Label, 6
TextBox, 1 DTPicker, 1 Frame, 5 CommandButton,
dan
MsFlexGrid
seperti contoh berikut ini :
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
24
Text6
Name
txtTotal
Text
Kosongkan
DTPicker1
Name
dtTanggal
Frame1
Caption
Proses
Command1
Name
cmdCariBrg
Caption
...
Command2
Name
cmdOK
Caption
&OK
Command3
Name
cmdSimpan
Caption
&Simpan
Command4
Name
cmdBatal
Caption
&Batal
Command5
Name
cmdTutup
Caption
&Tutup
MsFlexGrid1
Name
GridData
36. Sehingga tampilan akhirnya menjadi seperti berikut ini :
37. Tambahkan kode program seperti contoh berikut ini ;
Dim i, baris As Integer
Private Sub cmdBatal_Click()
Kosong
End Sub
Private Sub cmdCariBrg_Click()
frmCariBarang2.Show
End Sub
Private Sub Kosong()
txtNo.Text = ""
dtTanggal.Value = Format(Now, "dd-mm-yyyy") txtKdBrg.Text = "" txtNmBrg.Text = "" txtJumlah.Text = "" txtTotal.Text = "" baris = 1 GridData.Clear GridData.Rows = 2 AktifGridData End Sub
25
Private Sub cmdOK_Click()On Error Resume Next Dim cekKode As String If txtKdBrg = "" Then
MsgBox "Kode Barang tidak boleh kosong..!!", vbInformation + vbOKOnly, "Informasi"
txtKdBrg.SetFocus ElseIf txtNmBrg = "" Then
MsgBox "Kode Barang tidak terdaftar..!", vbInformation + vbOKOnly, "Informasi" txtKdBrg = ""
txtJumlah = "" txtKdBrg.SetFocus ElseIf txtJumlah = "" Then
MsgBox "Jumlah tidak boleh kosong..!!", vbInformation + vbOKOnly, "Informasi" txtJumlah.SetFocus
ElseIf Not IsNumeric(txtJumlah) Then
MsgBox "Jumlah harus diisi dengan tipe Number!", vbInformation + vbOKOnly, "Informasi"
txtJumlah = "" txtJumlah.SetFocus
ElseIf Val(txtJumlah.Text) > Val(txtStok.Text) Then
MsgBox "Stok barang tidak mencukupi!", vbInformation + vbOKOnly, "Informasi" txtJumlah = "" txtJumlah.SetFocus Else GridData.Rows = baris + 1 GridData.TextMatrix(baris, 0) = txtKdBrg.Text GridData.TextMatrix(baris, 1) = txtNmBrg.Text GridData.TextMatrix(baris, 2) = txtStok.Text GridData.TextMatrix(baris, 3) = txtJumlah.Text
txtTotal.Text = Val(txtTotal.Text) + Val(txtJumlah.Text) baris = baris + 1 txtKdBrg = "" txtNmBrg = "" txtStok = "" txtJumlah = "" txtKdBrg.SetFocus End If Rs_Barang.Requery End Sub
Private Sub AktifGridData()
With GridData .Cols = 4 .RowHeightMin = 300 .Col = 0 .Row = 0
.Text = "Kode Barang" .CellFontBold = True .ColWidth(0) = 1500 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 1 .Row = 0
.Text = "Nama Barang" .CellFontBold = True .ColWidth(1) = 3500 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 2 .Row = 0 .Text = "Stok" .CellFontBold = True .ColWidth(2) = 1000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 3 .Row = 0
.Text = "Qty Minta" .CellFontBold = True .ColWidth(2) = 1200 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter End With End Sub
26
Private Sub cmdSimpan_Click()If baris <> 1 Then If txtNo = "" Then
MsgBox "No. Keluar tidak boleh kosong!", vbOKOnly + vbInformation, "Informasi" txtNo.SetFocus
Else
'Proses penyimpanan ke Pengeluaran SQL = ""
SQL = "INSERT INTO Pengeluaran(No_Keluar,Tanggal,Total) VALUES('" & txtNo.Text & "','" & dtTanggal.Value & "','" & txtTotal.Text & "')"
KonekDB.Execute SQL, , adCmdText
'Proses penyimpanan ke Detail_Keluar For i = 1 To baris - 1
SQL = ""
SQL = "INSERT INTO Detail_Keluar(No_Keluar,Kode_Brg,Nama_Brg,Stok,Jumlah) VALUES('" & txtNo.Text & "','" & GridData.TextMatrix(i, 0) & "','" & GridData.TextMatrix(i, 1) & "','" & GridData.TextMatrix(i, 2) & "','" & GridData.TextMatrix(i, 3) & "')"
KonekDB.Execute SQL, , adCmdText
Dim JumKeluar As Integer Dim Kode As String
JumKeluar = Val(GridData.TextMatrix(i, 3)) Kode = GridData.TextMatrix(i, 0)
SQL = ""
SQL = "UPDATE Barang SET Stok=Stok - " & JumKeluar & " WHERE Kode_Brg='" & Kode & "'"
KonekDB.Execute SQL, , adCmdText Next i
MsgBox "Data Pengeluaran telah tersimpan.", vbInformation + vbOKOnly, "Informasi"
Kosong End If Else
MsgBox "Maaf! Data Pengeluaran barang masih kosong.", vbOKOnly + vbInformation, "Informasi"
End If
End Sub
Private Sub cmdTutup_Click()
If MsgBox("Apakah Anda mau menutup form ini?", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then
Unload Me End If
End Sub
Private Sub Form_Load()
Call BukaDatabase Call Kosong
End Sub
Private Sub TampilBarang()
If txtKdBrg <> "" Then SQL = ""
SQL = "SELECT * FROM Barang WHERE Kode_Brg='" & txtKdBrg.Text & "'" Set Rs_Barang = New ADODB.Recordset
Rs_Barang.Open SQL, KonekDB, adOpenDynamic, adLockOptimistic
If Not Rs_Barang.BOF Then
txtNmBrg = Rs_Barang.Fields!Nama_Brg txtJumlah.SetFocus
End If End If
End Sub
Private Sub txtKdBrg_Change()
TampilBarang
End Sub
27
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 :
42. Tambahkan kode program seperti contoh berikut ini :
Private Sub cmdTutup_Click()Unload Me
End Sub
Private Sub Form_Load()
Call BukaDatabase
Set Rs_Barang = New ADODB.Recordset
Rs_Barang.Open "SELECT * FROM Barang", KonekDB, adOpenDynamic, adLockOptimistic Call TampilGridData GridData.Cols = 4 End Sub Sub AktifGridData() With GridData .Cols = 4 .RowHeightMin = 300 .Col = 0 .Row = 0 .Text = "No" .CellFontBold = True .ColWidth(0) = 400 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter
28
.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
29
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
43. Simpan form tersebut dengan nama
frmCariBarang2
44. Tambahkan form baru untuk membuat form Login seperti contoh berikut ini :
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 :
47. Tambahkan kode program seperti contoh berikut ini :
Dim db As ADODB.Connection Dim rs As ADODB.Recordset Dim SQL As String
Dim salah As Byte
Sub koneksi()
Set db = New ADODB.Connection Set rs = New ADODB.Recordset
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\database.mdb;Persist Security Info=False"
End Sub
Private Sub cmdBatal_Click()
End
End Sub
Private Sub cmdOK_Click()
If txtUser = "" Then
MsgBox "Nama user tidak boleh kosong..!!", vbOKOnly + vbInformation, "Login" txtUser.SetFocus
30
ElseIf txtPassword = "" Then
MsgBox "Password tidak boleh kosong..!!", vbOKOnly + vbInformation, "Login" txtPassword.SetFocus
Else
koneksi
SQL = "SELECT * FROM admin WHERE username='" & txtUser.Text & "' AND password='" & txtPassword.Text & "'"
Set rs = db.Execute(SQL) 'Jika data user ditemukan If Not rs.BOF Then
frmUtama.Show Unload Me Else
If salah < 2 Then
MsgBox "Nama user atau Password Salah..!! Silakan ulangi lagi..", vbCritical + vbOKOnly, "Login"
txtUser.Text = "" txtPassword.Text = "" txtUser.SetFocus salah = salah + 1 Else
MsgBox "Kesalahan Password 3 kali berturut-turut.., Silakan Login ulang..", vbCritical + vbOKOnly, "Login"
salah = 0 End End If End If End If End Sub
Private Sub txtPassword_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then cmdOK_Click End If
End Sub
Private Sub txtUser_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then txtPassword.SetFocus End If
End Sub
Private Sub txtUser_Change()
txtPassword.Text = ""
End Sub
48. Simpan form tersebut dengan nama
frmLogin
49. Tambahkan form baru sebagai form utama Program Aplikasi Stok Barang, kemudian tambahkan menu
dan submenu menggunakan Menu Editor sesuai dengan ketentuan berikut ini :
Nama Objek
Properti
Nilai Pengaturan
Form1
Name
frmUtama
Caption
Aplikasi Persediaan Barang
WindowState
Maximized
Menu Editor
Caption
&Master
Name
mnuMaster
Caption
Data &Barang
Name
mnuBarang
Caption
Data &Supplier
Name
mnuSupplier
Caption
-
Name
mnuGaris
Caption
&Keluar
Name
mnuKeluar
Caption
&Transaksi
Name
mnuTransaksi
Caption
Pembelian
Name
mnuPembelian
Caption
Pengeluaran
Name
mnuPengeluaran
Caption
Laporan
Name
mnuLaporan
31
Caption
Barang
Name
mnuLapBarang
Caption
Supplier
Name
mnuLapSupplier
Caption
-
Name
mnuGaris2
Caption
Pembelian
Name
mnuLapBeli
Caption
Pengeluaran
Name
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
32
Private Sub mnuLapSupplier_Click()LapSupplier.Refresh LapSupplier.Show
End Sub
Private Sub mnuPembelian_Click()
frmPembelian.Show
End Sub
Private Sub mnuPengeluaran_Click()
frmPengeluaran.Show
End Sub
Private Sub mnuSupp_Click()
frmSupplier.Show
End Sub
51. Simpan form tersebut dengan nama
frmUtama
52. Tambahkan form baru dan rancanglah form Laporan Pembelian dengan menambahkan
1 Label, 1
Frame, 4 OptionButton, 1 ComboBox, 3 DTPicker
, dan
2 CommandButton
seperti contoh berikut
ini:
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
33
Command2
Name
cmdTutup
Caption
Tutup
54. Sehingga tampilan akhirnya menjadi seperti berikut ini :
55. Tambahkan kode seperti contoh berikut ini :
Private Sub NonAktif()cbNo.Clear
dtTanggal = Format(Date, "dd-mm-yyyy") dtAwal = Format(Date, "dd-mm-yyyy") dtAkhir = Format(Date, "dd-mm-yyyy") cbNo.Enabled = False dtTanggal.Enabled = False dtAwal.Enabled = False dtAkhir.Enabled = False NoFaktur End Sub
Private Sub NoFaktur()
Set Rs1 = New ADODB.Recordset
Rs1.Open "SELECT No_Faktur FROM Pembelian ORDER BY No_Faktur", KonekDB, adOpenDynamic, adLockOptimistic
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
34
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
56. Simpan form dengan nama
frmLapBeli
57. Tambahkan form baru untuk
frmLapKeluar
yang secara keseluruhan objek yang digunakannya hampir
sama dengan
frmLapBeli
35
59. Hingga tampilan akhirnya menjadi seperti berikut ini :
60. Tambahkan kode seperti berikut ini :
Private Sub NonAktif()cbNo.Clear
dtTanggal = Format(Date, "dd-mm-yyyy") dtAwal = Format(Date, "dd-mm-yyyy") dtAkhir = Format(Date, "dd-mm-yyyy") cbNo.Enabled = False dtTanggal.Enabled = False dtAwal.Enabled = False dtAkhir.Enabled = False NoKeluar End Sub
Private Sub NoKeluar()
Set Rs1 = New ADODB.Recordset
Rs1.Open "SELECT No_Keluar FROM Pengeluaran ORDER BY No_Keluar", KonekDB, adOpenDynamic, adLockOptimistic
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 besar dari Tanggal Akhir..!!", vbOKOnly + vbInformation, "Informasi"
dtAwal.SetFocus Else
DELaporan.rsPengeluaran.Filter = "Tanggal>='" & dtAwal.Value & "' AND Tanggal<='" & dtAkhir.Value & "'"
LapKeluar.Refresh LapKeluar.Show End If