Anda di halaman 1dari 13

Form Menu Utama

Public Class Utama

Point 1 (DataBuku.Show() = Menampilkan Form Buku


Me.hide() = Form Menu Disembunyikan,Jadi pada saat Form Buku Dibuka Maka Otomatis
Form Menu Akan Tertutup)

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


EventArgs) Handles BukuToolStripMenuItem.Click
DataBuku.Show()
Me.Hide()
End Sub

(Jawaban Ikuti Point 1 tinggal diganti Nama Datanya)


Private Sub MemberToolStripMenuItem_Click(ByVal sender As Object, ByVal e As
EventArgs) Handles MemberToolStripMenuItem.Click
DataAnggota.Show()
Me.Hide()
End Sub

(Jawaban Ikuti Point 1 tinggal diganti Nama Datanya)


Private Sub PeminjamanToolStripMenuItem1_Click(ByVal sender As Object, ByVal e As
EventArgs) Handles PeminjamanToolStripMenuItem1.Click
PinjamBuku.Show()
Me.Hide()
End Sub

(Jawaban Ikuti Point 1 tinggal diganti Nama Datanya)


Private Sub PengembalianToolStripMenuItem_Click(ByVal sender As Object, ByVal e As
EventArgs) Handles PengembalianToolStripMenuItem.Click
KembaliBuku.Show()
Me.Hide()
End Sub

(Jawaban Ikuti Point 1 tinggal diganti Nama Datanya)


(tidak ada Me.Hide() Karna Sifatnya Cuman Menampilkan Laporan Saja)
Private Sub PeminjamanToolStripMenuItem_Click(ByVal sender As Object, ByVal e As
EventArgs) Handles PeminjamanToolStripMenuItem.Click
LapPinjam.Show()
End Sub

(Jawaban Ikuti Point 1 tinggal diganti Nama Datanya)


(tidak ada Me.Hide() Karna Sifatnya Cuman Menampilkan Laporan Saja)
Private Sub PengembalianToolStripMenuItem1_Click(ByVal sender As Object, ByVal e
As EventArgs) Handles PengembalianToolStripMenuItem1.Click
LapKembali.Show()
End Sub

(Perintah Untuk Keluar Dari Aplikasi Dan Menutup Aplikasi)


Private Sub Utama_FormClosing(ByVal sender As Object, ByVal e As
FormClosingEventArgs) Handles MyBase.FormClosing
Application.Exit()
End Sub
Point 2 ( AxCrystalreport1 adalah Fungsi dsar untuk memanggil laporan crystal report
yang kita buat
Reportfilename Mendeteksi Nama Crystal report yg kita buat
RetrieveDataFiles adalah Pengambilan Data Dari Crystal Report yg kita buat)
Private Sub BukuToolStripMenuItem1_Click(ByVal sender As Object, ByVal e As
EventArgs) Handles BukuToolStripMenuItem1.Click
With AxCrystalReport1
.ReportFileName = Application.StartupPath & "\Rbuku.rpt"
.RetrieveDataFiles()
.WindowShowCloseBtn = True
.WindowState = Crystal.WindowStateConstants.crptMaximized
.Action = 1
End With
End Sub

Jawaban Ikuti Point 2


Private Sub MemberToolStripMenuItem1_Click(ByVal sender As Object, ByVal e As
EventArgs) Handles MemberToolStripMenuItem1.Click
With AxCrystalReport1
.ReportFileName = Application.StartupPath & "\Ranggota.rpt"
.RetrieveDataFiles()
.WindowShowCloseBtn = True
.WindowState = Crystal.WindowStateConstants.crptMaximized
.Action = 1
End With
End Sub
End Class

Form Login
(berfungsi Untuk Mengambil / Membaca Data Ms.acces)
Imports System.Data.OleDb

Public Class Form1

(Didalam form login pada saat kita jalankan maka TxtUsername,TxtPassword Akan Kosong
Dan Cursor akan Fokus di TxtUsername)
Private Sub Login_Load(ByVal sender As Object, ByVal e As EventArgs) Handles
MyBase.Load
txtUsername.Clear()
txtPassword.Clear()
txtUsername.Focus()
End Sub

