Anda di halaman 1dari 51

☯M

UUSRUSMAWAN.C☯
PANDUAN MEMBUAT APLIKASI JUAL BELI TUNAI
ATAU KREDIT PLUS JURNAL AKUNTANSI
Dalam bab ini akan dijelaskan tentang aplikasi pembelian dan penjualan secara tunai dan kredit disertai
dengan jurnal akuntansinya. Aplikasi ini dapat diunduh pada tautan berikut ini.
Adapun langkah-langkah pembuatannya adalah sebagai berikut:

3.1 Membuat Project Baru


Langkah pertama yang harus dilakukan dalam pembuatan aplikasi ini adalah membuat project baru.
Caranya adalah sebagai berikut :
1. Buka Microsoft Visual Studio 2008 (silakan gunakan versi yang anda miliki)
2. Pilih Create Project

3.2 Memberi Nama Project


Setelah membuat project baru, langkah selanjutnya adalah memberi nama project.
1. Ketik nama project, contoh "Aplikasi Jual Beli"
2. Klik OK
☯M
UUSRUSMAWAN.C☯

3. Selanjutnya klik menu file


4. Pilih Save All

5. Tentukan direktori project


6. Klik Browse
7. Klik save

3.3 Membuat Database Dan Tabel


Setelah direktori project terbentuk, langkah berikutnya adalah membuat database disimpan di folder debug.
Lakukanlah langkah-langkah berikut ini:
1. Buka Microsoft Office 2003
2. Pilih Microsoft Access 2003
3. Klik Create New File
4. Pilih Blank Database
5. tulis nama database misal "dbjualbeli". Pastikan posisi foldernya debug.
☯M
UUSRUSMAWAN.C☯

6. Klik Create
7. Klik dua kali Create Table In design View
8. Kemudian buatlah tabel-tabel seperti gambar berikut ini.

Catatan :
Tabel-tabel ini sudah tersedia dalam aplikasi dan dapat anda unduh pada tautan yang akan kami jelaskan di
halaman berikutnya. Dalam tabel-tabel master sudah tersedia contoh data yang dapat anda edit sesuai
kebutuhan.

3.4 Membuat Module Koneksi


Setelah membuat tabel-tabel yang diperlukan, langkah berikutnya adalah membuat module koneksi ke
database, caranya adalah sebagai berikut :
1. Klik Menu Project
2. Pilih Add Module
3. Klik Add
☯M
UUSRUSMAWAN.C☯

4. Kemudian ketik koding berikut ini


Imports System.Data.OleDb
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared

Module Module1

Public Conn As OleDbConnection


Public DA As OleDbDataAdapter
Public DS As DataSet
Public CMD As OleDbCommand
Public DR As OleDbDataReader

Public cryRpt As New ReportDocument


Public crtableLogoninfos As New TableLogOnInfos
Public crtableLogoninfo As New TableLogOnInfo
Public crConnectionInfo As New ConnectionInfo
Public CrTables As Tables

Public Sub seting_laporan()


With crConnectionInfo
.ServerName = (Application.StartupPath.ToString &
"\DBJualBeli.mdb")
.DatabaseName = (Application.StartupPath.ToString &
"\DBJualBeli.mdb")
.UserID = ""
.Password = ""
End With

CrTables = cryRpt.Database.Tables
For Each CrTable In CrTables
crtableLogoninfo = CrTable.LogOnInfo
crtableLogoninfo.ConnectionInfo = crConnectionInfo
CrTable.ApplyLogOnInfo(crtableLogoninfo)
Next
End Sub

Public Sub Koneksi()


