Form Login
(berfungsi Untuk Mengambil / Membaca Data Ms.acces)
Imports System.Data.OleDb
(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
Menutup Aplikasi
Private Sub Login_FormClosing(ByVal sender As Object, ByVal e As
FormClosingEventArgs) Handles MyBase.FormClosing
Application.Exit()
End Sub
End Class
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
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
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
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
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
Form Peminjaman
Imports System.Data.OleDb
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