(Pada Saat Kita tidak mengisi 2 Textbox Maka Akan muncul Pesan “Username Dan Password
Tidak Boleh Kosong”, Tapi kalau kita sdah mengisi TxtUsername dan TxtPAssword Dengan
Benar Maka Menu Utama Akan Muncul,Dan Kalau kita Salah mengisikan Username Atau
Password Maka Akan Tampil Pesan eror Lagi “Username atau Password Salah” Maka
TxtUsername dan Txt Password Kembali Kosong dan cursor Kembali Focus Di TxtUsername)
Private Sub btnLogin_Click(ByVal sender As Object, ByVal e As EventArgs) Handles
btnLogin.Click
Call koneksi()
If txtUsername.Text = "" And txtPassword.Text = "" Then
MsgBox("Username dan Password tidak boleh kosong!")
Else
CMD = New OleDbCommand("SELECT * FROM akun WHERE username='" &
txtUsername.Text & "' AND password='" & txtPassword.Text & "'", CONN)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows = True Then
Me.Hide()
Utama.Show()
Else
MsgBox("Username atau Password salah!")
txtUsername.Clear()
txtPassword.Clear()
txtUsername.Focus()
End If
End If
CONN.Close()
End Sub

Fungsi Dari Keypress Adalah Kita Bisa Menyembunyikan Password Kita


Private Sub txtPassword_KeyPress(ByVal sender As Object, ByVal e As
KeyPressEventArgs) Handles txtPassword.KeyPress
If Asc(e.KeyChar) = 13 Then
btnLogin.PerformClick()
End If
End Sub

Menutup Aplikasi
Private Sub Login_FormClosing(ByVal sender As Object, ByVal e As
FormClosingEventArgs) Handles MyBase.FormClosing
Application.Exit()
End Sub
End Class

Form Data Buku


(berfungsi Untuk Mengambil / Membaca Data Ms.acces)
Imports System.Data.OleDb

Public Class DataBuku

Fungsi Dari Sub KodeOtomatis Adalah Membuat id data tanpa kita isi maka secara
otomatis terisi sesuai urutan B + 001 = B001 dan Seterusnya)
Sub kodeOtomatis()
Call koneksi()
Try
Dim baca, urutan As String
Dim hitung As Long
baca = "SELECT id FROM buku WHERE id in (SELECT MAX(id) FROM buku)"
CMD = New OleDbCommand(baca, CONN)
DR = CMD.ExecuteReader()
DR.Read()
If Not DR.HasRows Then
urutan = "B" + "001"
Else
hitung = Microsoft.VisualBasic.Right(DR.GetString(0), 3) + 1
urutan = "B" + Microsoft.VisualBasic.Right("000" & hitung, 3)
End If
IDbuku.Text = urutan
Catch ex As Exception
MsgBox("Gagal load")
End Try
CONN.Close()
End Sub

Berfungsi Untuk Mengambil Data Buku dari Tbl Buku masuk ke datagridview
Sub tampilDataBuku()
Call koneksi()
sql = "SELECT id, judul, penulis, penerbit, tahun, qty FROM buku"
DA = New OleDbDataAdapter(sql, CONN)
CMD = New OleDbCommand(sql, CONN)
DS = New DataSet
DA.Fill(DS, "buku")
dgvBuku.DataSource = DS.Tables("buku")
CONN.Close()
End Sub

Berfungsi Untuk Memanggil Sub KodeOtomatis,TampilDataBuku,Clear


Sub semua()
Call kodeOtomatis()
Call tampilDataBuku()
Call clear()
End Sub

Berfungsi Untuk Mengosongkan TxtJudul,TxtPenulis,TxtPenerbit,TxtTahun,NumQty ny


Menjadi 0 BtnHapus dan BtnEdit Tidak Tampil,Dan BtnTambah Muncul
Sub clear()
txtJudul.Clear()
txtPenulis.Clear()
txtPenerbit.Clear()
txtTahun.Clear()
numQty.Value = 0
btnHapus.Enabled = False
btnEdit.Enabled = False
btnTambah.Enabled = True
End Sub

