Aplikasi Penjualan Buku Menggunakan Vb.
Net dan Access
Step 3 : Membuat Form Transaksi
A.
Form Transaksi
Tambah kan
sebuah form(Langkah-langkahnya seperti pada Step2 : Membuat Form Data Buku)
Rename Form1.vb menjadi FormTransaksi.vb lalu rancang lah FormTransaksi.vb
seperti gambar dibawah ini :
Property Setting :
Object
|
Name
|
Text
|
Form 1
|
FormTransaksi
|
Transaksi
|
Label1
|
Label
1.Text
|
Nomor
Faktur
|
Label2
|
Label
2.Text
|
Nama
Pembeli
|
Label3
|
Label
3.Text
|
No.
Telp
|
Label4
|
Label
4.Text
|
Tanggal
|
Label5
|
Label
5.Text
|
Pukul
|
Label6
|
Label
6.Text
|
Jumlah
Item
|
Label7
|
Label
7.Text
|
Total
|
Label8
|
Label
8.Text
|
Bayar
|
Label9
|
Label
9.Text
|
Kembali
|
Label10
|
Label
10.Text
|
Rp.
|
TextBox
1
|
TextBox
1.Text
|
-
|
TextBox
2
|
TextBox
2.Text
|
-
|
TextBox
3
|
TextBox
3.Text
|
-
|
TextBox
4
|
TextBox
4.Text
|
-
|
TextBox
5
|
TextBox
5.Text
|
-
|
TextBox
6
|
TextBox
6.Text
|
-
|
TextBox
7
|
TextBox
7.Text
|
-
|
TextBox
8
|
TextBox
8.Text
|
-
|
TextBox
9
|
TextBox
9.Text
|
-
|
Button
1
|
Button
1
|
&Simpan
|
Button
2
|
Button
2
|
&Batal
|
Button
3
|
Button
3
|
&Tutup
|
Button
4
|
Button
4
|
&Kode
Buku
|
DataGridView1
|
DataGridView1
|
-
|
Ketikan
koding pada masing-masing object seperti kode berikut :
Imports System.Data.OleDb
Public Class FormTransaksi
Sub Kosong()
TextBox4.Clear()
TextBox5.Clear()
TextBox6.Clear()
TextBox7.Clear()
TextBox8.Clear()
TextBox4.Focus()
End Sub
Sub TidakAktif()
TextBox1.Enabled = False
TextBox2.Enabled = False
TextBox3.Enabled = False
End Sub
Sub KolomBaru()
DataGridView1.Columns.Add("Kode",
"KODE BUKU")
DataGridView1.Columns.Add("Nama",
"NAMA BUKU")
DataGridView1.Columns.Add("Harga",
"HARGA")
DataGridView1.Columns.Add("Jumlah",
"QTY")
DataGridView1.Columns.Add("Total",
"SUB TOTAL")
Call LebarKolom()
End Sub
Sub LebarKolom()
DataGridView1.Columns(0).Width = 50
DataGridView1.Columns(1).Width = 300
DataGridView1.Columns(2).Width = 60
DataGridView1.Columns(3).Width = 40
DataGridView1.Columns(4).Width = 80
End Sub
Private Sub
Otomatis()
cmd =
New OleDbCommand("Select * from Transaksi where NoFaktur in (select
max(NoFaktur) from Transaksi) order by NoFaktur desc", Conn)
Dim urutan As String
Dim hitung As Long
rd =
cmd.ExecuteReader
rd.Read()
If Not rd.HasRows Then
urutan = "TR" + Format(Now,
"yyMMdd") + "001"
Else
If Microsoft.VisualBasic.Mid(rd.GetString(0), 3, 6)
<> Format(Now, "yyMMdd") Then
urutan = "TR" + Format(Now,
"yyMMdd") + "001"
Else
hitung = Microsoft.VisualBasic.Right(rd.GetString(0), 2) + 1
urutan = "TR" + Format(Now,
"yyMMdd") +
Microsoft.VisualBasic.Right("000"
& hitung, 3)
End If
End If
TextBox1.Text = urutan
End Sub
Sub TampilBuku()
cmd =
New OleDbCommand("Select KodeBuku From Buku", Conn)
rd =
cmd.ExecuteReader
End Sub
Private Sub
Form4_Activated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Activated
Call Otomatis()
TextBox2.Text = Today
TextBox3.Text = TimeOfDay
End Sub
Private Sub
Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
Call Koneksi()
Call KolomBaru()
Call Kosong()
Call TidakAktif()
Call TampilBuku()
End Sub
Sub TotalItem()
Dim HitungItem As Integer = 0
For I As Integer = 0 To
DataGridView1.Rows.Count - 1
HitungItem = HitungItem + Val(DataGridView1.Rows(I).Cells(3).Value)
TextBox9.Text = HitungItem
Next
End Sub
Sub TotalHarga()
Dim HitungHarga As Integer = 0
For I As Integer = 0 To
DataGridView1.Rows.Count - 1
HitungHarga = HitungHarga + Val(DataGridView1.Rows(I).Cells(4).Value)
TextBox6.Text = HitungHarga
Label10.Text = HitungHarga
Next
End Sub
Sub HapusBaris()
On Error Resume Next
Dim Baris As Integer = DataGridView1.CurrentCell.RowIndex
DataGridView1.Rows(baris).Cells(0).Value = ""
Chr(30)
End Sub
Private Sub
DataGridView1_KeyDown(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown
If e.KeyCode = Keys.Up
Then
DataGridView1.CurrentCell = DataGridView1.Rows(0).Cells(3)
End If
End Sub
Private Sub
DataGridView1_KeyPress(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles DataGridView1.KeyPress
On Error Resume Next
If e.KeyChar = Chr(27) Then
DataGridView1.Rows.RemoveAt(DataGridView1.CurrentCell.RowIndex)
Call
TotalItem()
Call TotalHarga()
TextBox7.Clear()
TextBox8.Text = ""
End If
End Sub
Private Sub
TextBox7_KeyPress(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox7.KeyPress
If e.KeyChar = Chr(13) Then
If Val(TextBox7.Text) < Val(TextBox6.Text) Then
MsgBox("Pembayaran kurang")
TextBox8.Text = ""
TextBox7.Focus()
Exit Sub
ElseIf Val(TextBox7.Text) = Val(TextBox6.Text) Then
TextBox8.Text = 0
Button2.Focus()
Else
TextBox8.Text = Val(TextBox7.Text) - Val(TextBox6.Text)
Button2.Focus()
End If
End If
If Not ((e.KeyChar
>= "0" And
e.KeyChar <= "9") Or e.KeyChar = vbBack) Then
e.Handled() = True
End Sub
Private Sub
Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button2.Click
Call Kosong()
DataGridView1.Columns.Clear()
Call KolomBaru()
DataGridView1.Focus()
End Sub
Private Sub
DataGridView1_EditingControlShowing(ByVal
sender As System.Object,
ByVal e As
System.Windows.Forms.DataGridViewEditingControlShowingEventArgs)
Handles DataGridView1.EditingControlShowing
If e.Control.GetType.ToString() = "System.Windows.Forms.DataGridViewTextBoxEditingControl"
Then
Dim c As DataGridViewTextBoxEditingControl = CType(e.Control, DataGridViewTextBoxEditingControl)
RemoveHandler c.KeyPress, AddressOf
GridViewTextBox_KeyPress
AddHandler c.KeyPress, AddressOf
GridViewTextBox_KeyPress
End If
End Sub
Private Sub
GridViewTextBox_KeyPress(ByVal sender As Object, ByVal ex As KeyPressEventArgs)
If DataGridView1.CurrentCell.ColumnIndex = 3 Then
If ((Asc(ex.KeyChar) < 48 Or
Asc(ex.KeyChar) > 57) And Asc(ex.KeyChar)
<> 8) Then
ex.Handled = True
End If
End If
End Sub
Private Sub
Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
If TextBox1.Text = ""
Or TextBox2.Text = ""
Or TextBox3.Text = ""
Or TextBox4.Text = ""
Or TextBox5.Text = ""
Or TextBox6.Text = ""
Or TextBox7.Text = ""
Or TextBox8.Text = ""
Then
MsgBox("Data belum lengkap, tidak ada
transaksi atau pembayaran masih kosong")
Exit Sub
End If
'Simpan ke tabel Transaksi
Dim SimpanTransaksi As
String = "Insert
into
Transaksi(NoFaktur,TglFaktur,Pukul,NamaPembeli,NoTlp,Total,Dibayar,Kembali,Item)
values " & _
"('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text & "','" & TextBox6.Text & "','" & TextBox7.Text & "','" & TextBox8.Text & "','" & TextBox9.Text & "')"
cmd =
New OleDbCommand(SimpanTransaksi,
Conn)
cmd.ExecuteNonQuery()
For baris As Integer = 0 To
DataGridView1.Rows.Count - 2
'Simpan ke tabel DetailTransaksi
Dim SimpanDetailTransaksi As
String = "Insert
into DetailTransaksi (NoFaktur,KodeBuku,Judul,HargaJual,Jumlah,SubTotal) values
" & _
"('" & TextBox1.Text & "','" &
DataGridView1.Rows(baris).Cells(0).Value & "','"
& DataGridView1.Rows(baris).Cells(1).Value & "','"
& DataGridView1.Rows(baris).Cells(2).Value & "','"
& DataGridView1.Rows(baris).Cells(3).Value & "','"
& DataGridView1.Rows(baris).Cells(4).Value & "')"
cmd = New OleDbCommand(SimpanDetailTransaksi,
Conn)
cmd.ExecuteNonQuery()
'Kurangi stok Buku
cmd = New OleDbCommand("select * from Buku where KodeBuku='"
& DataGridView1.Rows(baris).Cells(0).Value & "'",
Conn)
rd = cmd.ExecuteReader
rd.Read()
If rd.HasRows Then
Dim KurangiStok As
String = "update
Buku set Jumlah= '" & rd.Item(5) -
DataGridView1.Rows(baris).Cells(3).Value & "'
where KodeBuku='" & DataGridView1.Rows(baris).Cells(0).Value
& "'"
cmd = New OleDbCommand(KurangiStok,
Conn)
cmd.ExecuteNonQuery()
End If
Next baris
DataGridView1.Columns.Clear()
Call KolomBaru()
Call Otomatis()
Call Kosong()
End Sub
Sub kena(ByVal myGrid
As DataGrid)
myGrid.CurrentCell = New DataGridCell(1, 1)
End Sub
Private Sub
DataGridView1_CellEndEdit(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs)
Handles DataGridView1.CellEndEdit
If e.ColumnIndex = 0 Then
cmd = New OleDbCommand("select * from Buku where KodeBuku='"
& DataGridView1.Rows(e.RowIndex).Cells(0).Value & "'", Conn)
rd = cmd.ExecuteReader
rd.Read()
If rd.HasRows Then
DataGridView1.Rows(e.RowIndex).Cells(1).Value = rd.Item(2)
DataGridView1.Rows(e.RowIndex).Cells(2).Value = rd.Item(6)
DataGridView1.Rows(e.RowIndex).Cells(3).Value = 1
DataGridView1.Rows(e.RowIndex).Cells(4).Value =
DataGridView1.Rows(e.RowIndex).Cells(2).Value *
DataGridView1.Rows(e.RowIndex).Cells(3).Value
Call TotalItem()
Call TotalHarga()
Else
MsgBox("Kode buku tidak terdaftar")
End If
End If
If e.ColumnIndex = 3 Then
cmd = New OleDbCommand("select * from Buku where KodeBuku='"
& DataGridView1.Rows(e.RowIndex).Cells(0).Value & "'", Conn)
rd = cmd.ExecuteReader
rd.Read()
If rd.HasRows Then
If
DataGridView1.Rows(e.RowIndex).Cells(3).Value > rd.Item(5) Then
MsgBox("Stok Buku hanya ada "
& rd.Item(5) & "")
DataGridView1.Rows(e.RowIndex).Cells(3).Value
= 1
DataGridView1.Rows(e.RowIndex).Cells(4).Value =
DataGridView1.Rows(e.RowIndex).Cells(2).Value *
DataGridView1.Rows(e.RowIndex).Cells(3).Value
Call TotalItem()
Call TotalHarga()
Else
DataGridView1.Rows(e.RowIndex).Cells(4).Value =
DataGridView1.Rows(e.RowIndex).Cells(2).Value *
DataGridView1.Rows(e.RowIndex).Cells(3).Value
Call TotalItem()
Call TotalHarga()
End If
End If
DataGridView1.CurrentCell = DataGridView1.Rows(0).Cells(0)
End If
End Sub
Private Sub
TextBox4_KeyPress(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress
If e.KeyChar = Chr(13) Then
TextBox4.Text = UCase(TextBox4.Text)
TextBox5.Focus()
End If
End Sub
Private Sub
TextBox5_KeyPress(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox5.KeyPress
If e.KeyChar = Chr(13) Then
TextBox5.Text = UCase(TextBox5.Text)
DataGridView1.Focus()
End If
End Sub
Private Sub Button4_Click(ByVal
sender As System.Object,
ByVal e As
System.EventArgs) Handles
Button4.Click
FormData.ShowDialog()
End Sub
End Class
B.
Tabel Transaksi
Tambah kan tabel Transaksi
pada database Buku.accdb yang sudah
dibuat pada step 1.
Struktur Tabel Buku :
Field
|
Type
|
Size
|
Keterangan
|
NoFaktur
|
Text
|
10
|
PK
(Primary Key)
|
TglFaktur
|
Date/Time
|
-
|
FK
(Foreign Key)
|
Pukul
|
Date/Time
|
-
|
|
Nama_Pembeli
|
Text
|
50
|
|
NoTlp
|
Text
|
15
|
|
Total
|
Number
|
Long Int
|
|
Dibayar
|
Number
|
Long Int
|
|
Kembali
|
Number
|
Long Int
|
|
Item
|
Number
|
Long Int
|
Tutorial bisa didownload Disini
0 komentar:
Post a Comment