Buka kembali database DbPerpustakaan.mdb Tambahkan tabel DafNota, dengan field-field sebagai berikut : Tambahkan tabel Transaksi, dengan field-field sebagai berikut : Tambahkan tabel TranBantu, dengan field-field sebagai berikut : Tambahkan Form Baru untuk pengisian transaksi peminjaman dan simpan dengan nama frmpinjam saufik@walla.com 10
Komponen Property Pengaturan Form Name frmpinjam Peminjaman Frame Frame1 Biodata Peminjam Frame2 Daftar Buku Label Label1 No. Nota Label2 Tanggal Pinjam Label3 No. Anggota Label4 Alamat Label5 Kode Buku Label6 Pengarang Label7 Jml Buku Label8 Tanggal Kembali ComboBox Combo1 Name cbnoagt Combo2 Name cbkdbuku TextBox TextBox1 Name TxtNota TextBox2 Name TxtTglPjm TextBox3 Name TxtNamaAgt TextBox4 Name TxtAlamat Textbox5 Name TxtJudul TextBox6 Name TxtPengarang TextBox7 Name Locked TxtJml True TextBox8 Name Locked TxtTglKbl True Adodc Adodc1 Name AdoBuku Adodc2 Name AdoAnggota Adodc3 Name AdoTransaksi Adodc4 Name AdoDafNota Adodc5 Name AdoTransBantu DataGrid Name DataSource Datagrid1 DAFTAR BUKU AdoTransBantu CommandButton ketik kode program berikut : CmdButton1 Name CmdButton2 Name CmdButton3 Name CmdButton4 Name CmdCatat Catat! CmdSimpan Simpan CmdBaru Transaksi Baru CmdTutup &Tutup '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=" X.CommandType = adcmdtext Next 'prosedur kosongkan semua komponen Private Sub Kosongkan() 'kosongkan semua textbox For Each X In Me If TypeOf X Is TextBox Then X.Text = "" saufik@walla.com 11
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 'isi textbox tgl pinjam dengan tgl sekarang & textbox jumlah dengan 0 txttglpjm.text = Format(Now, "DD-MM-YYYY") txtjml.text = 0 '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".MoveLast Hitung = Val(Right(!NoNota, 5)) + 1 Urutan = "N" & Right("00000" & Hitung, 5) txtnota.text = Urutan '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") '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" AdoDafNota.RecordSource = "Select * from DafNota Order By NoNota" AdoDafNota.Refresh 'isi combo box No. anggota Dim X, Y For X = 1 To AdoAnggota.Recordset.RecordCount cbnoagt.additem AdoAnggota.Recordset!NoAgt saufik@walla.com 12
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 'prosedur saat form aktif Private Sub Form_Activate() txttglpjm.maxlength = 10 Kosongkan 'prosedur tombol transaksi baru diklik Private Sub cmdbaru_click() 'aktifkan textbox Nota dan Tgl Pinjam txtnota. = True txttglpjm. = True Kosongkan 'kosongkan komponen-komponen Call Auto 'isi nomor nota cmdbaru. = '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 MsgBox "No Anggota " & cbnoagt.text & " tidak ditemukan!", _ vbinformation, "Info" 'prosedure saat Combo Nomor Anggota diklik Private Sub cbnoagt_click() 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 'prosedure saat Combo Kode Buku diklik Private Sub cbkdbuku_click() 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. = True 'tombol catat aktifkan '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 'periksa jenis buku pada tabel trans bantu With AdoTransBantu.Recordset saufik@walla.com 13
.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.AddNew!KodeBk = cbkdbuku.text!judulbk = txtjudul.text!pengarang = txtpengarang.text.update cmdsimpan. = True JmlTglBuku 'prosedur tombol simpan Private Sub CmdSimpan_Click() 'isikan tabel DafNota With AdoDafNota.Recordset.AddNew!NoNota = txtnota.text!status = True.Update 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 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 AdoBuku.Refresh AdoTransBantu.Recordset.MoveNext Loop Kosongkan cmdbaru. = True cmdsimpan. = 'prosedur tombol tutup Private Sub cmdtutup_click() Unload Me saufik@walla.com 14