Pada Saat Kita Membuka Form Data Buku Maka Otomatis Sub Semua Akan Terpanggil,dari sub
KodeOtomatis,SubTampilDataBuku,Dan Sub Clear
Private Sub DataBuku_Load(ByVal sender As Object, ByVal e As EventArgs) Handles
MyBase.Load
Call semua()
End Sub

Berfungsi Untuk Keluar Dari Form Buku Tanpa Button Keluar,Langsung DI X


Private Sub DataBuku_FormClosing(ByVal sender As Object, ByVal e As
FormClosingEventArgs) Handles MyBase.FormClosing
Utama.Show()
End Sub

Sub Tambah Berfungsi Untuk Menyimpan Data yang kita inputkan sesuai textbox dan Secara
otomatis masuk di Field”Ms.acces dan ada pesan “Tambah Data Berhasil”,jika gagal atau
ada yang sama id maka secara otomatis keluar pesan “Gagal Menambahkan Data”
Sub tambah()
Call koneksi()
Try
sql = "INSERT INTO buku values('" & IDbuku.Text & "', '" & txtJudul.Text &
"', '" & txtPenulis.Text & "', '" & txtPenerbit.Text & "', '" & txtTahun.Text & "', '"
& numQty.Value & "')"
CMD = New OleDbCommand(sql, CONN)
CMD.ExecuteNonQuery()
MsgBox("Tambah data berhasil")
Call semua()
Catch ex As Exception
MsgBox("Gagal tambah data")
End Try
CONN.Close()
End Sub

Sub edit Berfungsi Untuk Merubah Data yang sudah ada dan secara otomatis di tbel buku
ms acces ikut berubah sesuai apa yang ingin kita rubah,kalau berhasil maka akan tampil
pesan “Berhasil Edit Data” dan jika Gagal Maka Akan Tampil Pesan “Gagal Edit Data”
Sub edit()
Call koneksi()
Try
sql = "UPDATE buku set judul = '" & txtJudul.Text & "', penulis = '" &
txtPenulis.Text & "', penerbit = '" & txtPenerbit.Text & "', tahun = '" &
txtTahun.Text & "', qty = '" & numQty.Value & "' WHERE id = '" & IDbuku.Text & "'"
CMD = New OleDbCommand(sql, CONN)
CMD.ExecuteNonQuery()
MsgBox("Berhasil edit data")
Call semua()
Catch ex As Exception
MsgBox("Gagal edit data")
End Try
CONN.Close()
End Sub

Sub Hapus Berfunsi Untuk Menghapus Data Di vs dan secara otomatis di tbl buku ms acces
akan terhapus,jika berhasil Maka akan Muncul Pesan eror “Berhasil Hapus Data” dan Jika
Gagal Maka Muncul Pesan eror “Gagal Hapus Data”
Sub hapus()
Call koneksi()
Try
sql = "DELETE * FROM buku WHERE id = '" & IDbuku.Text & "'"
CMD = New OleDbCommand(sql, CONN)
CMD.ExecuteNonQuery()
MsgBox("Berhasil hapus data")
Call semua()
Catch ex As Exception
MsgBox("Gagal hapus data")
End Try
CONN.Close()
End Sub

Private Sub DataGridView1_CellMouseClik Berfungsi Untuk Pada Saat Kita Mau mengedit
atau menghapus data yang ada Maka Setalh kita clik Otomatis Di Idbuku, txtJudul,
txtPenulis, txtPenerbit, txtTahun, numQty akan Muncul,dan tombol btnedit,btn,hapus
akan muncul dan,btntambah hilang tidak bisa diclik
Private Sub DataGridView1_CellMouseClick(ByVal sender As Object, ByVal e As
DataGridViewCellMouseEventArgs) Handles dgvBuku.CellMouseClick
IDbuku.Text = dgvBuku.Rows(e.RowIndex).Cells(0).Value
txtJudul.Text = dgvBuku.Rows(e.RowIndex).Cells(1).Value
txtPenulis.Text = dgvBuku.Rows(e.RowIndex).Cells(2).Value
txtPenerbit.Text = dgvBuku.Rows(e.RowIndex).Cells(3).Value
txtTahun.Text = dgvBuku.Rows(e.RowIndex).Cells(4).Value
numQty.Value = dgvBuku.Rows(e.RowIndex).Cells(5).Value
btnEdit.Enabled = True
btnHapus.Enabled = True
btnTambah.Enabled = False
End Sub

