Pemrograman Visual I (VB)
STEKOM Semarang
v Buka kembali database DbPerpustakaan.mdb v Tambahkan tabel DafNota, dengan field-field sebagai berikut :
v Tambahkan tabel Transaksi, dengan field-field sebagai berikut :
v Tambahkan tabel TranBantu, dengan field-field sebagai berikut :
v Tambahkan Form Baru untuk pengisian transaksi peminjaman dan simpan dengan nama frmPinjam
[email protected]
10
Pemrograman Visual I (VB)
STEKOM Semarang
Komponen Form Frame Label
ComboBox TextBox
Frame1 Frame2 Label1 Label2 Label3 Label4 Label5 Label6 Label7 Label8 Combo1 Combo2 TextBox1 TextBox2 TextBox3 TextBox4 Textbox5 TextBox6 TextBox7 TextBox8
Adodc
Adodc1 Adodc2 Adodc3 Adodc4 Adodc5
DataGrid
CommandButton
CmdButton1 CmdButton2
CmdButton3 CmdButton4
Property Name Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Name Name Name Enabled Name Name Enabled Name Enabled Name Enabled Name Enabled Name Locked Name Locked Name Name Name Name Name Name Caption DataSource Name Caption Enabled Name Caption Enabled Name Caption Name Caption
Pengaturan frmPinjam Peminjaman Biodata Peminjam Daftar Buku No. Nota Tanggal Pinjam No. Anggota Alamat Kode Buku Pengarang Jml Buku Tanggal Kembali cbNoAgt cbKdBuku TxtNota False TxtTglPjm TxtNamaAgt False TxtAlamat False TxtJudul False TxtPengarang False TxtJml True TxtTglKbl True AdoBuku AdoAnggota AdoTransaksi AdoDafNota AdoTransBantu Datagrid1 DAFTAR BUKU AdoTransBantu CmdCatat Catat ! False CmdSimpan Simpan False CmdBaru Transaksi Baru CmdTutup &Tutup
ketik kode program berikut : 'Prosedur BukaDb untuk mengaktifkan Database Private Sub BukaDb() 'Isi semua properti ConString AdoDc dengan perintah yang sama For Each X In Me If TypeOf X Is Adodc Then X.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & App.Path & "\DbPerpustakaan.mdb;" & _ "Persist Security Info=False" X.CommandType = adCmdText End If Next End Sub 'prosedur kosongkan semua komponen Private Sub Kosongkan() 'kosongkan semua textbox For Each X In Me If TypeOf X Is TextBox Then X.Text = ""
[email protected]
11
Pemrograman Visual I (VB)
STEKOM Semarang
End If Next 'kosongkan combobox cbNoAgt.Text = "" cbKdBuku.Text = "" 'kosongkan isi tabel TransBantu With AdoTransBantu.Recordset If .RecordCount <> 0 Then .MoveFirst Do While Not .EOF .Delete adAffectCurrent .MoveNext Loop End If .Requery AdoTransBantu.Refresh End With 'isi textbox tgl pinjam dengan tgl sekarang & textbox jumlah dengan 0 txtTglPjm.Text = Format(Now, "DD-MM-YYYY") txtJml.Text = 0 End Sub 'prosedur pembuatan nomor nota Private Sub Auto() Dim Urutan As String * 6 Dim Hitung As Byte With AdoDafNota.Recordset If .RecordCount = 0 Then Urutan = "N00001" Else .MoveLast Hitung = Val(Right(!NoNota, 5)) + 1 Urutan = "N" & Right("00000" & Hitung, 5) End If txtNota.Text = Urutan End With End Sub 'prosedur untuk menghitung jumlah buku yang dipinjam 'dan tanggal kembali Private Sub JmlTglBuku() xjml = AdoTransBantu.Recordset.RecordCount txtJml.Text = xjml txtTglKbl.Text = Format((xjml * 3) + CDate(txtTglPjm.Text), "DD-MM-YYYY") End Sub 'prosedur form_load Private Sub Form_Load() 'aktifkan database dan isi recordsource pada masing-masing ado BukaDb AdoBuku.RecordSource = "Select * from Buku order by KodeBk" AdoBuku.Refresh AdoAnggota.RecordSource = "Select * from Anggota order by NoAgt" AdoAnggota.Refresh AdoTransaksi.RecordSource = "Select * from Transaksi order by NoNota" AdoTransaksi.Refresh AdoTransBantu.RecordSource = "Select * from TransBantu" AdoTransBantu.Refresh AdoDafNota.RecordSource = "Select * from DafNota Order By NoNota" AdoDafNota.Refresh 'isi combo box No. anggota On Error Resume Next Dim X, Y For X = 1 To AdoAnggota.Recordset.RecordCount cbNoAgt.AddItem AdoAnggota.Recordset!NoAgt
[email protected]
12
Pemrograman Visual I (VB)
STEKOM Semarang
AdoAnggota.Recordset.MoveNext Next X 'isi combo box Kode Buku For Y = 1 To AdoBuku.Recordset.RecordCount cbKdBuku.AddItem AdoBuku.Recordset!KodeBk AdoBuku.Recordset.MoveNext Next Y End Sub 'prosedur saat form aktif Private Sub Form_Activate() txtTglPjm.MaxLength = 10 Kosongkan End Sub 'prosedur tombol transaksi baru diklik Private Sub cmdBaru_Click() 'aktifkan textbox Nota dan Tgl Pinjam txtNota.Enabled = True txtTglPjm.Enabled = True Kosongkan 'kosongkan komponen-komponen Call Auto 'isi nomor nota cmdBaru.Enabled = False End Sub 'prosedur selesai pengisian No. Anggota Private Sub cbNoAgt_LostFocus() AdoAnggota.Recordset.Find "NoAgt='" & cbNoAgt.Text & "'", , adSearchForward, 1 If Not AdoAnggota.Recordset.EOF Then txtNamaAgt.Text = AdoAnggota.Recordset!NamaAgt txtAlamat.Text = AdoAnggota.Recordset!AlamatAgt Else MsgBox "No Anggota " & cbNoAgt.Text & " tidak ditemukan!", _ vbInformation, "Info" End If End Sub 'prosedure saat Combo Nomor Anggota diklik Private Sub cbNoAgt_Click() On Error Resume Next AdoAnggota.Recordset.MoveFirst 'pindahkan pointer ke urutan nomor anggota yang dipilih pada combo box AdoAnggota.Recordset.Move cbNoAgt.ListIndex txtNamaAgt.Text = AdoAnggota.Recordset!NamaAgt 'isi textbox Nama txtAlamat.Text = AdoAnggota.Recordset!AlamatAgt 'isi textbox alamat End Sub 'prosedure saat Combo Kode Buku diklik Private Sub cbKdBuku_Click() On Error Resume Next AdoBuku.Recordset.MoveFirst 'pindahkan pointer ke urutan kode buku yang dipilih pada combo box AdoBuku.Recordset.Move cbKdBuku.ListIndex txtJudul.Text = AdoBuku.Recordset!JudulBk 'isi textbox judul txtPengarang.Text = AdoBuku.Recordset!Pengarang 'isi textbox pengarang cmdCatat.Enabled = True 'tombol catat aktifkan End Sub 'prosedur tombol catat Private Sub cmdCatat_Click() 'periksa jumlah buku di tabel buku With AdoBuku.Recordset .Find "KodeBk='" & cbKdBuku.Text & "'", , adSearchForward, 1 If !JmlKeluar >= !Jumlah Then xpesan2 = MsgBox("Buku ini sedang dipinjam !", vbOKOnly, "Perhatian") cbKdBuku.SetFocus Exit Sub End If End With 'periksa jenis buku pada tabel trans bantu With AdoTransBantu.Recordset
[email protected]
13
Pemrograman Visual I (VB)
STEKOM Semarang
.Find "KodeBk='" & cbKdBuku.Text & "'", , adSearchForward, 1 If Not .EOF Then xpesan = MsgBox("Kode Buku " & cbKdBuku.Text & " sudah dicatat !", _ vbOKOnly + 32, "Perhatian") cbKdBuku.SetFocus Exit Sub Else .AddNew !KodeBk = cbKdBuku.Text !JudulBk = txtJudul.Text !Pengarang = txtPengarang.Text .Update .Requery AdoTransBantu.Refresh cmdSimpan.Enabled = True End If End With JmlTglBuku End Sub 'prosedur tombol simpan Private Sub CmdSimpan_Click() 'isikan tabel DafNota With AdoDafNota.Recordset .AddNew !NoNota = txtNota.Text !Status = True .Update .Requery End With AdoDafNota.Refresh 'Isikan tabel transaksi AdoTransBantu.Recordset.MoveFirst Do While Not AdoTransBantu.Recordset.EOF AdoTransaksi.Recordset.AddNew AdoTransaksi.Recordset!NoNota = txtNota.Text AdoTransaksi.Recordset!TglPinjam = CDate(Format(txtTglPjm.Text,"DD-MM-YYYY")) AdoTransaksi.Recordset!NoAgt = cbNoAgt.Text xkdbuku = AdoTransBantu.Recordset!KodeBk AdoTransaksi.Recordset!KodeBk = xkdbuku AdoTransaksi.Recordset.Update AdoTransaksi.Recordset.Requery AdoTransaksi.Refresh 'edit field jumlah keluar pada tabel buku AdoBuku.Recordset.Find "KodeBk='" & xkdbuku & "'", , adSearchForward, 1 AdoBuku.Recordset.UpdateBatch adAffectCurrent AdoBuku.Recordset!JmlKeluar = AdoBuku.Recordset!JmlKeluar + 1 AdoBuku.Recordset.Update AdoBuku.Recordset.Requery AdoBuku.Refresh AdoTransBantu.Recordset.MoveNext Loop Kosongkan cmdBaru.Enabled = True cmdSimpan.Enabled = False End Sub 'prosedur tombol tutup Private Sub cmdtutup_Click() Unload Me End Sub
[email protected]
14