Anda di halaman 1dari 6

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 NoFatur 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(DataGridView.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

Anda mungkin juga menyukai