Berfungsi Untuk Memangiil Sub Tambah untuk Menyimpan Data


Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles
btnTambah.Click
Call tambah()
End Sub

Berfungsi Untuk Memangiil Sub edi untuk mengedit Data


Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles
btnEdit.Click
Call edit()
End Sub

Berfungsi Untuk Memangiil Sub hapus untuk Menghapus Data


Private Sub Button3_Click(ByVal sender As Object, ByVal e As EventArgs) Handles
btnHapus.Click
Call hapus()
End Sub

Berfungsi Untuk Memangiil Sub Semua untuk Menampilkan kodeOtomatis, tampilDataBuku,


clear()

Private Sub Button4_Click(ByVal sender As Object, ByVal e As EventArgs) Handles


btnReset.Click
Call semua()
End Sub
End Class

Form Data Anggota


(berfungsi Untuk Mengambil / Membaca Data Ms.acces)
Imports System.Data.OleDb

Public Class DataAnggota

Fungsi Dari Sub KodeOtomatis Adalah Membuat id data tanpa kita isi maka secara
otomatis terisi sesuai urutan A + 001 = A001 dan Seterusnya)
Sub kodeOtomatis()
Call koneksi()
Try
Dim urutan As String
Dim hitung As Long
sql = "SELECT id FROM anggota WHERE id in (SELECT MAX(id) FROM anggota)"
CMD = New OleDbCommand(sql, CONN)
DR = CMD.ExecuteReader()
DR.Read()
If Not DR.HasRows Then
urutan = "A" + "001"
Else
hitung = Microsoft.VisualBasic.Right(DR.GetString(0), 3) + 1
urutan = "A" + Microsoft.VisualBasic.Right("000" & hitung, 3)
End If
IDanggota.Text = urutan
Catch ex As Exception
MsgBox("Gagal load")
End Try
CONN.Close()
End Sub

Berfungsi Untuk Mengambil Data Anggota dari Tbl anggota masuk ke datagridview
Sub tampilDataAnggota()
Call koneksi()
sql = "SELECT id, nama, alamat, no_hp, status, no_kartu FROM anggota"
DA = New OleDbDataAdapter(sql, CONN)
CMD = New OleDbCommand(sql, CONN)
DS = New DataSet
DA.Fill(DS, "anggota")
dgvAnggota.DataSource = DS.Tables("anggota")
CONN.Close()
End Sub

Berfungsi Untuk Mengosongkan TxtNama,TxtAlamat,TxtHPt,TxtKartu, BtnHapus dan BtnEdit


Tidak Tampil,Dan BtnTambah Muncul
Sub clear()
txtNama.Clear()
txtAlamat.Clear()
txtHP.Clear()
txtKartu.Clear()
btnTambah.Enabled = True
btnEdit.Enabled = False
btnHapus.Enabled = False
End Sub

Berfungsi Untuk Memanggil Sub KodeOtomatis,TampilDataAnggota,Clear


Sub semua()
Call kodeOtomatis()
Call tampilDataAnggota()
Call clear()
End Sub

Berfungsi Untuk Keluar Dari Form Buku Tanpa Button Keluar,Langsung DI X


Private Sub DataAnggota_FormClosing(ByVal sender As Object, ByVal e As
FormClosingEventArgs) Handles MyBase.FormClosing
Utama.Show()
End Sub

Pada Saat Kita Membuka Form Data Anggota Maka Otomatis Sub Semua Akan Terpanggil,dari
sub KodeOtomatis,Sub TampilDataAnggota,Dan Sub Clear
Private Sub DataAnggota_Load(ByVal sender As Object, ByVal e As EventArgs) Handles
MyBase.Load
Call semua()
End Sub

