Assalamu’alaikum Wr Wb
Selamat datang di Web Sibukngoding.com. Pada
Kesempatan kali ini saya akan melanjutkan pembuatan Aplikasi Penjualanmenggunakan Vb.net dan database MariaDb. Pada postingan kali ini merupakan
lanjutan dari postingan sebelumnya tentang Membuat Form Data Pemasok. Disini
akan dijelaskan sourcode yang akan digunakan di form Pengolahan Data Pemasok.
Untuk langkah penulisan sourcodenya sebagai
berikut:
1. Import
Data ODBC
Tekan F7 untuk masuk ke layar coding, kita import
dulu ODBC nya karena untuk koneksi kita menggunakan Connector ODBC. Tuliskan Source Code dibawah ini di bagian paling
atas.
Imports System.Data.Odbc
2. Sub
Bersihkan
Berfungsi untuk membersihkan bagian Textbox
Sub bersihkan()
TxtKodePemasok.Enabled = True
TxtKodePemasok.Focus()
TxtKodePemasok.Clear()
TxtNamaPemasok.Clear()
TxtAlamat.Clear()
TxtNoHp.Clear()
End Sub
3.Sub
Tampilkan Data
Untuk menampilkan data dari database ke
DataGridView
Sub tampilkan_data()
Koneksi()
DA = New OdbcDataAdapter("SELECT
* FROM pemasok", Conn)
DS = New DataSet
DA.Fill(DS, 0)
DGVpemasok.DataSource = DS.Tables(0)
Conn.Close()
End Sub
4. Sub Auto
Complete
Untuk membuat sugesti pada txtkodePemasok
Sub Autocomplete()
Koneksi()
CMD = New OdbcCommand("SELECT
kode_pemasok FROM pemasok", Conn)
RD = CMD.ExecuteReader
While RD.Read
With TxtKodepemasok
.AutoCompleteCustomSource.Add(RD(0).ToString)
.AutoCompleteMode = AutoCompleteMode.Suggest
.AutoCompleteSource = AutoCompleteSource.CustomSource
End With
End While
Conn.Close()
End Sub
5. Sub call
all
Untuk menggabungakan semua sub sehingga nanti
pemanggilan cukup sub ini saja yang akan dipanggil
Sub call_all()
bersihkan()
tampilkan_data()
Autocomplete()
End Sub
6. Event
Form load
Klik 2x pada bagian form Pemasok kemudian ketikkan
coding berikut:
Private Sub FormPemasok_Load(sender As Object, e As EventArgs) Handles Me.Load
call_all()
End Sub
7. Event
KeyPress pada TxtNoHp
Membuat Text NoHp
hanya dapat diinput dengan Angka. Event yang digunakan adalah KeyPress
Private Sub TxtNoHp_KeyPress(sender As Object, e As KeyPressEventArgs) Handles
TxtNoHp.KeyPress
'agar
cuma angka yang bisa diinputkan
If Not IsNumeric(e.KeyChar) And e.KeyChar <> Chr(13) And
e.KeyChar <> vbBack Then e.Handled = True
End Sub
8. Event
KeyDown Pada txtkodePemasok
Bertujuan untuk mengisi data yang ada pada tabel Pemasok
ke TextBox-TextBox yang lainnya setelah txtkodePemasok diisi lalu ditekan
Enter. Event ini dibuat di txtkodePemasok pada event KeyDown. Klik pada bagian (General) pilih txtkodePemasok, kemudian pada bagian (Declaration) pilih KeyDown.
Ketikkan coding berikut.
Private Sub TxtKodePemasok_KeyDown(sender As Object, e As KeyEventArgs) Handles
TxtKodePemasok.KeyDown
If e.KeyCode = Keys.Enter Then
Koneksi()
CMD = New OdbcCommand("SELECT * FROM pemasok WHERE kode_pemasok =
'" + TxtKodePemasok.Text + "'",
Conn)
RD = CMD.ExecuteReader
If RD.Read Then
TxtKodePemasok.Text =
RD(0).ToString
TxtNamaPemasok.Text =
RD(1).ToString
TxtAlamat.Text = RD(2).ToString
TxtNoHp.Text = RD(3).ToString
End If
Conn.Close()
TxtNamaPemasok.Focus()
End If
End Sub
9. Fasilitas
Pencarian
Fasilitas pencarian ini mungkin diperlukan,
terlebih lagi jika data mencapai ribuan. Sangat tidak efektif jika mencari data
satu persatu. Pencarian ini diletakkan pada txtcari yang letaknya dibawah
button, jika mengetikan Kode Pemasok atau nama Pemasok maka data langsung
tersortir pada bagian DataGridView. Evetnnya adalah TextChanged. Double klik
saja pada bagian txtcari lalu ketikkan coding berikut.
Private Sub txtcari_TextChanged(sender As Object, e As EventArgs) Handles
txtcari.TextChanged
Try
Koneksi()
DA = New OdbcDataAdapter("SELECT
* FROM pemasok WHERE kode_pemasok LIKE '%" +
txtcari.Text + "%' or nama_pemasok
LIKE '%" + txtcari.Text + "%'",
Conn)
DS = New DataSet
DA.Fill(DS, 0)
DGVpemasok.DataSource =
DS.Tables(0)
Conn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
10. Event
CellClick pada DataGridView
Saat data yang diklik pada DataGridView, maka akan
otomatis tampil pada tiap-tiap TextBox. Event yang digunakan adalah CellClick. Pada bagian (General) pilih DGVPemasok (DataGridView), kemudian pada bagian (Declaration) pilih CellClick. Setelah itu ketikkan coding
berikut ini
Private Sub DGVpemasok_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DGVpemasok.CellClick
Try
Dim i = e.RowIndex
Koneksi()
CMD = New OdbcCommand("SELECT * FROM pemasok WHERE kode_pemasok =
'" + DGVpemasok.Item(0,
i).Value + "'", Conn)
RD = CMD.ExecuteReader
If RD.HasRows Then
TxtKodePemasok.Text =
RD(0).ToString
TxtNamaPemasok.Text =
RD(1).ToString
TxtAlamat.Text = RD(2).ToString
TxtNoHp.Text = RD(3).ToString
End If
Conn.Close()
TxtKodePemasok.Enabled = False
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
11. Event
Click pada tombol Simpan
Double Click tombol simpan kemudian ketikkan coding
dibawah ini:
Private Sub btsimpan_Click(sender As Object, e As EventArgs) Handles
btsimpan.Click
Try
'validasi
jika data masih kosong
If TxtKodePemasok.Text = "" Then
MsgBox("Isi terlebih dahulu Kode pemasok")
ElseIf TxtNamaPemasok.Text = "" Then
MsgBox("Isi terlebih dahulu Nama pemasok")
ElseIf TxtAlamat.Text = "" Then
MsgBox("Isi terlebih dahulu Alamat pemasok")
ElseIf TxtNoHp.Text = "" Then
MsgBox("Isi terlebih dahulu No HP pemasok")
Else
Koneksi()
CMD = New OdbcCommand("SELECT kode_pemasok FROM pemasok WHERE
kode_pemasok = '" +
TxtKodePemasok.Text + "'", Conn)
RD = CMD.ExecuteReader
RD.Read()
If Not RD.HasRows Then
Koneksi()
'program untuk simpan data
CMD = New OdbcCommand("INSERT INTO pemasok VALUES (?,?,?,?)", Conn)
With CMD
.Parameters.AddWithValue("?", TxtKodePemasok.Text)
.Parameters.AddWithValue("?",
TxtNamaPemasok.Text)
.Parameters.AddWithValue("?", TxtAlamat.Text)
.Parameters.AddWithValue("?", TxtNoHp.Text)
.ExecuteNonQuery()
End With
Conn.Close()
Else
Koneksi()
'program untuk hapus data
CMD = New OdbcCommand("UPDATE pemasok set nama_pemasok=?, alamat=?,
no_hp=? WHERE kode_pemasok=?", Conn)
With CMD
.Parameters.AddWithValue("?", TxtNamaPemasok.Text)
.Parameters.AddWithValue("?", TxtAlamat.Text)
.Parameters.AddWithValue("?", TxtNoHp.Text)
.Parameters.AddWithValue("?", TxtKodePemasok.Text)
.ExecuteNonQuery()
End With
Conn.Close()
End If
Conn.Close()
call_all()
TxtKodePemasok.Enabled = True
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
12. Event
Click pada tombol Hapus
Double Click tombol hapus kemudian ketikkan coding
dibawah ini:
Private Sub bthapus_Click(sender As Object, e As EventArgs) Handles bthapus.Click
If TxtKodePemasok.Text = "" Then
MsgBox("Isi terlebih dahulu kode pemasok")
ElseIf MsgBox("Apakah
Anda yakin ingin menghapus data ini?", MsgBoxStyle.YesNo)
= MsgBoxResult.Yes Then
Try
Koneksi()
'program
untuk hapus data
CMD = New OdbcCommand("DELETE FROM pemasok WHERE kode_pemasok
='" + TxtKodePemasok.Text + "'",
Conn)
CMD.ExecuteNonQuery()
Conn.Close()
call_all()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
bersihkan()
End If
End Sub
13. Event
Click pada Tombol Batal
Double Click pada tombol batal kemudian ketikkan
coding dibawah ini:
Private Sub btbatal_Click(sender As Object, e As EventArgs) Handles btbatal.Click
call_all()
End Sub
14. Event
Click pada Tombol Keluar
Double click pada tombol keluar kemudian ketikkan
coding dibawah ini:
Private Sub btkeluar_Click(sender As Object, e As EventArgs) Handles
btkeluar.Click
Close()
End Sub
Untuk Full source Codenya sebagai berikut:
Imports System.Data.Odbc
'-------------------------
Public Class FormPemasok
Sub bersihkan()
TxtKodePemasok.Enabled = True
TxtKodePemasok.Focus()
TxtKodePemasok.Clear()
TxtNamaPemasok.Clear()
TxtAlamat.Clear()
TxtNoHp.Clear()
End Sub
'----------------------
Sub tampilkan_data()
Koneksi()
DA = New OdbcDataAdapter("SELECT
* FROM pemasok", Conn)
DS = New DataSet
DA.Fill(DS, 0)
DGVpemasok.DataSource = DS.Tables(0)
Conn.Close()
End Sub
'--------------------------------------
Sub Autocomplete()
Koneksi()
CMD = New OdbcCommand("SELECT
kode_pemasok FROM pemasok", Conn)
RD = CMD.ExecuteReader
While RD.Read
With TxtKodepemasok
.AutoCompleteCustomSource.Add(RD(0).ToString)
.AutoCompleteMode = AutoCompleteMode.Suggest
.AutoCompleteSource = AutoCompleteSource.CustomSource
End With
End While
Conn.Close()
End Sub
'----------------------------------
Sub call_all()
bersihkan()
tampilkan_data()
Autocomplete()
End Sub
'----------------------
Private Sub FormPemasok_Load(sender As Object, e As EventArgs) Handles Me.Load
call_all()
End Sub
'----------------------
Private Sub TxtKodePemasok_KeyDown(sender As Object, e As KeyEventArgs) Handles
TxtKodePemasok.KeyDown
If e.KeyCode = Keys.Enter Then
Koneksi()
CMD = New OdbcCommand("SELECT * FROM pemasok WHERE kode_pemasok =
'" + TxtKodePemasok.Text + "'",
Conn)
RD = CMD.ExecuteReader
If RD.Read Then
TxtKodePemasok.Text =
RD(0).ToString
TxtNamaPemasok.Text = RD(1).ToString
TxtAlamat.Text = RD(2).ToString
TxtNoHp.Text = RD(3).ToString
End If
Conn.Close()
TxtNamaPemasok.Focus()
End If
End Sub
'----------------------
Private Sub TxtNoHp_KeyPress(sender As Object, e As KeyPressEventArgs) Handles
TxtNoHp.KeyPress
'agar
cuma angka yang bisa diinputkan
If Not IsNumeric(e.KeyChar) And e.KeyChar <> Chr(13) And
e.KeyChar <> vbBack Then e.Handled = True
End Sub
'----------------------
Private Sub btsimpan_Click(sender As Object, e As EventArgs) Handles
btsimpan.Click
Try
'validasi
jika data masih kosong
If TxtKodePemasok.Text = "" Then
MsgBox("Isi terlebih dahulu Kode pemasok")
ElseIf TxtNamaPemasok.Text = "" Then
MsgBox("Isi terlebih dahulu Nama pemasok")
ElseIf TxtAlamat.Text = "" Then
MsgBox("Isi terlebih dahulu Alamat pemasok")
ElseIf TxtNoHp.Text = "" Then
MsgBox("Isi terlebih dahulu No HP pemasok")
Else
Koneksi()
CMD = New OdbcCommand("SELECT kode_pemasok FROM pemasok WHERE
kode_pemasok = '" +
TxtKodePemasok.Text + "'", Conn)
RD = CMD.ExecuteReader
RD.Read()
If Not RD.HasRows Then
Koneksi()
'program untuk simpan data
CMD = New OdbcCommand("INSERT INTO pemasok VALUES (?,?,?,?)", Conn)
With CMD
.Parameters.AddWithValue("?", TxtKodePemasok.Text)
.Parameters.AddWithValue("?", TxtNamaPemasok.Text)
.Parameters.AddWithValue("?",
TxtAlamat.Text)
.Parameters.AddWithValue("?", TxtNoHp.Text)
.ExecuteNonQuery()
End With
Conn.Close()
Else
Koneksi()
'program
untuk hapus data
CMD = New OdbcCommand("UPDATE pemasok set nama_pemasok=?, alamat=?,
no_hp=? WHERE kode_pemasok=?", Conn)
With CMD
.Parameters.AddWithValue("?", TxtNamaPemasok.Text)
.Parameters.AddWithValue("?", TxtAlamat.Text)
.Parameters.AddWithValue("?", TxtNoHp.Text)
.Parameters.AddWithValue("?", TxtKodePemasok.Text)
.ExecuteNonQuery()
End With
Conn.Close()
End If
Conn.Close()
call_all()
TxtKodePemasok.Enabled = True
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
'----------------------
Private Sub btbatal_Click(sender As Object, e As EventArgs) Handles btbatal.Click
call_all()
End Sub
'----------------------
Private Sub bthapus_Click(sender As Object, e As EventArgs) Handles bthapus.Click
If TxtKodePemasok.Text = "" Then
MsgBox("Isi terlebih dahulu kode pemasok")
ElseIf MsgBox("Apakah
Anda yakin ingin menghapus data ini?", MsgBoxStyle.YesNo)
= MsgBoxResult.Yes Then
Try
Koneksi()
'program
untuk hapus data
CMD = New OdbcCommand("DELETE FROM pemasok WHERE kode_pemasok
='" + TxtKodePemasok.Text + "'",
Conn)
CMD.ExecuteNonQuery()
Conn.Close()
call_all()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
bersihkan()
End If
End Sub
'----------------------
Private Sub btkeluar_Click(sender As Object, e As EventArgs) Handles
btkeluar.Click
Close()
End Sub
'----------------------
Private Sub DGVpemasok_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DGVpemasok.CellClick
Try
Dim i = e.RowIndex
Koneksi()
CMD = New OdbcCommand("SELECT * FROM pemasok WHERE kode_pemasok =
'" + DGVpemasok.Item(0,
i).Value + "'", Conn)
RD = CMD.ExecuteReader
If RD.HasRows Then
TxtKodePemasok.Text = RD(0).ToString
TxtNamaPemasok.Text =
RD(1).ToString
TxtAlamat.Text = RD(2).ToString
TxtNoHp.Text = RD(3).ToString
End If
Conn.Close()
TxtKodePemasok.Enabled = False
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
'----------------------
Private Sub txtcari_TextChanged(sender As Object, e As EventArgs) Handles
txtcari.TextChanged
Try
Koneksi()
DA = New OdbcDataAdapter("SELECT
* FROM pemasok WHERE kode_pemasok LIKE '%" +
txtcari.Text + "%' or nama_pemasok
LIKE '%" + txtcari.Text + "%'",
Conn)
DS = New DataSet
DA.Fill(DS, 0)
DGVpemasok.DataSource =
DS.Tables(0)
Conn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
Jika dijalankan, tampilan akhir form Pengolahan
Data Pemasokya seperti berikut:
Sampai disini pembahasan tentang Pengolahan Data Pemasok.
Anda tidak harus terpaku pada Coding di atas. Anda dapat menambahkan sendiri
kreasi coding Anda jika coding di atas dirasa masih kurang menurut Anda karena
coding diatas memang masih sederhana. Jika ada pertanyaan terkait pembuatan
Form Pengolahan Data Pemasok bisa ditanyakan lewat kolom komentar. Jika sudah
berhasil dalam pembuatan Form Pengolahan Data Pemasok, bisa lanjut ke pembuatan
Form lainnya.
Terimakasih atas kunjungannya, Selamat belajar dan
jangan mudah menyerah.
Wassalamu'alaikum Wr Wb
Comments
Post a Comment
- Berkomentarlah dengan bijak, Komentar akan di moderasi dahulu sebelum ditampilkan.