☯M
UUSRUSMAWAN.C☯
Conn = New OleDbConnection("provider=microsoft.jet.oledb.4.0;data
source=DBJualBeli.mdb")
Conn.Open()

End Sub
End Module

Catatan :
Jika anda menggunakan database access 2007 atau 2010, maka string koneksi diubah menjadi sebagai
berikut:
Conn = New OleDbConnection("provider=microsoft.ACE.oledb.12.0;data
source=DBJualBeli.accdb")

Jika program mengalami error karena OS anda 64 bit, maka ubahlah setingnya sebagai berikut :
1. Klik Menu Project > Aplikasi Jual Beli properties...
2. Compile > Advance Compile Option
3. Ubah taget CPU menjadi x86 (32 bit) seperti gambar di bawah ini.

3.5 Form Login


Setelah membuat module koneksi ke database, langkah berikutnya adalah membuat form login dengan
bentuk seperti gambar di bawah ini.

Setelah itu ketiklah koding berikut ini.


☯M
UUSRUSMAWAN.C☯
Imports System.Data.OleDb

Public Class Login

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles TXTnama.KeyPress
If e.KeyChar = Chr(13) Then TXTPassword.Focus()
End Sub

Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles TXTPassword.KeyPress
If e.KeyChar = Chr(13) Then BTNLogin.Focus()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles BTNLogin.Click

Call Koneksi()
CMD = New OleDbCommand("select * from tbluser where nama_User= '" &
TXTnama.Text & "' and pwd_user='" & TXTPassword.Text & "'", CONN)
DR = CMD.ExecuteReader
DR.Read()

If DR.HasRows Then
'jika nama dan password tidak cocok huruf besar kecilnya maka login
dinyatakan gagal

If TXTnama.Text <> DR.Item("nama_user") And TXTPassword.Text <>


DR.Item("Pwd_user") Then
MsgBox("Login Gagal")
TXTnama.Clear()
TXTPassword.Clear()
TXTnama.Focus()
Exit Sub
Else
Me.Visible = False
MenuUtama.Show()
MenuUtama.Panel1.Text = DR.Item("Kode_user")
MenuUtama.Panel2.Text = DR.Item("nama_User")
MenuUtama.Panel3.Text = UCase(DR.Item("status_user"))
If MenuUtama.Panel3.Text <> "ADMIN" Then
MenuUtama.btnuser.Visible = False
Else
MenuUtama.btnuser.Visible = True
End If
End If
Else
MsgBox("Login Gagal")
TXTnama.Clear()
TXTPassword.Clear()
TXTnama.Focus()
End If
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles BTNKeluar.Click
End
End Sub
End Class

6
☯M
UUSRUSMAWAN.C☯
3.6 Form Menu Utama
Setelah membuat form login berikut codingnya, selanjutnya adalah membuat menu utama dengan bentuk
tampilan sebagai berikut.

Menu utama ini dibuat menggunakan TabControl, adapaun cara pembuatannya dapat anda lihat video
tutorialnya di website www.konsultasivb.com.

3.7 Form User


Form user digunakan untuk mengentri data user atau pamakai aplikasi, bentuk form user dapat dilihat pada
gambar di bawah ini.
☯M
UUSRUSMAWAN.C☯

Setelah membuat form user, langkah berikutnya adalah membuat codingnya yang dapat anda lihat pada
bagian dibawah ini.
Imports System.Data.OleDb

Public Class MasterUser

Sub Kosongkan()
txtkodeuser.Clear()
txtnamauser.Clear()
cbostatus.Text = ""
txtpassword.Clear()
txtcaridata.Clear()
txtkodeuser.Focus()
Call TampilStatus_user()
Call TampilGrid()
End Sub

Sub DataBaru()
txtnamauser.Clear()
cbostatus.Text = ""
txtpassword.Clear()
txtcaridata.Clear()
txtnamauser.Focus()
End Sub

Sub Ketemu()
txtnamauser.Text = DR.Item("nama_User")
txtpassword.Text = DR.Item("pwd_User")
cbostatus.Text = DR.Item("Status_user")
txtnamauser.Focus()
End Sub

Sub TampilGrid()
DA = New OleDbDataAdapter("select * from tblUser", CONN)
☯M
UUSRUSMAWAN.C☯
DS = New DataSet
DA.Fill(DS)
DGV.DataSource = DS.Tables(0)
DGV.ReadOnly = True
End Sub

Sub TampilStatus_user()
CMD = New OleDbCommand("select distinct Status_user from tblUser",
CONN)
DR = CMD.ExecuteReader
cbostatus.Items.Clear()
Do While DR.Read
cbostatus.Items.Add(DR.Item("Status_user"))
Loop
End Sub

Private Sub MasterUser_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
Me.StartPosition = FormStartPosition.CenterScreen
Call Koneksi()
Call Kosongkan()
End Sub

Private Sub combobox1_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles cbostatus.KeyPress
If ((e.KeyChar >= "0" And e.KeyChar <= "9") And e.KeyChar <>
vbBack) Then e.Handled = True
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnbatal.Click
Call Kosongkan()
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btntutup.Click
Me.Close()
End Sub

Private Sub ComboBox1_LostFocus(ByVal sender As Object, ByVal e As


System.EventArgs) Handles cbostatus.LostFocus
cbostatus.Text = UCase(cbostatus.Text)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnsimpan.Click
CMD = New OleDbCommand("select * from tblUser where kode_User='" &
txtkodeuser.Text & "'", CONN)
DR = CMD.ExecuteReader
DR.Read()
Try
If Not DR.HasRows Then
Dim simpan As String = "insert into tblUser values ('" &
txtkodeuser.Text & "','" & txtnamauser.Text & "','" & txtpassword.Text &
"','" & cbostatus.Text & "')"
CMD = New OleDbCommand(simpan, CONN)
CMD.ExecuteNonQuery()
Else

9
☯M
UUSRUSMAWAN.C☯
Dim edit As String = "update tblUser set nama_User='" &
txtnamauser.Text & "',Status_user='" & cbostatus.Text & "',pwd_User='" &
txtpassword.Text & "' where kode_User='" & txtkodeuser.Text & "'"
CMD = New OleDbCommand(edit, CONN)
CMD.ExecuteNonQuery()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
Call Kosongkan()
End Sub

Private Sub DGV_CellMouseClick(ByVal sender As Object, ByVal e As


System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles
DGV.CellMouseClick
On Error Resume Next
txtkodeuser.Text = DGV.Rows(e.RowIndex).Cells(0).Value
txtnamauser.Text = DGV.Rows(e.RowIndex).Cells(1).Value
txtpassword.Text = DGV.Rows(e.RowIndex).Cells(2).Value
cbostatus.Text = DGV.Rows(e.RowIndex).Cells(3).Value
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnhapus.Click
If txtkodeuser.Text = "" Then
MsgBox("Kode User harus diisi")
txtkodeuser.Focus()
Exit Sub
End If
If MessageBox.Show("yakin akan dihapus..?", "",
MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
Dim hapus As String = "delete * from tblUser where kode_User='"
& txtkodeuser.Text & "'"
CMD = New OleDbCommand(hapus, CONN)
CMD.ExecuteNonQuery()
Call Kosongkan()
Else
Call Kosongkan()
End If
End Sub

Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As


System.EventArgs) Handles txtkodeuser.LostFocus
CMD = New OleDbCommand("select * from tblUser where kode_User='" &
txtkodeuser.Text & "'", CONN)
DR = CMD.ExecuteReader
DR.Read()
If Not DR.HasRows Then
Call DataBaru()
Else
Call Ketemu()
End If
End Sub

Private Sub TextBox6_TextChanged(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles txtcaridata.TextChanged

10
☯M
UUSRUSMAWAN.C☯
DA = New OleDbDataAdapter("select * from tblUser where nama_User
like '%" & txtcaridata.Text & "%'", CONN)
DS = New DataSet
DA.Fill(DS)
DGV.DataSource = DS.Tables(0)
End Sub

End Class

3.8 Form Barang


Setelah membuat form user, langkah berikutnya adalah membuat form barang berikut codingnya yang
dapat anda lihat pada bagian dibawah ini.

3.9 Form Perkiraan


Setelah membuat form barang, langkah berikutnya adalah membuat form perkiraan berikut codingnya
yang dapat anda lihat pada bagian dibawah ini.
☯M
UUSRUSMAWAN.C☯

3.10 Form Supplier


Setelah membuat form perkiraan, langkah berikutnya adalah membuat form supplier berikut codingnya
yang dapat anda lihat pada bagian dibawah ini.

3.11 From Customer


Setelah membuat form supplier, langkah berikutnya adalah membuat form customer berikut codingnya
yang dapat anda lihat pada bagian dibawah ini.
☯M
UUSRUSMAWAN.C☯

3.12 Form Profil Perusahaan


Setelah membuat form customer, langkah berikutnya adalah membuat form profile perusahaan berikut
codingnya yang dapat anda lihat pada bagian dibawah ini.

3.13 Transaksi Pembelian


Setelah membuat form profile perusahaan, langkah berikutnya adalah membuat form pembelian berikut
codingnya yang dapat anda lihat pada bagian dibawah ini.
☯M
UUSRUSMAWAN.C☯

Proses dalam transaksi pembelian adalah sebagai berikut :


1. Mengisi nomor nota pembelian
2. Memilih supplier
3. Memilih barang yang dibeli dari grid sebelah kanan
4. Mengisi jumlah barang yang dibeli
5. Mengisi jumlah pembayaran, jika jumlah pembayaran lebih kecil dari total harga maka akan
dinyatakan pembelian kredit, jika jumlah bayar lebih besar dari total harga maka akan dinyatakan
pembelian tunai
6. Jika pembelian secara kredit maka isilah jumlah hari jatuh temponya
7. Klik simpan
Adapun codingnya seperti terlihat pada listing program di bawah ini.
Imports System.Data.OleDb
Public Class TransaksiPembelian

Sub TampilSupplier()
CMD = New OleDbCommand("Select * from tblsupplier", Conn)
DR = CMD.ExecuteReader
cbosupplier.Items.Clear()
Do While DR.Read
cbosupplier.Items.Add(DR.Item("nama_supplier"))
Loop
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btntutup.Click
Me.Close()
End Sub

Sub TampilBarang()
DA = New OleDbDataAdapter("select * from tblbarang where stok>0",
Conn)
DS = New DataSet
DA.Fill(DS)
DGVBarang.DataSource = DS.Tables(0)
DGVBarang.ReadOnly = True
DGVBarang.Columns(2).Visible = False
☯M
UUSRUSMAWAN.C☯
DGVBarang.Columns(3).Visible = False
DGVBarang.Columns(4).Visible = False
DGVBarang.Columns(5).Visible = False
DGVBarang.Columns(6).Visible = False
End Sub

Private Sub TransaksiPembelian_Load(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles MyBase.Load
Call Koneksi()
Call TampilSupplier()
Call TampilBarang()
End Sub

Private Sub DGVBarang_CellMouseClick(ByVal sender As Object, ByVal e As


System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles
DGVBarang.CellMouseClick
Dim baris As Integer = DGV.RowCount - 1

DGV.Rows.Add(DGVBarang.Rows(e.RowIndex).Cells(0).Value,
DGVBarang.Rows(e.RowIndex).Cells(1).Value,
DGVBarang.Rows(e.RowIndex).Cells(4).Value, 1)

TextBox1.Clear()
DGV.Rows(baris).Cells(4).Value = DGV.Rows(baris).Cells(2).Value *
DGV.Rows(baris).Cells(3).Value
Call Hitungtransaksi()

For barisatas As Integer = 0 To DGV.RowCount - 1


For barisbawah As Integer = barisatas + 1 To DGV.RowCount - 1
If DGV.Rows(barisbawah).Cells(0).Value =
DGV.Rows(barisatas).Cells(0).Value Then
DGV.Rows(barisatas).Cells(3).Value =
DGV.Rows(barisatas).Cells(3).Value + 1
DGV.Rows(barisatas).Cells(4).Value =
DGV.Rows(barisatas).Cells(2).Value * DGV.Rows(barisatas).Cells(3).Value
DGV.Rows.RemoveAt(barisbawah)
Call Hitungtransaksi()
Exit Sub
End If
Next
Next
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles TextBox1.TextChanged
DA = New OleDbDataAdapter("select * from tblbarang where
nama_barang like '%" & TextBox1.Text & "%' and stok>0", Conn)
DS = New DataSet
DA.Fill(DS)
DGVBarang.DataSource = DS.Tables(0)
DGVBarang.ReadOnly = True
DGVBarang.Columns(2).Visible = False
DGVBarang.Columns(3).Visible = False
DGVBarang.Columns(4).Visible = False
DGVBarang.Columns(5).Visible = False
DGVBarang.Columns(6).Visible = False
End Sub

15
☯M
UUSRUSMAWAN.C☯
Sub Hitungtransaksi()
Dim x As Integer = 0
For baris As Integer = 0 To DGV.RowCount - 1
x = x + DGV.Rows(baris).Cells(3).Value
lbljumlahbarang.Text = x
Next

Dim y As Integer = 0
For baris As Integer = 0 To DGV.RowCount - 1
y = y + DGV.Rows(baris).Cells(4).Value
lbltotalharga.Text = y
Next

End Sub

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles txtdibayar.KeyPress
If e.KeyChar = Chr(13) Then
If Val(txtdibayar.Text) >= Val(lbltotalharga.Text) Then
lblcarabeli.Text = "TUNAI"
lblsisahutang.Text = 0
txttempo.Text = 0
txttempo.Enabled = False
lbljatuhtempo.Text = dtptanggal.Text
lblstatusbeli.Text = "LUNAS"
btnsimpan.Focus()
Else
lblcarabeli.Text = "KREDIT"
lblsisahutang.Text = Val(lbltotalharga.Text) -
Val(txtdibayar.Text)
lblstatusbeli.Text = "BELUM LUNAS"
txttempo.Enabled = True
txttempo.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 TextBox2_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles txttempo.KeyPress
If e.KeyChar = Chr(13) Then
Dim tambahhari As Integer = txttempo.Text
lbljatuhtempo.Text = DateAdd(DateInterval.Day, tambahhari,
Today)
btnsimpan.Focus()
End If
If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar =
vbBack) Then e.Handled = True
End Sub

Private Sub DGV_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles DGV.KeyPress
On Error Resume Next
If e.KeyChar = Chr(27) Then
DGV.Rows.RemoveAt(DGV.CurrentCell.RowIndex)
Call Hitungtransaksi()
End If

16
☯M
UUSRUSMAWAN.C☯
If e.KeyChar = Chr(13) Then
txtdibayar.Focus()
End If
End Sub

Sub kOSONGKAN()
cbosupplier.Text = ""
lbljumlahbarang.Text = ""
lbltotalharga.Text = ""
lblcarabeli.Text = ""
lblsisahutang.Text = ""
lbljatuhtempo.Text = ""
lblstatusbeli.Text = ""
lblkodesupplier.Text = ""
txtdibayar.Text = ""
txttempo.Text = ""
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnbatal.Click
Call kOSONGKAN()
DGV.Rows.Clear()
DGV.Enabled = False
End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
cbosupplier.SelectedIndexChanged
If cbosupplier.Text = "" Then
DGVBarang.Enabled = False
DGV.Enabled = False
Else
DGVBarang.Enabled = True
DGV.Enabled = True
End If

CMD = New OleDbCommand("select * from tblSUPpLIER where


NAMA_SUPPLIER='" & cbosupplier.Text & "'", CONN)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
lblkodesupplier.Text = DR.Item("KODE_SUPPLIER")
Else
MsgBox("Kode Supplier tidak terdaftar")
End If
End Sub

Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles txtnofaktur.KeyPress
If e.KeyChar = Chr(13) Then
CMD = New OleDbCommand("select * from tblpembelian where
faktur_beli='" & txtnofaktur.Text & "'", Conn)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
MsgBox("nomor transkasi sudah terdaftar")
Exit Sub
Else
cbosupplier.Focus()

17
☯M
UUSRUSMAWAN.C☯
End If
End If
End Sub
End Class

3.14 Retur Pembelian


Setelah membuat form pembelian, langkah berikutnya adalah membuat form retur pembelian berikut
codingnya yang dapat anda lihat pada bagian dibawah ini.

proses dalam form retur pembelian adalah sebagai berikut.


1. Pilih nomor faktur yang akan diretur
2. Isi jumlah barang yang diretur
3. Jumlah barang tidak boleh melebihi jumlah yang pernah dibeli sebelumnya
4. Klik simpan

Adapun codingnya seperti terlihat pada listing program di bawah ini.

Imports System.Data.OleDb
Public Class TransaksiReturPembelian

Sub NomorOtomatis()
CMD = New OleDbCommand("select * from tblreturpembelian where
No_Retur_beli in(select max(No_retur_beli) from tblreturpembelian)", CONN)
DR = CMD.ExecuteReader
DR.Read()
If Not DR.HasRows Then
lblnomorretur.Text = "RB" + Format(Now, "yyMMdd") + "01"
Else
☯M
UUSRUSMAWAN.C☯
If Microsoft.VisualBasic.Mid(DR.Item("No_Retur_beli"), 3, 6) <>
Format(Now, "yyMMdd") Then
lblnomorretur.Text = "RB" + Format(Now, "yyMMdd") + "01"
Else
lblnomorretur.Text =
Microsoft.VisualBasic.Right(DR.Item("No_Retur_beli"), 8) + 1
lblnomorretur.Text = "RB" + lblnomorretur.Text
End If
End If
End Sub

Sub TampilFakturBeli()
CMD = New OleDbCommand("Select * from tblpembelian", CONN)
DR = CMD.ExecuteReader
cbofakturbeli.Items.Clear()
Do While DR.Read
cbofakturbeli.Items.Add(DR.Item("Faktur_beli"))
Loop
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btntutup.Click
Me.Close()
End Sub

Private Sub TransaksiReturPembelian_Load(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles MyBase.Load
Call Koneksi()
Call NomorOtomatis()
Call TampilFakturBeli()
End Sub

Sub ListRESPON()
Dim cols As New DataGridViewComboBoxColumn
cols.Items.Add("TUKAR BARANG")
cols.Items.Add("KEMBALI UANG")
DGV.Columns.Add(cols)
cols.HeaderText = "Respon"
End Sub

Sub Hitungtransaksi()
Dim x As Integer = 0
For baris As Integer = 0 To DGV.RowCount - 1
x = x + DGV.Rows(baris).Cells(3).Value
lbljumlahretur.Text = x
Next
End Sub

Private Sub DGV_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles DGV.KeyPress
On Error Resume Next
If e.KeyChar = Chr(27) Then
DGV.Rows.RemoveAt(DGV.CurrentCell.RowIndex)
Call Hitungtransaksi()
End If
End Sub

Sub kOSONGKAN()
cbofakturbeli.Text = ""

19
☯M
UUSRUSMAWAN.C☯
lbljumlahretur.Text = ""
lblcarabeli.Text = ""
lblsisahutang.Text = ""
lbljatuhtempo.Text = ""
lblstatusbeli.Text = ""
lblnamasupplier.Text = ""
lbltanggalbeli.Text = ""
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnbatal.Click
Call kOSONGKAN()
DGV.Columns.Clear()
End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
cbofakturbeli.SelectedIndexChanged
CMD = New OleDbCommand("select * from tblpembelian where
faktur_beli='" & cbofakturbeli.Text & "'", CONN)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
lblstatusbeli.Text = DR.Item("status_beli")
lblcarabeli.Text = DR.Item("cara_beli")
lblsisahutang.Text = DR.Item("sisa_hutang")
lbljatuhtempo.Text = DR.Item("jth_tempo_beli")
lbltanggalbeli.Text = DR.Item("tgl_beli")
lbljumlahretur.Text = 0
Else
MsgBox("Nomor faktur tidak terdaftar")
End If

CMD = New OleDbCommand("select Nama_Supplier from


tblsupplier,tblpembelian where
tblpembelian.kode_supplier=tblsupplier.kode_supplier and faktur_beli='" &
cbofakturbeli.Text & "'", CONN)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
lblnamasupplier.Text = DR.Item("nama_supplier")
Else
MsgBox("Nomor faktur tidak terdaftar")
End If

DGV.Columns.Clear()
DA = New OleDbDataAdapter("select TBLdetailBeli.Kode_barang as
[Kode Barang],TblBarang.nama_Barang as [Nama Barang],Qty_beli as [Jml Beli]
from tblpembelian,tbldetailbeli,tblbarang where
tbldetailbeli.faktur_beli=tblpembelian.faktur_beli and
tbldetailbeli.kode_barang=tblbarang.kode_barang and
tbldetailbeli.faktur_beli= '" & cbofakturbeli.Text & "'", Conn)
DS = New DataSet
DA.Fill(DS)
DGV.DataSource = DS.Tables(0)
DGV.Columns(0).ReadOnly = True
DGV.Columns(1).ReadOnly = True
DGV.Columns(2).ReadOnly = True

20
☯M
UUSRUSMAWAN.C☯
DGV.Columns(1).Width = 200
DGV.Columns(2).Width = 75

DGV.Columns.Add("QTY", "Jml Retur")


DGV.Columns.Add("Alasan", "Alasan")
End Sub
End Class

3.15 Transaksi Penjualan


Transaksi penjualan hampir mirip dengan transaksi pembelian, perbedaannya adalah transaksi pembelian
akan menambah jumlah barang sedangkan transaksi penjualan akan mengurangi jumlah barang. Bentuk
form penjualan berikut codingnya yang dapat anda lihat pada bagian dibawah ini.

Proses dalam transaksi penjualan adalah sebagai berikut.


1. Pilih customer dalam combo
2. Pilih barang yang dijual dalam grid sebelah kanan
3. Jumlah jual dapat diedit sesuai kondisi
4. Isilah jumlah bayar
5. Jika jumlah bayar lebih kecil dari total harga, maka penjualannya dianggap secara kredit,
kemudian isilah jumlah hari jatuh temponya
6. Jika pembayaran lebih besar sama dengan total harga, maka penjualan dianggap tunai
7. Setelah itu klik simpan
Adapun codingnya seperti terlihat pada listing program di bawah ini.

Imports System.Data.OleDb

Public Class TransaksiPenjualan

Sub NomorOtomatis()
CMD = New OleDbCommand("select * from tblPenjualan where
Faktur_Jual in(select max(faktur_Jual) from tblPenjualan)", CONN)
☯M
UUSRUSMAWAN.C☯
DR = CMD.ExecuteReader
DR.Read()
If Not DR.HasRows Then
lblnomrofaktur.Text = "FJ" + Format(Now, "yyMMdd") + "01"
Else
If Microsoft.VisualBasic.Mid(DR.Item("Faktur_Jual"), 3, 6) <>
Format(Now, "yyMMdd") Then
lblnomrofaktur.Text = "FJ" + Format(Now, "yyMMdd") + "01"
Else
lblnomrofaktur.Text =
Microsoft.VisualBasic.Right(DR.Item("faktur_Jual"), 8) + 1
lblnomrofaktur.Text = "FJ" + lblnomrofaktur.Text
End If
End If
End Sub

Sub TampilCustomer()
CMD = New OleDbCommand("Select * from tblCustomer", CONN)
DR = CMD.ExecuteReader
cbocustomer.Items.Clear()
Do While DR.Read
cbocustomer.Items.Add(DR.Item("nama_Customer"))
Loop
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btntutup.Click
Me.Close()
End Sub

Sub TampilBarang()
DA = New OleDbDataAdapter("select * from tblbarang where stok>0",
Conn)
DS = New DataSet
DA.Fill(DS)
DGVBarang.DataSource = DS.Tables(0)
DGVBarang.ReadOnly = True
DGVBarang.Columns(2).Visible = False
DGVBarang.Columns(3).Visible = False
DGVBarang.Columns(4).Visible = False
DGVBarang.Columns(5).Visible = False
DGVBarang.Columns(6).Visible = False
End Sub

Private Sub TransaksiPenjualan_Load(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles MyBase.Load
Call Koneksi()
Call NomorOtomatis()
Call TampilCustomer()
Call TampilBarang()
End Sub

Sub Hitungtransaksi()
Dim x As Integer = 0

22
☯M
UUSRUSMAWAN.C☯
For baris As Integer = 0 To DGV.RowCount - 1
x = x + DGV.Rows(baris).Cells(3).Value
lbljumlahbarang.Text = x
Next

Dim y As Integer = 0
For baris As Integer = 0 To DGV.RowCount - 1
y = y + DGV.Rows(baris).Cells(4).Value
lbltotalharga.Text = y
Next

End Sub

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles txtdibayar.KeyPress
If e.KeyChar = Chr(13) Then
If Val(txtdibayar.Text) = Val(lbltotalharga.Text) Then
lblcarajual.Text = "CASH"
lblsisahutang.Text = 0
txttempo.Text = 0
lblkembali.Text = 0
txttempo.Enabled = False
lbljatuhtempo.Text = dtptanggal.Text
lblstatusjual.Text = "LUNAS"
btnsimpan.Focus()
ElseIf Val(txtdibayar.Text) > Val(lbltotalharga.Text) Then
lblcarajual.Text = "CASH"
lblsisahutang.Text = 0
txttempo.Text = 0
lblkembali.Text = Val(txtdibayar.Text) -
Val(lbltotalharga.Text)
txttempo.Enabled = False
lbljatuhtempo.Text = dtptanggal.Text
lblstatusjual.Text = "LUNAS"
btnsimpan.Focus()
Else
lblcarajual.Text = "CREDIT"
lblsisahutang.Text = Val(lbltotalharga.Text) -
Val(txtdibayar.Text)
lblstatusjual.Text = "BELUM LUNAS"
lblkembali.Text = 0
txttempo.Enabled = True
txttempo.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 TextBox2_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles txttempo.KeyPress
If e.KeyChar = Chr(13) Then
Dim tambahhari As Integer = txttempo.Text
lbljatuhtempo.Text = DateAdd(DateInterval.Day, tambahhari,
Today)
btnsimpan.Focus()
End If
If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar =
vbBack) Then e.Handled = True

23
☯M
UUSRUSMAWAN.C☯
End Sub

Sub kOSONGKAN()
cbocustomer.Text = ""
lbljumlahbarang.Text = ""
lbltotalharga.Text = ""
lblcarajual.Text = ""
lblsisahutang.Text = ""
lbljatuhtempo.Text = ""
lblstatusjual.Text = ""
lblkodecustomer.Text = ""
lblkembali.Text = ""
txtdibayar.Text = ""
txttempo.Text = ""
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnbatal.Click
Call kOSONGKAN()
DGV.Rows.Clear()
End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
cbocustomer.SelectedIndexChanged
CMD = New OleDbCommand("select * from tblCustomer where
NAMA_Customer='" & cbocustomer.Text & "'", CONN)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
lblkodecustomer.Text = DR.Item("KODE_Customer")
Else
MsgBox("Kode Customer tidak terdaftar")
End If
End Sub

Private Sub DGVBarang_CellMouseClick(ByVal sender As Object, ByVal e As


System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles
DGVBarang.CellMouseClick
Dim baris As Integer = DGV.RowCount - 1

DGV.Rows.Add(DGVBarang.Rows(e.RowIndex).Cells(0).Value,
DGVBarang.Rows(e.RowIndex).Cells(1).Value,
DGVBarang.Rows(e.RowIndex).Cells(4).Value, 1)

TextBox1.Clear()
DGV.Rows(baris).Cells(4).Value = DGV.Rows(baris).Cells(2).Value *
DGV.Rows(baris).Cells(3).Value
Call Hitungtransaksi()
For barisatas As Integer = 0 To DGV.RowCount - 1
For barisbawah As Integer = barisatas + 1 To DGV.RowCount - 1
If DGV.Rows(barisbawah).Cells(0).Value =
DGV.Rows(barisatas).Cells(0).Value Then
DGV.Rows(barisatas).Cells(3).Value =
DGV.Rows(barisatas).Cells(3).Value + 1
DGV.Rows(barisatas).Cells(4).Value =
DGV.Rows(barisatas).Cells(2).Value * DGV.Rows(barisatas).Cells(3).Value
DGV.Rows.RemoveAt(barisbawah)

24
☯M
UUSRUSMAWAN.C☯
Call Hitungtransaksi()
Exit Sub
End If
Next
Next
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles TextBox1.TextChanged
DA = New OleDbDataAdapter("select * from tblbarang where
nama_barang like '%" & TextBox1.Text & "%' and stok>0", Conn)
DS = New DataSet
DA.Fill(DS)
DGVBarang.DataSource = DS.Tables(0)
DGVBarang.ReadOnly = True
DGVBarang.Columns(2).Visible = False
DGVBarang.Columns(3).Visible = False
DGVBarang.Columns(4).Visible = False
DGVBarang.Columns(5).Visible = False
DGVBarang.Columns(6).Visible = False

End Sub

Private Sub DGV_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles DGV.KeyPress
On Error Resume Next
If e.KeyChar = Chr(27) Then
DGV.Rows.RemoveAt(DGV.CurrentCell.RowIndex)
Call Hitungtransaksi()
End If

If e.KeyChar = Chr(13) Then


txtdibayar.Focus()
End If
End Sub
End Class

Adapun faktur transaksi penjualan terlihat pada gambar di bawah ini.


☯M
UUSRUSMAWAN.C☯
3.16 Retur Penjualan
Setelah membuat form penjualan, langkah berikutnya adalah membuat form retur penjualan berikut
codingnya yang dapat anda lihat pada bagian dibawah ini.

Proses dalam transaksi retur penjualan adalah sebagai berikut:


1. Pilih nomor faktur dalam combo
2. Isilah jumlah barang yang diretur (tidak lebih besar dari jumlah jual sebelumnya)
3. Isilah alasan retur barang tersebut
4. Klik simpan
Adapun coding retur penjualan dapat dilihat di bagian bawah.

Imports System.Data.OleDb

Public Class TransaksiReturPenjualan

Sub NomorOtomatis()
CMD = New OleDbCommand("select * from tblreturPenjualan where
No_Retur_Jual in(select max(No_retur_Jual) from tblreturPenjualan)", CONN)
DR = CMD.ExecuteReader
DR.Read()
If Not DR.HasRows Then
lblnomorreturjual.Text = "RJ" + Format(Now, "yyMMdd") + "01"
Else
If Microsoft.VisualBasic.Mid(DR.Item("No_Retur_Jual"), 3, 6) <>
Format(Now, "yyMMdd") Then
lblnomorreturjual.Text = "RJ" + Format(Now, "yyMMdd") +
"01"
Else
lblnomorreturjual.Text =
Microsoft.VisualBasic.Right(DR.Item("No_Retur_Jual"), 8) + 1
lblnomorreturjual.Text = "RJ" + lblnomorreturjual.Text
End If
☯M
UUSRUSMAWAN.C☯
End If
End Sub

Sub TampilFakturJual()
CMD = New OleDbCommand("Select * from tblPenjualan", CONN)
DR = CMD.ExecuteReader
cbofakturjual.Items.Clear()
Do While DR.Read
cbofakturjual.Items.Add(DR.Item("Faktur_Jual"))
Loop
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btntutup.Click
Me.Close()
End Sub

Private Sub TransaksiReturPenjualan_Load(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles MyBase.Load
Call Koneksi()
Call NomorOtomatis()
Call TampilFakturJual()
End Sub

Sub ListRESPON()
Dim cols As New DataGridViewComboBoxColumn
cols.Items.Add("TUKAR BARANG")
cols.Items.Add("KEMBALI UANG")
DGV.Columns.Add(cols)
cols.HeaderText = "Respon"
End Sub

Sub Hitungtransaksi()
Dim x As Integer = 0
For baris As Integer = 0 To DGV.RowCount - 1
x = x + DGV.Rows(baris).Cells(3).Value
lbljumlahretur.Text = x
Next
End Sub

Private Sub DGV_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles DGV.KeyPress
On Error Resume Next
If e.KeyChar = Chr(27) Then
DGV.Rows.RemoveAt(DGV.CurrentCell.RowIndex)
Call Hitungtransaksi()
End If
End Sub

Sub kOSONGKAN()
cbofakturjual.Text = ""
lbljumlahretur.Text = ""
lblcarajual.Text = ""
lblsisapiutang.Text = ""
lbljatuhtempo.Text = ""
lblstatusjual.Text = ""
lblnamacustomer.Text = ""

27
☯M
UUSRUSMAWAN.C☯
lbltanggaljual.Text = ""
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnbatal.Click
Call kOSONGKAN()
DGV.Columns.Clear()
End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
cbofakturjual.SelectedIndexChanged
CMD = New OleDbCommand("select * from tblPenjualan where
faktur_Jual='" & cbofakturjual.Text & "'", CONN)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
lblstatusjual.Text = DR.Item("status_Jual")
lblcarajual.Text = DR.Item("cara_Jual")
lblsisapiutang.Text = DR.Item("sisa_piutang")
lbljatuhtempo.Text = DR.Item("jth_tempo_Jual")
lbltanggaljual.Text = DR.Item("tgl_Jual")
lbljumlahretur.Text = 0
Else
MsgBox("Nomor faktur tidak terdaftar")
End If

CMD = New OleDbCommand("select Nama_customer from


tblcustomer,tblPenjualan where
tblPenjualan.kode_customer=tblcustomer.kode_customer and faktur_Jual='" &
cbofakturjual.Text & "'", CONN)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
lblnamacustomer.Text = DR.Item("nama_customer")
Else
MsgBox("Nomor faktur tidak terdaftar")
End If

DGV.Columns.Clear()
DA = New OleDbDataAdapter("select TBLdetailJual.Kode_barang as
[Kode Barang],TblBarang.nama_Barang as [Nama Barang],Qty_Jual as Jumlah
from tblPenjualan,tbldetailJual,tblbarang where
tbldetailJual.faktur_Jual=tblPenjualan.faktur_Jual and
tbldetailJual.kode_barang=tblbarang.kode_barang and
tbldetailJual.faktur_Jual= '" & cbofakturjual.Text & "'", Conn)
DS = New DataSet
DA.Fill(DS)
DGV.DataSource = DS.Tables(0)
DGV.Columns(0).ReadOnly = True
DGV.Columns(1).ReadOnly = True
DGV.Columns(2).ReadOnly = True

DGV.Columns(1).Width = 200
DGV.Columns(2).Width = 75

DGV.Columns.Add("QTY", "Jml Retur")

28
☯M
UUSRUSMAWAN.C☯
DGV.Columns.Add("Alasan", "Alasan")
End Sub
End Class

3.17 Bayar Utang


Setelah membuat form retur penjualan berikut codingnya, langkah berikutnya adalah membuat form
pembayaran utang akibat pembelian secara kredit berikut codingnya yang dapat anda lihat pada bagian
dibawah ini.

Proses dalam transaksi pembayaran utang adalah sebagai berikut:


1. Pilih nomor pembelian di bagian atas kanan dalam listbox
2. Isi jumlah pembayaran di bagian bawah sebelah kanan
3. Jika pembayaran langsung menekan enter berarti pembayaran akan langsung dilunasi dan nomor
faktur yang bersangkutan akan hilang dari list setelah disimpan
4. Jika pembayaran lebih kecil dari sisa utang maka utang akan tersisa dan nomor faktur beli masih
tampil dalam listbox
5. Klik simpan
Coding transaksi bayar utang dapat dilihat pada listing program di bawah ini.
Imports System.Data.OleDb

Public Class TransaksiBayarUtang

Sub NomorOtomatis()
CMD = New OleDbCommand("select * from tblbayarutang where
nomor_bayar in(select max(nomor_bayar) from tblbayarutang)", Conn)
DR = CMD.ExecuteReader
DR.Read()
If Not DR.HasRows Then
lblnomor.Text = "BY" + Format(Now, "yyMMdd") + "01"
Else
☯M
UUSRUSMAWAN.C☯
If Microsoft.VisualBasic.Mid(DR.Item("Nomor_bayar"), 3, 6) <>
Format(Now, "yyMMdd") Then
lblnomor.Text = "BY" + Format(Now, "yyMMdd") + "01"
Else
lblnomor.Text =
Microsoft.VisualBasic.Right(DR.Item("Nomor_bayar"), 8) + 1
lblnomor.Text = "BY" + lblnomor.Text
End If
End If
End Sub

Sub TampilFakturUtang()
CMD = New OleDbCommand("select * from tblpembelian where
status_beli='BELUM LUNAS'", Conn)
DR = CMD.ExecuteReader
ListBox1.Items.Clear()
Do While DR.Read
ListBox1.Items.Add(DR.Item("FAKTUR_BELI"))
Loop

End Sub

Sub InfoUtang()
If ListBox1.Items.Count = 0 Then
MsgBox("SEMUA UTANG SUDAH LUNAS")
Me.Close()
End If
End Sub
Private Sub TransaksiBayarUtang_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
Call Koneksi()
Call TampilFakturUtang()
Call NomorOtomatis()
Call InfoUtang()
End Sub

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
ListBox1.SelectedIndexChanged
On Error Resume Next
CMD = New OleDbCommand("select * from tblpembelian where
FAKTUR_BELI='" & ListBox1.Text & "'", Conn)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
lbltglbeli.Text = DR.Item("TGL_BELI")
lblkodesupplier.Text = DR.Item("KODE_SUPPLIER")
txtdibayar.Enabled = False
txttempo.Enabled = False
lbltotalharga.Text = DR.Item("TOTAL_BELI")
txtdibayar.Text = DR.Item("BAYAR_BELI")
lblcarabeli.Text = DR.Item("CARA_BELI")
lblsisahutang.Text = DR.Item("SISA_HUTANG")
txtjumlahbayar.Text = lblsisahutang.Text
txttempo.Text = DR.Item("TEMPO_HARI")

lbljatuhtempo.Text = DR.Item("JTH_TEMPO_BELI")

30
☯M
UUSRUSMAWAN.C☯
CMD = New OleDbCommand("select * from tblSUPPLIER where
KODE_SUPPLIER='" & lblkodesupplier.Text & "'", Conn)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
lblnamasupplier.Text = DR.Item("nAMA_SUPPLIER")
End If
DA = New OleDbDataAdapter("Select tbldetailbeli.kode_barang as
[Kode Barang],tblbarang.Nama_barang as [Nama Barang],tbldetailbeli.harga_bl
as [Harga],qty_beli as [Jumlah],subtotal_beli as [Total] from
tbldetailbeli,tblbarang where
tbldetailbeli.kode_barang=tblbarang.kode_barang and
tbldetailbeli.faktur_beli='" & ListBox1.Text & "'", Conn)
DS = New DataSet
DA.Fill(DS)
DGV.DataSource = DS.Tables(0)
DGV.Columns(1).Width = 200
DGV.ReadOnly = True

End If
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btntutup.Click
Me.Close()
End Sub

Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles txtjumlahbayar.KeyPress
If e.KeyChar = Chr(13) Then
If Val(txtjumlahbayar.Text) < Val(lblsisahutang.Text) Then
MsgBox("Sisa utang " & Val(lblsisahutang.Text) -
Val(txtjumlahbayar.Text) & "")
btnsimpan.Focus()
ElseIf Val(txtjumlahbayar.Text) = Val(lblsisahutang.Text) Then
MsgBox("Utang lunas")
btnsimpan.Focus()
ElseIf Val(txtjumlahbayar.Text) > Val(lblsisahutang.Text) Then
MsgBox("Utang lunas, uang kembali " &
Val(txtjumlahbayar.Text) - Val(lblsisahutang.Text) & "")
btnsimpan.Focus()
End If
End If
End Sub

Sub Bersihkan()
lbltglbeli.Text = ""
lblkodesupplier.Text = ""
lblnamasupplier.Text = ""
lbltotalharga.Text = ""
lblcarabeli.Text = ""
lblsisahutang.Text = ""
lbljatuhtempo.Text = ""
txtdibayar.Clear()
txttempo.Clear()
txtjumlahbayar.Clear()
DGV.Columns.Clear()
End Sub

31
☯M
UUSRUSMAWAN.C☯
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnbatal.Click
Call Bersihkan()

End Sub
End Class

3.18 Terima Piutang


Langkah berikutnya adalah membuat form penerimaan piutang akibat penjualan secara kredit kepada
customer berikut codingnya yang dapat anda lihat pada bagian dibawah ini.

Proses penerimaan piutang ini hampir sama dengan pembayaran utang, yaitu :
1. Piliha nomor faktur di dalam listbox sebelah kanan kanan atas
2. Kemudian isi jumlah penerimaannya
3. Jika jumlah penerimaan lebih kecil dari tagihan maka piutang akan menyisakan data dan nomor
faktur masih tampil dalam listbox
4. Jika jumlah penerimaan lebih besar sama dengan tagihan maka piutang dinyatakan lunas dan
nomor faktur akan hilang dari listbox
5. Klik simpan
Coding transaksi terima piutang dapat dilihat pada listing program di bawah ini.
Imports System.Data.OleDb

Public Class TransaksiTerimaPiutang

Sub NomorOtomatis()
CMD = New OleDbCommand("select * from TBLTerimaPiutang where
Nomor_Terima in(select max(Nomor_Terima) from TBLTerimaPiutang)", Conn)
DR = CMD.ExecuteReader
DR.Read()
If Not DR.HasRows Then
lnlnomorterima.Text = "TR" + Format(Now, "yyMMdd") + "01"
Else
☯M
UUSRUSMAWAN.C☯
If Microsoft.VisualBasic.Mid(DR.Item("Nomor_Terima"), 3, 6) <>
Format(Now, "yyMMdd") Then
lnlnomorterima.Text = "TR" + Format(Now, "yyMMdd") + "01"
Else
lnlnomorterima.Text =
Microsoft.VisualBasic.Right(DR.Item("Nomor_Terima"), 8) + 1
lnlnomorterima.Text = "TR" + lnlnomorterima.Text
End If
End If
End Sub

Sub TampilFakturPiutang()
CMD = New OleDbCommand("select * from TBLpenjualan where
Status_Jual='BELUM LUNAS'", Conn)
DR = CMD.ExecuteReader
ListBox1.Items.Clear()
Do While DR.Read
ListBox1.Items.Add(DR.Item("Faktur_Jual"))
Loop
End Sub

Sub InfoPiutang()
If ListBox1.Items.Count = 0 Then
MsgBox("SEMUA PIUTANG SUDAH LUNAS")
Me.Close()
End If
End Sub

Private Sub TransaksiterimaPiutang_Load(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles MyBase.Load
Call Koneksi()
Call TampilFakturPiutang()
Call NomorOtomatis()
Call InfoPiutang()
End Sub

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
ListBox1.SelectedIndexChanged
CMD = New OleDbCommand("select * from TBLpenjualan where
Faktur_Jual='" & ListBox1.Text & "'", Conn)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
lbltanggaljual.Text = DR.Item("TGL_Jual")
lblkodecustomer.Text = DR.Item("KODE_Customer")

txtdibayar.Enabled = False
txttempohari.Enabled = False
lbltotalharga.Text = DR.Item("TOTAL_Jual")
txtdibayar.Text = DR.Item("BAYAR_Jual")
lblcarajual.Text = DR.Item("CARA_Jual")
lblsisapiutang.Text = DR.Item("SISA_Piutang")
txtjumlahterima.Text = lblsisapiutang.Text
txttempohari.Text = DR.Item("jTH_TEMPO_JUAL")

lbljatuhtempo.Text = DR.Item("JTH_TEMPO_Jual")

33
☯M
UUSRUSMAWAN.C☯
CMD = New OleDbCommand("select * from tblCustomer where
KODE_Customer='" & lblkodecustomer.Text & "'", Conn)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
lblnamacustomer.Text = DR.Item("nAMA_Customer")
End If

DA = New OleDbDataAdapter("Select tbldetailJual.kode_barang as


[Kode Barang],tblbarang.Nama_barang as [Nama Barang],tbldetailJual.harga_JL
as [Harga],qty_Jual as [Jumlah],subtotal_Jual as [Total] from
tbldetailJual,tblbarang where
tbldetailJual.kode_barang=tblbarang.kode_barang and
tbldetailJual.Faktur_Jual='" & ListBox1.Text & "'", Conn)
DS = New DataSet
DA.Fill(DS)
DGV.DataSource = DS.Tables(0)
DGV.ReadOnly = True
End If
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btntutup.Click
Me.Close()
End Sub

Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles txtjumlahterima.KeyPress
If e.KeyChar = Chr(13) Then
If Val(txtjumlahterima.Text) < Val(lblsisapiutang.Text) Then
MsgBox("Sisa piutang " & Val(lblsisapiutang.Text) -
Val(txtjumlahterima.Text) & "")
btnsimpan.Focus()
ElseIf Val(txtjumlahterima.Text) = Val(lblsisapiutang.Text)
Then
MsgBox("Utang lunas")
btnsimpan.Focus()
ElseIf Val(txtjumlahterima.Text) > Val(lblsisapiutang.Text)
Then
MsgBox("Utang lunas, uang kembali " &
Val(txtjumlahterima.Text) - Val(lblsisapiutang.Text) & "")
btnsimpan.Focus()
End If
End If
End Sub

Sub Bersihkan()
lbltanggaljual.Text = ""
lblkodecustomer.Text = ""
lblnamacustomer.Text = ""
lbltotalharga.Text = ""
lblcarajual.Text = ""
lblsisapiutang.Text = ""
lbljatuhtempo.Text = ""
txtdibayar.Clear()
txttempohari.Clear()
txtjumlahterima.Clear()
DGV.Columns.Clear()
End Sub

34
☯M
UUSRUSMAWAN.C☯

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnbatal.Click
Call Bersihkan()

End Sub
End Class

3.19 Laporan Master


Setelah selesai proses transaksi, selanjutnya adalah membuat laporan-laporan master. Laporan ini akan
ditarik dari sebuah form dengan bentuk seperti gambar di bawah ini.

Laporan ini terdiri dari laporan data user, barang, perkiraan, supplier dan customer.

3.19.1 Laporan Data User


Laporan master user sebagai pemakai aplikasi terlihat pada gambar berikut ini.

Perhatikan bagian header, data ini diambil dari tabel profil perusahaan. jika isi tabel ini diubah maka
seluruh laporan akan memiliki header yang sama. Listing programnya terlihat di bagian bawah berikut ini.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNUser.Click
cryRpt.Load("master User.rpt")
☯M
UUSRUSMAWAN.C☯
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.19.2 Laporan Data Barang


Laporan data barang yang dijadikan sumber transaksi jual beli dapat dilihat pada gambar di bawah ini.

listing programnya terlihat di bagian bawah berikut ini.


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNBarang.Click
cryRpt.Load("master Barang.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.19.3 Laporan Data Perkiraan


Laporan data perkiraan yang menjadi sumber dalam jurnal dapat dilihat pada gambar di bawah ini.
☯M
UUSRUSMAWAN.C☯

listing programnya terlihat di bagian bawah berikut ini.


Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNPerkiraan.Click
cryRpt.Load("master perkiraan.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.20 Laporan Pembelian


Laporan transaksi pembelian dibagi menjadi beberapa kriteria, diantaranya laporan harian, mingguan,
bulanan, laporan per faktur, laporan per status dan sejenisnya. Adapun gambar-gambarnya dapat dilihat
pada tampilan dibawah ini.

3.20.1 Laporan Harian


☯M
UUSRUSMAWAN.C☯
Bentuk laporan harian transaksi pembelian barang dapat dilihat pada gambar di bawah ini.

Gambar 3.29 Laporan Pembelian Harian

Listing programnya terlihat di bagian bawah berikut ini.


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNHarian.Click
GroupBox4.Dock = DockStyle.Fill
GroupBox4.Visible = True
GroupBox5.Visible = False
CRV.ReportSource = Nothing
CRV.SelectionFormula = "totext({tblpembelian.tgl_beli}) ='" &
DTPHarian.Text & "'"
cryRpt.Load("pembelian umum.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

Coding diatas menjelaskan bahwa daam form laporan pembelian ini terdapat dua objek besar yaitu
datagrid dan crystalreportviewer yang diatur kondisinya antara true dan false agar tampilan menjadi lebih
proporsional.

3.20.2 Laporan Periodik


laporan periodik yang biasa disebut dengan laporan mingguan dapat dilihat bentunya pada gambar
dibawah ini.

listing programnya terlihat di bagian bawah berikut ini.


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNPeriodik.Click
GroupBox4.Dock = DockStyle.Fill
GroupBox4.Visible = True
GroupBox5.Visible = False
CRV.ReportSource = Nothing
☯M
UUSRUSMAWAN.C☯
CRV.SelectionFormula = "totext({tblpembelian.tgl_beli}) >='" &
DTPAwal.Text & "' and totext({tblpembelian.tgl_beli}) <='" & DTPAkhir.Text
& "'"
cryRpt.Load("pembelian umum.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.20.3 Laporan Bulanan


Laporan bulanan dalam transaksi pembelian barang juga dapat dilihat pada bentuk gambar berikut ini.

listing programnya terlihat di bagian bawah berikut ini.


Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNBulanan.Click
GroupBox4.Dock = DockStyle.Fill
GroupBox4.Visible = True
GroupBox5.Visible = False
CRV.ReportSource = Nothing
CRV.SelectionFormula = "month({tblpembelian.tgl_beli}) = (" &
Month(DTPBulanan.Value) & ") and year({tblpembelian.tgl_beli}) = (" &
Year(DTPBulanan.Value) & ")"
cryRpt.Load("pembelian umum.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub
Catatan :
Bentuk laporan harian, periodik dan bulanan hampir mirip karena transaksi dilakukan pada hari yang sama.

3.20.4 Laporan Per Nomor Faktur


Bentuk laporan pembelian per nomor faktur tampak berbeda dengan laporan harian, mingguan dan
bulanan. Gambarnya dapat di lihat dibawah ini.
☯M
UUSRUSMAWAN.C☯

listing programnya terlihat di bagian bawah berikut ini.


Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
GroupBox4.Dock = DockStyle.Fill
GroupBox4.Visible = True
GroupBox5.Visible = False
CRV.ReportSource = Nothing
CRV.SelectionFormula = "{tblpembelian.faktur_beli} = '" &
ListBox1.Text & "'"
cryRpt.Load("pembelian per faktur.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.20.5 Laporan Per Supplier


laporan pembelian barang per nama supplier terlihat pada tampilan berikut ini.

listing programnya terlihat di bagian bawah berikut ini.


Private Sub ListBox2_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged
GroupBox4.Dock = DockStyle.Fill
☯M
UUSRUSMAWAN.C☯
GroupBox4.Visible = True
GroupBox5.Visible = False
CRV.ReportSource = Nothing
CRV.SelectionFormula = "{tblsupplier.nama_supplier} = '" &
ListBox2.Text & "'"
cryRpt.Load("pembelian per supplier.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.20.6 Laporan Per Cara Pembelian


Laporan pembelian berdasarkan cara beli (tunai atau kredit) dapat dilihat pada gambar di bawah ini.

Listing programnya terlihat di bagian bawah berikut ini.


Private Sub ListBox3_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ListBox3.SelectedIndexChanged
GroupBox4.Dock = DockStyle.Fill
GroupBox4.Visible = True
GroupBox5.Visible = False
CRV.ReportSource = Nothing
CRV.SelectionFormula = "{tblpembelian.cara_beli} = '" &
ListBox3.Text & "'"
cryRpt.Load("pembelian umum.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.20.7 Laporan Per Status Pembelian


laporan pembelian per status (lunas atau belum lunas) terlihat pada gambar berikut ini.

Listing programnya terlihat di bagian bawah berikut ini.


☯M
UUSRUSMAWAN.C☯
Private Sub ListBox4_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ListBox4.SelectedIndexChanged
GroupBox4.Dock = DockStyle.Fill
GroupBox4.Visible = True
GroupBox5.Visible = False
CRV.ReportSource = Nothing
CRV.SelectionFormula = "{tblpembelian.status_beli} = '" &
ListBox4.Text & "'"
cryRpt.Load("pembelian umum.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.20.8 Export Data Pembelian Ke Excel


Transaksi pembelian ini dapat diexport ke bentuk excel, codingnya dapat dilihat di bagian bawah.
Imports System.Data.OleDb
Imports Excel = Microsoft.Office.Interop.Excel
Imports System.IO.Directory
Imports Microsoft.Office.Interop

Public Class LaporanPembelian

Dim NamaFileAccess As String = "tblpembelian"


Dim NamaFileExcel As String
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TXTExport.KeyPress
If e.KeyChar = Chr(13) Then
Try
CMD = New OleDbCommand("SELECT * INTO [Excel 8.0;DATABASE="
& TXTExport.Text & ".xls;].[" & TXTExport.Text & "] from [" &
NamaFileAccess & "]", Conn)
CMD.ExecuteNonQuery()
NamaFileExcel = Application.StartupPath + "\" +
TXTExport.Text + ".xls"
If MessageBox.Show("Konversi ke excel sukses, Buka file
hasil konversi", "", MessageBoxButtons.YesNo) =
Windows.Forms.DialogResult.Yes Then
System.Windows.Forms.Help.ShowHelp(Me, NamaFileExcel)
End If

Catch ex As Exception
MsgBox("Nama file tersebut sudah ada")
Dim pesan = InputBox("tulis nama file alternatif")
CMD = New OleDbCommand("SELECT * INTO [Excel 8.0;DATABASE="
& pesan & ".xls;].[" & NamaFileAccess & "] from [" & NamaFileAccess & "]",
Conn)
CMD.ExecuteNonQuery()
If MessageBox.Show("Konversi ke excel sukses, Buka file
hasil konversi", "", MessageBoxButtons.YesNo) =
Windows.Forms.DialogResult.Yes Then
NamaFileExcel = Application.StartupPath + "\" + pesan +
".xls"
System.Windows.Forms.Help.ShowHelp(Me, NamaFileExcel)
End If
End Try

42
☯M
UUSRUSMAWAN.C☯
End If
End Sub

3.21 Laporan Retur Pembelian


Laporan transaksi retur pembelian dikelompokan menjadi beberapa kriteria seperti laporan pembelian
antara lain :
1. Laporan harian
2. Laporan periodik
3. Laporan bulanan
4. Laporan per nomor faktur
5. Laporan per supplier
6. Dan laporan berupa data excel hasil export
Semua laporan yang disebutkan diatas dapat dilihat dalam aplikasi.

3.22 Laporan Penjualan


Laporan transaksi penjualan ditampilkan melalui menu yang dapat dilihat pada gambar di bawah ini.

Laporan penjualan terdiri dari beberapa kriteria antara lain, laporan harian, mingguan, bulanan, per nomor
faktur, per customer dan lain-lain.

3.22.1 Laporan Penjualan Harian


Laporan transaksi penjualan harian dapat dilihat pada gambar di bawah ini.

Listing programnya terlihat di bagian bawah berikut ini.


☯M
UUSRUSMAWAN.C☯
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNHarian.Click
GroupBox4.Dock = DockStyle.Fill
GroupBox4.Visible = True
GroupBox5.Visible = False
CRV.ReportSource = Nothing

CRV.SelectionFormula = "totext({tblPenjualan.tgl_Jual}) ='" &


DTPHarian.Text & "'"
cryRpt.Load("Penjualan umum.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.22.2 Laporan Penjualan Periodik


Laporan transaksi penjualan periodik dapat dilihat pada gambar di bawah ini.

listing programnya terlihat di bagian bawah berikut ini.


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNPeriodik.Click
GroupBox4.Dock = DockStyle.Fill
GroupBox4.Visible = True
GroupBox5.Visible = False
CRV.ReportSource = Nothing
CRV.SelectionFormula = "totext({tblPenjualan.tgl_Jual}) >='" &
DTPAwal.Text & "' and totext({tblPenjualan.tgl_Jual}) <='" & DTPAkhir .Text
& "'"
cryRpt.Load("Penjualan umum.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.22.3 Laporan Penjualan Bulanan


Laporan transaksi penjualan bulanan dilihat pada gambar di bawah ini.
☯M
UUSRUSMAWAN.C☯
listing programnya terlihat di bagian bawah berikut ini.
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNBulanan.Click
GroupBox4.Dock = DockStyle.Fill
GroupBox4.Visible = True
GroupBox5.Visible = False
CRV.ReportSource = Nothing
CRV.SelectionFormula = "month({tblPenjualan.tgl_Jual}) = (" &
Month(DTPBulanan.Text) & ") and year({tblPenjualan.tgl_Jual}) = (" &
Year(DTPBulanan.Text) & ")"
cryRpt.Load("Penjualan umum.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.22.4 Laporan Penjualan Per Nomor Faktur


Laporan transaksi penjualan per nomor faktur dapat dilihat pada gambar di bawah ini.

listing programnya terlihat di bagian bawah berikut ini.


Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
GroupBox4.Dock = DockStyle.Fill
GroupBox4.Visible = True
GroupBox5.Visible = False
CRV.ReportSource = Nothing
CRV.SelectionFormula = "{tblPenjualan.faktur_Jual} = '" &
ListBox1.Text & "'"
cryRpt.Load("Penjualan per faktur.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.22.5 Laporan Penjualan Per Customer


Laporan transaksi penjualan per customer dapat dilihat pada gambar di bawah ini.
☯M
UUSRUSMAWAN.C☯

Listing programnya terlihat di bagian bawah berikut ini.


Private Sub ListBox2_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged
GroupBox4.Dock = DockStyle.Fill
GroupBox4.Visible = True
GroupBox5.Visible = False
CRV.ReportSource = Nothing
CRV.SelectionFormula = "{tblCustomer.nama_Customer} = '" &
ListBox2.Text & "'"
cryRpt.Load("Penjualan per Customer.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.22.6 Laporan Per Cara Penjualan


Laporan transaksi penjualan berdasarkan cara penjualan dapat dilihat pada gambar di bawah ini.

listing programnya terlihat di bagian bawah berikut ini.


Private Sub ListBox3_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ListBox3.SelectedIndexChanged
GroupBox4.Dock = DockStyle.Fill
GroupBox4.Visible = True
GroupBox5.Visible = False
CRV.ReportSource = Nothing
CRV.SelectionFormula = "{tblPenjualan.cara_Jual} = '" &
ListBox3.Text & "'"
cryRpt.Load("Penjualan umum.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
☯M
UUSRUSMAWAN.C☯
CRV.RefreshReport()
End Sub

3.22.7 Laporan Penjualan Per Status


Laporan transaksi penjualan berdasarkan status dapat dilihat pada gambar di bawah ini.

Listing programnya terlihat di bagian bawah berikut ini.


Private Sub ListBox4_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
ListBox4.SelectedIndexChanged
GroupBox4.Dock = DockStyle.Fill
GroupBox4.Visible = True
GroupBox5.Visible = False
CRV.ReportSource = Nothing
CRV.SelectionFormula = "{tblPenjualan.status_Jual} = '" &
ListBox4.Text & "'"
cryRpt.Load("Penjualan umum.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.22.8 Export Data Ke Excel


Pembuatan laporan berbentuk excel hasil konversi diawali dengan menambah beberapa namespace berikut
ini.
Imports Excel = Microsoft.Office.Interop.Excel
Imports System.IO.Directory
Imports Microsoft.Office.Interop

Public Class LaporanPenjualan

Dim NamaFileAccess As String = "tblpenjualan"


Dim NamaFileExcel As String
..................................
Kemudian buatlah coding dibawah ini.
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TXTExport.KeyPress
If e.KeyChar = Chr(13) Then
Try
☯M
UUSRUSMAWAN.C☯
CMD = New OleDbCommand("SELECT * INTO [Excel 8.0;DATABASE="
& TXTExport.Text & ".xls;].[" & TXTExport.Text & "] from [" &
NamaFileAccess & "]", Conn)
CMD.ExecuteNonQuery()
NamaFileExcel = Application.StartupPath + "\" +
TXTExport.Text + ".xls"
If MessageBox.Show("Konversi ke excel sukses, Buka file
hasil konversi", "", MessageBoxButtons.YesNo) =
Windows.Forms.DialogResult.Yes Then
System.Windows.Forms.Help.ShowHelp(Me, NamaFileExcel)
End If

Catch ex As Exception
MsgBox("Nama file tersebut sudah ada")
Dim pesan = InputBox("tulis nama file alternatif")
CMD = New OleDbCommand("SELECT * INTO [Excel 8.0;DATABASE="
& pesan & ".xls;].[" & NamaFileAccess & "] from [" & NamaFileAccess & "]",
Conn)
CMD.ExecuteNonQuery()
If MessageBox.Show("Konversi ke excel sukses, Buka file
hasil konversi", "", MessageBoxButtons.YesNo) =
Windows.Forms.DialogResult.Yes Then
NamaFileExcel = Application.StartupPath + "\" + pesan +
".xls"
System.Windows.Forms.Help.ShowHelp(Me, NamaFileExcel)
End If
End Try
End If
End Sub

3.23 Laporan Retur Penjualan


Laporan transaksi retur penjualan dikelompokan menjadi beberapa kriteria seperti laporan retur pembelian
antara lain :
1. Laporan harian
2. Laporan periodik
3. Laporan bulanan
4. Laporan per nomor faktur
5. Laporan per customer
6. Dan laporan berupa data excel hasil export
Semua laporan yang disebutkan diatas dapat dilihat dalam aplikasi.

3.24 Laporan Keuangan


Laporan keuangan dari hasil transaksi pembelian, retur pembelian, penjualan, retur penjualan, pembayaran
utang dan penerimaan piutang ditampilkan dari menu di bawah ini.

48
☯M
UUSRUSMAWAN.C☯

3.24.1 Laporan Jurnal Harian


Laporan transaksi harian dapat anda lihat pada gambar di bawah ini.

Listing programnya dapat anda lihat di bagian bawah ini.


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
CRV.SelectionFormula = "totext({tbljurnal.tgl_Transaksi}) ='" &
DTPHarian.Text & "'"
cryRpt.Load("jurnal umum.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.24.2 Laporan Jurnal Bulanan


Laporan transaksi bulanan berupa jurnal terlihat pada gambar berikut.
☯M
UUSRUSMAWAN.C☯

Listing programnya dapat anda lihat di bagian bawah ini.


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
CRV.SelectionFormula = "month({tbljurnal.tgl_transaksi}) = (" &
Month(DTPBulanan.Text) & ") and year({tbljurnal.tgl_transaksi}) = (" &
Year(DTPBulanan.Text) & ")"
cryRpt.Load("jurnal umum.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.24.3 Laporan Buku Besar


Bentuk laporan buku besar terlohat pada gambar di bawah ini.

Listing programnya dapat anda lihat di bagian bawah ini.


Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
☯M
UUSRUSMAWAN.C☯
CRV.SelectionFormula = "{TBLPERKIRAAN.NAMA_PERKIRAAN} = '" &
ListBox1.Text & "'"
cryRpt.Load("BUKU BESAR.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

3.24.4 Laporan Neraca Saldo


Laporan neraca saldo dari semua transaksi dapat dilihat pada gambar di bawah ini.

Listing programnya dapat anda lihat di bagian bawah ini.


Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
CRV.SelectionFormula = "month({tbljurnal.tgl_transaksi}) = (" &
Month(DTPBulanan.Text) & ") and year({tbljurnal.tgl_transaksi}) = (" &
Year(DTPBulanan.Text) & ")"
cryRpt.Load("NECARA SALDO.rpt")
Call seting_laporan()
CRV.ReportSource = cryRpt
CRV.RefreshReport()
End Sub

Anda mungkin juga menyukai