Sub Tambah Berfungsi Untuk Menyimpan Data yang kita inputkan sesuai textbox dan Secara
otomatis masuk di Field”Ms.acces dan ada pesan “Tambah Data Berhasil”,jika gagal atau
ada yang sama id maka secara otomatis keluar pesan “Gagal Menambahkan Data”
Sub tambah()
Call koneksi()
Try
sql = "INSERT INTO anggota (id, nama, alamat, no_hp, status, no_kartu)
values('" & IDanggota.Text & "', '" & txtNama.Text & "', '" & txtAlamat.Text & "', '"
& txtHP.Text & "', '" & cbStatus.Text & "', '" & txtKartu.Text & "')"
CMD = New OleDbCommand(sql, CONN)
CMD.ExecuteNonQuery()
MsgBox("Tambah data berhasil")
Call semua()
Catch ex As Exception
MsgBox("Gagal tambah data")
End Try
End Sub

Sub edit Berfungsi Untuk Merubah Data yang sudah ada dan secara otomatis di tbel
Anggota ms acces ikut berubah sesuai apa yang ingin kita rubah,kalau berhasil maka
akan tampil pesan “Berhasil Edit Data” dan jika Gagal Maka Akan Tampil Pesan “Gagal
Edit Data”
Sub edit()
Call koneksi()
Try
sql = "UPDATE anggota set nama = '" & txtNama.Text & "', alamat = '" &
txtAlamat.Text & "', no_hp = '" & txtHP.Text & "', status = '" & cbStatus.Text & "',
no_kartu = '" & txtKartu.Text & "' WHERE id = '" & IDanggota.Text & "'"
CMD = New OleDbCommand(sql, CONN)
CMD.ExecuteNonQuery()
MsgBox("Berhasil edit data")
Call semua()
Catch ex As Exception
MsgBox("Gagal edit data")
End Try
End Sub

Sub Hapus Berfunsi Untuk Menghapus Data Di vs dan secara otomatis di tbl anggota ms
acces akan terhapus,jika berhasil Maka akan Muncul Pesan eror “Berhasil Hapus Data”
dan Jika Gagal Maka Muncul Pesan eror “Gagal Hapus Data”
Sub hapus()
Call koneksi()
Try
sql = "DELETE * FROM anggota WHERE id = '" & IDanggota.Text & "'"
CMD = New OleDbCommand(sql, CONN)
CMD.ExecuteNonQuery()
MsgBox("Berhasil hapus data")
Call semua()
Catch ex As Exception
MsgBox("Gagal hapus data")
End Try
End Sub

Private Sub DataGridView1_CellMouseClik Berfungsi Untuk Pada Saat Kita Mau mengedit
atau menghapus data yang ada Maka Setalh kita clik Otomatis Di Idanggota, txtnamal,
txtalamat, txthp, txtstatus, txtkartu akan Muncul,dan tombol btn edit,btn,hapus akan
muncul dan,btn tambah hilang tidak bisa diclik

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


DataGridViewCellMouseEventArgs) Handles dgvAnggota.CellMouseClick
IDanggota.Text = dgvAnggota.Rows(e.RowIndex).Cells(0).Value
txtNama.Text = dgvAnggota.Rows(e.RowIndex).Cells(1).Value
txtAlamat.Text = dgvAnggota.Rows(e.RowIndex).Cells(2).Value
txtHP.Text = dgvAnggota.Rows(e.RowIndex).Cells(3).Value
cbStatus.Text = dgvAnggota.Rows(e.RowIndex).Cells(4).Value
txtKartu.Text = dgvAnggota.Rows(e.RowIndex).Cells(5).Value
btnTambah.Enabled = False
btnEdit.Enabled = True
btnHapus.Enabled = True
End Sub

Berfungsi Untuk Memangiil Sub Tambah untuk Menyimpan Data


Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles
btnTambah.Click
Call tambah()
End Sub

Berfungsi Untuk Memangiil Sub edi untuk mengedit Data


Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles
btnEdit.Click
Call edit()
End Sub

Berfungsi Untuk Memangiil Sub hapus untuk hapus Data


Private Sub Button3_Click(ByVal sender As Object, ByVal e As EventArgs) Handles
btnHapus.Click
Call hapus()
End Sub

Berfungsi Untuk Memangiil Sub Semua untuk Menampilkan kodeOtomatis, tampilDataBuku,


clear()
Private Sub Button4_Click(ByVal sender As Object, ByVal e As EventArgs) Handles
btnReset.Click
Call semua()
End Sub
End Class

Form Peminjaman
Imports System.Data.OleDb

Public Class PinjamBuku

Fungsi Dari Sub KodeOtomatis Adalah Membuat id data tanpa kita isi maka secara
otomatis terisi sesuai urutan P + 001 = P001 dan Seterusnya)

Sub kodeOtomatis()
Call koneksi()
Try
Dim urutan As String
Dim hitung As Long
sql = "SELECT kode_pinjam FROM peminjaman WHERE kode_pinjam in (SELECT
MAX(kode_pinjam) FROM peminjaman)"
CMD = New OleDbCommand(sql, CONN)
DR = CMD.ExecuteReader()
DR.Read()
If Not DR.HasRows Then
urutan = "P" + "001"
Else
hitung = Microsoft.VisualBasic.Right(DR.GetString(0), 3) + 1
urutan = "P" + Microsoft.VisualBasic.Right("000" & hitung, 3)
End If
lblKodePinjam.Text = urutan
Catch ex As Exception
MsgBox("Gagal load")
End Try
CONN.Close()
End Sub

Sub tampilDataPeminjaman()
Call koneksi()
sql = "SELECT peminjaman.kode_pinjam, anggota.nama, buku.judul,
peminjaman.tgl_pinjam, peminjaman.tgl_kembali, peminjaman.qty FROM ((peminjaman INNER
JOIN anggota ON peminjaman.id_anggota = anggota.id) INNER JOIN buku ON
peminjaman.id_buku = buku.id)"
DA = New OleDbDataAdapter(sql, CONN)
CMD = New OleDbCommand(sql, CONN)
DS = New DataSet
DA.Fill(DS, "peminjaman")
dgvPinjam.DataSource = DS.Tables("peminjaman")
CONN.Close()
End Sub

Sub clear()
txtIDanggota.Clear()
txtIDbuku.Clear()
lblNama.ResetText()
lblJudul.ResetText()
dtPinjam.MinDate = DateTime.Today()
dtPinjam.Value = DateTime.Today()
dtKembali.Value = dtPinjam.Value.AddDays(6)
numQty.Value = 1
btnTambah.Enabled = True
btnHapus.Enabled = False
txtIDanggota.ReadOnly = False
txtIDbuku.ReadOnly = False
numQty.Enabled = True
txtIDanggota.Focus()
dtPinjam.Enabled = True
End Sub

Sub semua()
Call kodeOtomatis()
Call tampilDataPeminjaman()
Call clear()
End Sub

jika txtIdanggota dan txtIdbuku Ksong maka Muncul pesan "Tidak Boleh Kosong"
jika numQty melebihi jumlah buku yg tersedia Maka Muncul Pesan eror "Jumlah Buku
Melbihi jumlah yang tersedia
maka dari itu akan muncul id bukunya dan qty yg tersedia
kalau sesuai maka data yang diinputkan akan berhasil ditambah dan diupdate di tbl
peminjaman ms acces dan di aplikasi akan muncul pesan "Tambah Data Berhasil" dan jika
Gagal maka akan muncul Pesan “Gagatl Tambah Data”
Sub tambah()
Call koneksi()
Try
sql = "SELECT * FROM buku WHERE id = '" & txtIDbuku.Text & "'"
CMD = New OleDbCommand(sql, CONN)
DR = CMD.ExecuteReader
DR.Read()
If txtIDanggota.Text = "" And txtIDbuku.Text = "" Then
MsgBox("Tidak boleh kosong")
Call clear()
ElseIf numQty.Value > DR!qty Then
MsgBox("Jumlah buku yang dipinjam melebihi jumlah buku yang tersedia")
Call clear()
Else
Dim qtybaru As Single
qtybaru = DR!qty - numQty.Value
sql = "UPDATE buku SET qty = '" & qtybaru & "' WHERE id = '" &
txtIDbuku.Text & "'"
CMD = New OleDbCommand(sql, CONN)
CMD.ExecuteNonQuery()
sql = "INSERT INTO peminjaman VALUES('" & lblKodePinjam.Text & "', '"
& txtIDanggota.Text & "', '" & txtIDbuku.Text & "', '" & dtPinjam.Value & "', '" &
dtKembali.Value & "', '" & numQty.Value & "')"
CMD = New OleDbCommand(sql, CONN)
CMD.ExecuteNonQuery()
MsgBox("Tambah data berhasil")
Call semua()
End If
Catch ex As Exception
MsgBox("Gagal tambah data")
End Try
End Sub

Sub Hapus Berfungsi untuk Mengapus Data Yang sdah ada dan secara otomatis di
datagridview dan di tbl peminjaman ms acces, di aplikasi akan muncul pesan "Berhasil
Hapus Data" dan jika Gagal maka akan muncul Pesan “Gagat Hapus Data”
Sub hapus()
Call koneksi()
Try
Mengambil Data Dari tbl buku
sql = "SELECT * FROM buku WHERE judul = '" & lblJudul.Text & "'"
CMD = New OleDbCommand(sql, CONN)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows = True Then
Dim qtybaru As Single
qtybaru = DR!qty + numQty.Value
Menampilkan Qty dan Judul Buku
sql = "UPDATE buku SET qty = '" & qtybaru & "' WHERE judul = '" &
lblJudul.Text & "'"
CMD = New OleDbCommand(sql, CONN)
CMD.ExecuteNonQuery()
End If
sql = "DELETE * FROM peminjaman WHERE kode_pinjam = '" &
lblKodePinjam.Text & "'"
CMD = New OleDbCommand(sql, CONN)
CMD.ExecuteNonQuery()
MsgBox("Berhasil hapus data")
Call semua()
Catch ex As Exception
MsgBox("Gagal hapus data")
End Try
End Sub

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


FormClosingEventArgs) Handles MyBase.FormClosing
Utama.Show()
End Sub

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


EventArgs) Handles dtPinjam.ValueChanged
dtKembali.Value = dtPinjam.Value.AddDays(6)
End Sub

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


EventArgs) Handles numQty.ValueChanged
If numQty.Value < 1 Then
numQty.Value = 1
End If
End Sub
Private Sub PinjamBuku_Load(ByVal sender As Object, ByVal e As EventArgs) Handles
MyBase.Load
Call semua()
End Sub

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


DataGridViewCellMouseEventArgs) Handles dgvPinjam.CellMouseClick
lblKodePinjam.Text = dgvPinjam.Rows(e.RowIndex).Cells(0).Value
lblNama.Text = dgvPinjam.Rows(e.RowIndex).Cells(1).Value
lblJudul.Text = dgvPinjam.Rows(e.RowIndex).Cells(2).Value
dtPinjam.Text = dgvPinjam.Rows(e.RowIndex).Cells(3).Value
dtKembali.Text = dgvPinjam.Rows(e.RowIndex).Cells(4).Value
numQty.Value = dgvPinjam.Rows(e.RowIndex).Cells(5).Value
btnTambah.Enabled = False
btnHapus.Enabled = True
txtIDanggota.ReadOnly = True
txtIDbuku.ReadOnly = True
numQty.Enabled = False
dtPinjam.Enabled = False
End Sub

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


EventArgs) Handles txtIDanggota.TextChanged
Call koneksi()
If txtIDanggota.Text = "" Then
lblNama.ResetText()
Else
sql = "SELECT * FROM anggota WHERE id = '" & txtIDanggota.Text & "'"
CMD = New OleDbCommand(sql, CONN)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows = True Then
lblNama.Text = DR!nama
Else
lblNama.Text = "Tidak ditemukan!"
End If
End If
CONN.Close()
End Sub

Private Sub txtKodeBuku_TextChanged(ByVal sender As Object, ByVal e As EventArgs)


Handles txtIDbuku.TextChanged
Call koneksi()
If txtIDbuku.Text = "" Then
lblJudul.ResetText()
Else
sql = "SELECT * FROM buku WHERE id = '" & txtIDbuku.Text & "'"
CMD = New OleDbCommand(sql, CONN)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows = True Then
lblJudul.Text = DR!judul
Else
lblJudul.Text = "Tidak ditemukan!"
End If
End If
CONN.Close()
End Sub

Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles


btnTambah.Click
Call tambah()
End Sub

Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles


btnReset.Click
Call clear()
End Sub

Private Sub btnHapus_Click(ByVal sender As Object, ByVal e As EventArgs) Handles


btnHapus.Click
Call hapus()
End Sub
End Class

Anda mungkin juga menyukai