Modul Pemrograman Basis Data e
Modul Pemrograman Basis Data e
Tujuan Materi: mahasiswa dapat database dengan menggunakan fasilitas ADODC untuk form tunggal Semua contoh pemrograman database pada modul ini didasarkan pada tabel dan relasi database berikut.
Database di atas merupakan database sederhana mengenai pembelian dan penjualan barang yang melibatkan transaksi master detail. Tabel master dari relasi database diatas adalah CUSTOMER, SUPPLIER, dan BARANG. Sedangkan tabel transaksinya adalah PENJUALAN dan PEMBELIAN, diikuti PENJUALAN_DETAIL dan PEMBELIAN_DETAIL yang merupakan detail dari masing-masing tabel transaksi yang berseuaian. Tabel PENJUALAN merupakan transaksi yang berkaitan dengan customer (penjualan barang kepada customer), sedangkan tabel PEMBELIAN merupakan transaksi yang berkaitan dengan supplier (pembelian barang dari supplier). 1.1 MENAMBAHKAN KOMPONEN ADODC
Ada dua cara yang dapat digunakan. Cara pertama, klik kanan ToolBox, kemudian klik Components. Atau melalui menu Project Components.
Gambar 1.1Window Komponen Kemudian pilih Microsoft ADO Data Contol 6.0, seperti pada gambar diatas dan tekan OK. Pada ToolBox akan muncul icon Tanda panah pada ADODC, merupakan tombol navigasi. .
Gambar 1.2 ADODC dalam Form 1.2 MENAMBAHKAN DATAGRID, DATALIST, DAN DATACOMBO
DataGrid ini digunakan untuk menampilkan data dari database dalam bentuk tabel. Sedangkan DataList dan DataCombo, memiliki fungsi serupa dengan ListBox dan ComboBox
Gambar 1.3 Menambahkan Komponen Gunakan cara yang sama seperti pada penambahan komponen ADODC, kemudian pilih Microsoft DataGrid Control 6.0 untuk DataGrid dan Microsoft DataList Control 6.0 untuk DataList dan DataCombo. Pada ToolBox akan muncul icon , , dan .
Gambar 1.4 DataGrid, DataList, dan DataCombo dalam Form 1.3 SETTING KONEKSI DAN TABLE PADA ADODC
tab
dalam
Property
Pages
ADODC
ini,
yaitu
General,
Pilih Microsoft Jet 4.0 OLE DB Provider, kemudian klik Next. 3. Isikan nama database yang digunakan.
Ubah Command Type menjadi adCmdTable. Dan pada Table or Stored Procedure Name, pilih tabel yang akan digunakan.
6. Klik OK dan ADODC siap digunakan.
Pilih Adodc1 pada DataSource. Pilih namaBarang pada DataField. DataFormat dapat diubah sesuai dengan kebutuhan.
langkah diatas.
3. Klik kanan pada DataGrid1, dan pilih Retrieve fields. Klik OK jika
muncul Dialog Box. Pada DataGrid1, akan muncul kolom dari tabel BARANG.
langkah diatas.
2. Tambahkan DataList dan DataCombo pada Form (DataList1 dan
DataCombo1).
lakukan langkah berikut: Pilih Adodc1 pada RowSource, BUKAN DataSource. Pilih salah satu nilai kolom dalam ListField (namaBarang).
10
11
Buat Project baru. Ubah nama Form1 menjadi frmBarang. Jika belum ada, tambahkan komponen ADODC dan DataGrid. Kemudian desain form seperti berikut.
Tambahkan 6 buah TextBox (sesuai jumlah kolom dalam tabel BARANG) dalam frmBarang. Ubah nama masing-masing TextBox tersebut menjadi txtKodeBarang, txtNamaBarang, txtStokMinimum, tersebut. txtStokMaksimum, txtStokSekarang, dan
12
Tambahkan ADODC ke dalam frmBarang. Ubah Name dan Caption-nya menjadi adcBarang. Set nilai visible pada Window Properties menjadi false.
Tambahkan 4 buah Command (tombol) ke dalam frmBarang. Name dan Caption dari tombol-tombol tersebut masing-masing adalah cmdFirst dan First, cmdPrevious dan Previous, cmdNext dan Next, cmdLast dan Last.
Tambahkan 4 buah Command (tombol) ke dalam frmBarang. Name dan Caption dari tombol-tombol tersebut masing-masing adalah cmdAdd dan Add/Clear, cmdSave dan Save, cmdUpdate dan Update, cmdDelete dan Delete.
Tambahkan 1 buah Command (tombol) lagi ke dalam frmBarang. Name dan Caption dari tombol tersebut adalah cmdOK dan OK.
Set
koneksi
adcBarang
pada
database
(dalam
hal
ini
dagang.mdb) dan pilih tabel BARANG. Jika lupa, lihat lagi bagian Setting koneksi dan tabel pada ADODC diatas.
Bind DGridBarang dengan adcBarang. Jika lupa, lihat lagi bagian Binding ADODC dengan DataGrid.
13
14
Kontrol Navigasi
Double klik cmdFirst. Dan tambahkan kode berikut. Private Sub cmdFirst_Click() adcBarang.Recordset.MoveFirst End Sub Kode diatas berfungsi untuk menggerakkan pointer recordset menuju record pertama.
Double klik cmdPrevious. Dan tambahkan kode berikut. Private Sub cmdPrevious_Click() adcBarang.Recordset.MovePrevious End Sub Kode diatas berfungsi untuk menggerakkan pointer satu record sebelum record yang sedang aktif.
Double klik cmdNext. Dan tambahkan kode berikut. Private Sub cmdNext_Click() adcBarang.Recordset.MoveNext End Sub Kode diatas berfungsi untuk menggerakkan pointer satu record setelah record yang sedang aktif.
15
Private Sub cmdLast_Click() adcBarang.Recordset.MoveLast End Sub Kode diatas berfungsi untuk menggerakkan pointer recordset menuju record terakhir. Jalankan Aplikasi untuk menguji.
Catatan/Revisi: Jika pointer telah berada di akhir record dan tombol Next (cmdNext) terus menerus ditekan, maka akan muncul pesan kesalahan. Untuk mengatasinya, perbaiki kode hingga menjadi seperti berikut. Private Sub cmdNext_Click() If Not adcBarang.Recordset.EOF Then adcBarang.Recordset.MoveNext End If End Sub EOF adalah End Of File. Terjemahan dari kode diatas kurang lebih adalah, jika pointer tidak berada di akhir recordset maka jalankan pointer ke record berikutnya. ATAU Private Sub cmdNext_Click() If adcBarang.Recordset.EOF Then adcBarang.Recordset.MoveLast Else
16
adcBarang.Recordset.MoveNext End If End Sub Terjemahan dari kode diatas kurang lebih adalah, jika pointer berada di akhir recordset maka jalankan pointer ke record terakhir, jika tidak , jalankan pointer ke record selanjutnya. Demikian juga halnya dengan tombol Previous (cmdPrevious). Kode perbaikannya adalah sebagai berikut. Private Sub cmdPrevious_Click() If Not adcBarang.Recordset.BOF Then adcBarang.Recordset.MovePrevious End If End Sub ATAU
Private Sub cmdPrevious_Click() If adcBarang.Recordset.BOF Then adcBarang.Recordset.MoveFirst Else adcBarang.Recordset.MovePrevious End If End Sub Jalankan Aplikasi untuk mengujinya.
17
Penambahan Data
Langkah-langkah
pada
penambahan
data
adalah,
pertama,
kosongkan semua isi TextBox dengan menekan tombol Add/Clear (cmdAdd). Kedua, isi TextBox yang telah dikosongkan tadi dengan data yang akan dimasukkan. Dan yang terakhir, tekan Save (cmdSave) untuk menyimpannya dalam database. Kode yang perlu ditambahkan adalah sebagai berikut. Private Sub cmdAdd_Click() txtHargaBarang.Text = "" txtKodeBarang.Text = "" txtNamaBarang.Text = "" txtStokMaksimum.Text = "" txtStokMinimum.Text = "" txtStokSekarang.Text = "" End Sub Jika ingin kursor langsung berada pada txtKodeBarang,
tambahkan txtKodeBarang.SetFocus
Private Sub cmdSave_Click() adcBarang.Recordset.AddNew adcBarang.Recordset("kodeBarang") = txtKodeBarang.Text adcBarang.Recordset("namaBarang") = txtNamaBarang.Text adcBarang.Recordset("stokMaksimum") = txtStokMaksimum.Text adcBarang.Recordset("stokMinimum") = txtStokMinimum.Text adcBarang.Recordset("stokSekarang") = txtStokSekarang.Text adcBarang.Recordset("hargaBarang") = txtHargaBarang.Text
18
adcBarang.Recordset.Update txtHargaBarang.Text = "" txtKodeBarang.Text = "" txtNamaBarang.Text = "" txtStokMaksimum.Text = "" txtStokMinimum.Text = "" txtStokSekarang.Text = "" End Sub
Agar ketika DGridBarang di klik atau terjadi perpindahan record, TextBox dapat terisi nilai dari DGridBarang, tambahkan kode berikut. Hal ini terutama berkaitan dengan pengeditan record pada database. Tambahkan event RowColChange pada DGridBarang.
Private Sub DGridBarang_RowColChange(LastRow As Variant, ByVal LastCol As Integer) gridToText End Sub
Private Sub gridToText() If (Not adcBarang.Recordset.EOF And Not adcBarang.Recordset.BOF) Then txtHargaBarang.Text = adcBarang.Recordset("hargaBarang") txtKodeBarang.Text = adcBarang.Recordset("kodeBarang") txtNamaBarang.Text = adcBarang.Recordset("namaBarang") txtStokMaksimum.Text = adcBarang.Recordset("stokMaksimum")
19
Setelah dilakukan perubahan pada TextBox, klik tombol Update (cmdUpdate) untuk menyimpan hasilnya. Kode yang harus ditambahkan adalah sebagai berikut. Private Sub cmdUpdate_Click() textToGrid adcBarang.Recordset.Update End Sub
Private Sub textToGrid() If (Not adcBarang.Recordset.EOF And Not adcBarang.Recordset.BOF) Then adcBarang.Recordset("hargaBarang") = txtHargaBarang.Text adcBarang.Recordset("kodeBarang") = txtKodeBarang.Text adcBarang.Recordset("namaBarang") = txtNamaBarang.Text adcBarang.Recordset("stokMaksimum") = txtStokMaksimum.Text adcBarang.Recordset("stokMinimum") = txtStokMinimum.Text adcBarang.Recordset("stokSekarang") = txtStokSekarang.Text End If End Sub
Menghapus Data
Kode yang perlu ditambahkan pada tombol Delete (cmdDelete) agar dapat menghapus record/data adalah sebagai berikut. Private Sub cmdDelete_Click() adcBarang.Recordset.Delete
20
Tambahkan TextBox dan Command untuk Pencarian. Beri nama masing-masing txtSearch dan cmdSearh.
Pencarian yang dicontohkan disini hanya dilakukan terhadap satu kolom data saja, yaitu kolom namaBarang. Tambahkan kode berikut.
Private Sub cmdSearch_Click() If adcBarang.Recordset.EOF Then adcBarang.Recordset.MoveFirst Else adcBarang.Recordset.Find "namaBarang LIKE '*" & txtSearch.Text & "*'", 0, adSearchForward End If End Sub
21
Find "namaBarang LIKE '*su*'" su, susi, bisu, dan basuh dapat ditemukan.
Jalankan Aplikasi untuk mencoba hasilnya. 2. Selesaikan Form untuk Supplier dan Customer.
22
Tujuan Materi: mahasiswa dapat membuat database dengan fasilitas ADODC untuk form berelasi FORM INPUT DATA PENJUALAN (TRANSAKSI) Teliti dan perhatikan baik-baik. Pembuatan Form Input Data
Penjualan ini jauh lebih rumit dari pembuatan Form Input Data Barang. Desain Form
Buat Project baru. Ubah nama Form1 menjadi frmPenjualan. Buat sebuah Form lagi dan beri nama frmDetailPenjualan. Jika belum ada, tambahkan komponen DataGrid. Untuk frmPenjualan, desain form seperti berikut.
23
Ubah nama tiap TextBox sesuai dengan gambar diatas. Beri nama cmdDetail pada tombol Tambah Detail Detail, DGridPenjualan DGridDetailPenjualan untuk tombol Close. Isi adcCustomer dengan data Customer, adcDetailPenjualan dengan data Detail Penjualan, dan adcPenjualan dengan data Penjualan. Set DataSource dari DGridPenjualan ke ke adcPenjualan, dan DGridDetailPenjualan adcDetailPenjualan untuk untuk DataGrid DataGrid Penjualan, Penjualan,
DGridCustomer ke adcCustomer. Set nilai Visible (dari Window Properties) dari adcCustomer, adcPenjualan, menjadi False. Untuk frmDetailPenjualan, desain form seperti berikut. adcDetailPenjualan, dan DGridCustomer
24
Ubah semua nama komponen (TextBox dan ADODC) menjadi seperti yang terlihat pada Gambar. Beri nama yang bersesuaian pada tombol dan DataGrid: cmdAdd, cmdDelete, cmdClear, cmdCancel, cmdOK, dan DGridItem. Dua DataGrid terbawah bernaman DGridPenjualan dan DGridBarang (boleh dibolakbalik). Isi adcBarang dengan data Barang, adcDetailPenjualan dengan data Detail Penjualan. adcPenjualan boleh dibiarkan saja, atau isi dengan data Penjualan. Set DataSource ke dari DGridPenjualan dan ke adcPenjualan, ke DGridItem adcBarang. Set nilai Visible (dari Window Properties) dari adcBarang, adcPenjualan, adcDetailPenjualan, DGridBarang, dan DGridItem menjadi False. adcDetailPenjualan DGridBarang
clearText End Sub 2. Buat fungsi atau sub clearText. Private Sub clearText() txtKodeCustomer.Text = "" txtKodePenjualan.Text = "" txtNamaCustomer.Text = "" txtTanggal.Text = "" End Sub Fungsi diatas digunakan untuk membersihkan isi dari TextBox Jalankan Aplikasi untuk melihat hasilnya. Filter Record
3. Filter ini diperlukan untuk menyeleksi Detail Penjualan yang sesuai
dengan
Penjualannya.
Tambahkan
Filter jika
ini data
pada dalam
DGridPenjualan_RowColChange, mengikuti.
sehingga
Private Sub DGridPenjualan_RowColChange(LastRow As Variant, ByVal LastCol As Integer) If (Not adcPenjualan.Recordset.BOF And Not adcPenjualan.Recordset.EOF) Then filterDetailPenjualan adcPenjualan.Recordset("kodePenjualan") End If Private Sub filterDetailPenjualan(kode As String) adcDetailPenjualan.Recordset.Filter = "kodePenjualan='" & kode & "'" End Sub
Artinya,
isi
dari kolom
akan
difilter
berdasarkan
parameternya
Error Kontrol
4. Kode Penjualan, karena merupakan Primarykey, maka tidak boleh
terjadi duplikasi nilai pada tabel. Kontrol terhadap kondisi ini, dapat diletakkan pada txtKodePenjualan_LostFocus(). Ketika terjadi perpindahan kursor, nilai dari Kode Penjualan (txtKodePenjualan) (rsPenjualan, MessageBox.
Private Sub txtKodePenjualan_LostFocus() adcPenjualan.Recordset.MoveFirst adcPenjualan.Recordset.Find "kodePenjualan='" & txtKodePenjualan.Text & "'" If (Not adcPenjualan.Recordset.BOF And Not adcPenjualan.Recordset.EOF) Then MsgBox "Kode Penjualan sudah ada" txtKodePenjualan.Text = "" txtKodePenjualan.SetFocus End If End Sub
akan sama
dicari denga
pada
Data
Penjualan Jika
isinya
DGridPenjualan).
27
Jika Kode Penjualan ditemukan, secara otomatis pointer record akan menunjuj pada Kode Penjualan tersebut. If (Not rsPenjualan.BOF And Not rsPenjualan.EOF) Then Terjemahan singkatnya adalah, jika rsPenjualan tidak berada dalam posisi BOF atau EOF (artinya kode Penjualan ditemukan). Jalankan Aplikasi untuk memeriksa hasilnya
harus
ada.
Pengecekan
kondisi
ini,
diletakkan
pada
txtKodeCustomer_LostFocus().
Private Sub txtKodeCustomer_LostFocus()
28
adcCustomer.Recordset.MoveFirst adcCustomer.Recordset.Find "kodeCustomer='" & txtKodeCustomer.Text & "'" If (adcCustomer.Recordset.BOF Or adcCustomer.Recordset.EOF) Then MsgBox "Kode Customer tidak ditemukan" txtKodeCustomer.Text = "" txtKodeCustomer.SetFocus Else txtNamaCustomer.Text = adcCustomer.Recordset("namaCustomer") End If End Sub
Bandingkan dengan yang dimiliki oleh Kode Penjualan. Pada kode diatas, jika Kode Customer ditemukan, otomatis nilai txtNamaCustomer akan diisi nilai Nama Customer dari Kode Customer yang bersesuaian.
29
Penjualan. Kode yang digunakan untuk membuka Form Detail Penjualan tersebut, diletakkan pada Private Sub cmdDetail_Click().
Private Sub cmdDetail_Click() adcPenjualan.Recordset.AddNew adcPenjualan.Recordset("kodePenjualan") = txtKodePenjualan.Text adcPenjualan.Recordset("kodeCustomer") = txtKodeCustomer.Text adcPenjualan.Recordset("tanggalPenjualan") = txtTanggal.Text adcPenjualan.Recordset.Update Dim frm As frmDetailPenjualan Set frm = New frmDetailPenjualan Set frm.adcPenjualan.Recordset = adcPenjualan.Recordset.Clone frm.txtKodePenjualan.Text = txtKodePenjualan.Text frm.kodeCustomer = txtKodeCustomer.Text frm.tanggalPenjualan = txtTanggal.Text frm.Show vbModal If (frm.state = False) Then adcPenjualan.Recordset.MoveFirst adcPenjualan.Recordset.Find "kodePenjualan = '" & txtKodePenjualan.Text & "'", 0, adSearchForward adcPenjualan.Recordset.Delete adcPenjualan.Recordset.MoveFirst End If adcDetailPenjualan.Recordset.Requery adcPenjualan.Recordset.Requery End Sub
30
Simpan dulu data Penjualan ke dalam database. Dim frm As frmDetailPenjualan Set frm = New frmDetailPenjualan Merupakan deklarasi obyek Form Detail Penjualan (frmDetailPenjualan) frm.txtKodePenjualan.Text = txtKodePenjualan.Text Digunakan untuk memberi nilai awal pada variabel yang terdapat pada Form Detail Penjualan (frmDetailPenjualan). Kode diatas menunjukkan bahwa nilai txtKodePenjualan.Text dari frmDetailPenjualan diisi dengan nilai dari txtKodePenjualan.Text. frm.Show vbModal Digunakan untuk menampilkan Form dengan posisi diatas Form lain.
If (frm.state = False) Then adcPenjualan.Recordset.MoveFirst adcPenjualan.Recordset.Find "kodePenjualan = '" & txtKodePenjualan.Text & "'", 0, adSearchForward adcPenjualan.Recordset.Delete End If
Digunakan untuk menghapus data Penjualan yang sudah dimasukkan jika ternyata penambahan detail dibatalkan. frm.state = False artinya tombah Cancel pada Form Detail Penjualan telah ditekan. Jalankan Aplikasi dan klik tombol Tambah Detail (cmdDetail) untuk melihat hasilnya.
31
Option Explicit Public tanggalPenjualan As String Public kodeCustomer As String Dim totalItem As Integer Dim totalHarga As Currency Dim formState As Boolean tanggalPenjualan dan kodeCustomer digunakan untuk menampung nilai dari Form Penjualan. Perhatikan kode dalam Private Sub cmdDetail_Click() dari Form Penjualan diatas. formState 32
digunakan untuk menyimpan nilai ketika pengeklikan tombol Cancel atau OK. totalItem dan totalHarga digunakan untuk menyimpan nilai total dari detail transaksi.
8. Tambahkan kode berikut pada Form_Load().
Private Sub Form_Load() clearText adcDetailPenjualan.Recordset.Close adcDetailPenjualan.Recordset.Open End Sub Penjelasan: adcDetailPenjualan.Recordset.Close kemudian dibuka lagi dengan adcDetailPenjualan.Recordset.Open. 9. Buat fungsi atau sub clearText, gridToText, dan state.
Private Sub clearText() txtKodeBarang.Text = "" txtNamaBarang.Text = "" txtJumlahBarang.Text = "0" txtHarga.Text = "0" txtSubTotal.Text = "0" End Sub Private Sub gridToText() txtKodeBarang.Text = adcDetailPenjualan.Recordset("kodeBarang") txtJumlahBarang.Text = adcDetailPenjualan.Recordset("jumlahBarang") txtSubTotal.Text = adcDetailPenjualan.Recordset("hargaBarang") End Sub Public Property Get state() As Boolean state = formState End Property
digunakan
untuk
menutup
33
state digunakan untuk menyimpan dati status penekanan tombol Cancel dan OK. Jalankan Aplikasi untuk memeriksa hasilnya.
Error Kontrol
10. Serupa dengan Customer pada Form Penjualan, Kode Barang juga
harus
ada.
Pengecekan
kondisi
ini,
diletakkan
pada
txtKodeBarang_LostFocus().
Private Sub txtKodeBarang_LostFocus() adcBarang.Recordset.MoveFirst adcBarang.Recordset.Find txtKodeBarang.Text & "'" If Then MsgBox "Kode Barang tidak ditemukan" txtKodeBarang.Text = "" txtKodeBarang.SetFocus Else txtNamaBarang.Text = adcBarang.Recordset("namaBarang") txtHarga = adcBarang.Recordset("hargaBarang") End If (adcBarang.Recordset.BOF Or adcBarang.Recordset.EOF) "kodeBarang='" &
34
End Sub
Bandingkan dengan txtKodeCustomer_LostFocus() pada Form Penjualan. txtNamaBarang dan txtHarga akan terisi otomatis berdasarkan Kode Barang yang bersesuaian. Perhitungan Sub Total
11. Perhitungan
ditetakkan pada txtJumlahBarang_Change(). Sehingga begitu nilai txtJumlahBarang berubah, nilai txtSubTotal juga akan berubah.
Private Sub txtJumlahBarang_Change() txtSubTotal = Val(txtHarga.Text) * Val(txtJumlahBarang.Text) End Sub
Kode
diatas
dapat
juga
diletakkan
pada
txtJumlahBarang_LostFocus(). Hanya saja nilai nilai txtSubTotal baru berubah setelah kursor pada txtJumlahBarang dipindah. Penambahan Data serta Penghapusan isi TextBox 12. Tambahkan kode berikut pada tombol yang bersesuaian.
adcDetailPenjualan.Recordset.AddNew adcDetailPenjualan.Recordset("kodePenjualan") = txtKodePenjualan.Text adcDetailPenjualan.Recordset("kodeBarang") = txtKodeBarang.Text adcDetailPenjualan.Recordset("jumlahBarang") = txtJumlahBarang.Text adcDetailPenjualan.Recordset("hargaBarang") = txtSubTotal.Text adcDetailPenjualan.Recordset.Update totalItem = totalItem + Val(adcDetailPenjualan.Recordset("jumlahBarang")) totalHarga = totalHarga + CCur(adcDetailPenjualan.Recordset("hargaBarang")) adcDetailPenjualan.Recordset.Requery adcDetailPenjualan.Recordset.Filter = "kodePenjualan='" & txtKodePenjualan.Text & "'" clearText End Sub Private Sub cmdAdd_Click()
35
Tambahkan data ke dalam adcDetailPenjualan kemudian ambil ulang data (Requery) dan Filter berdasarkan kodePenjualan. Data yang dimasukkan disini akan langsung masuk ke dalam database. Jalankan Aplikasi untuk mengetahui hasilnya
penghapusan data tertentu harus dapat dilakukan. Tambahkan kode berikut, sesuaikan dengan event masing-masing.
Private Sub DGridItem_RowColChange(LastRow As Variant, ByVal LastCol As Integer) If (Not adcDetailPenjualan.Recordset.BOF And Not adcDetailPenjualan.Recordset.EOF) Then gridToText End If
36
End Sub Private Sub cmdDelete_Click() totalItem = totalItem Val(adcDetailPenjualan.Recordset("jumlahBarang")) totalHarga = totalHarga CCur(adcDetailPenjualan.Recordset("hargaBarang")) adcDetailPenjualan.Recordset.Delete clearText End Sub
Jalankan Aplikasi untuk mengetahui hasilnya. Add beberapa item, pilih salah satu item yang sudah ada, kemudian Delete. Penyimpanan/Update Data 14. Penyimpanan data dilakukan kerika tombol OK ditekan.
formState = True adcPenjualan.Recordset.Find "kodePenjualan = '" & txtKodePenjualan.Text & "'", 0, adSearchForward adcPenjualan.Recordset("totalItemPenjualan") = totalItem adcPenjualan.Recordset("totalHargaPenjualan") totalHarga adcPenjualan.Recordset.Update Unload Me End Sub = Private Sub cmdOK_Click()
Penjelasan: Dalam proses ini, nilai formState diubah menjadi True. Update data dilakukan terhadap tabel Penjualan saja, karena Detail Penyimpanan telah masuk ketika tombol Add ditekan. Data yang dimasukkan dalam tabel Penjualan database adalah totalItem dan totalHarga. Jalankan Aplikasi untuk mengetahui hasilnya.
37
Pembatalan Detail
15. Jika tidak jadi melakukan penambahan data pada Form Detail
Penjelasan: Dalam proses ini, nilai formState diubah menjadi False. Karena data sudah masuk harus terlebih ke dalam satu database, persatu, itu maka setelah dilakukan adcDetailPenjualan sebelumnya difilter dihapus dahulu.
Setelah
pencarian terhadap nilai kodePenjualan dalam adcPenjualan untuk dihapus. Update data dilakukan terhadap tabel Penjualan saja, karena Detail Penyimpanan telah masuk ketika tombol Add ditekan. Data yang dimasukkan dalam tabel Penjualan database adalah totalItem dan totalHarga. Jalankan Aplikasi untuk mengetahui hasilnya.
38
39
Tujuan Materi: mahasiswa dapat memahami menu-menu utama Microsoft Excel Menambahkan Data Environment
1. Kilik ProjectAdd Data Environment.
Setting Koneksi
3. Klik kanan DCDagang, kemudian klik Properties. Akan muncul
Data Link Properties dengan tampilan seperti ketika membuat Connectionstring pada ADODC.
40
Pilih database yang akan digunakan, misalnya dagang.mdb. Test Connection kemudian klik OK. Menambahkan Command atau DataMember
4. Klik kanan DCDagang, kemudian klik Add Command, sehingga
muncul
Command1.
Ubah
nama
Command1
menjadi
cmdDagang.
41
5. Pada
Properties
Window menjadi
dari
cmdDagang, dan
set pada
CommandType
adCmdTable
ProjectAdd
Data
Report.
Ubah
namanya
menjadi
DRBarang.
42
43
11.
44
untuk mencetak.
45
46
PENILAIAN Bagian ini merupakan soal ujian Kegiatan Pembelajaran Pemrograman Basis Data untuk mengetahui capaian kemampun akhir mahasiswa. Soal Ujian 1. Penilaian yang pertama dilakukan setiap setelah menyelesaikan contoh soal yang sudah dilakukan 2. Penilaian yang kedua dilakukan setelah mahasiswa menyelesaikan Tugas Kegiatan pada masing-masing Bab 3. Penilaian yang ketiga dilakukan berdasarkan penyelesaian tugas mandiri yang sudah diberikan, dan didemonstrasikan dihadapan pengajar per Kelompok.
47
REFERENSI Petroutsos, Evangelos; Pemrograman Database dengan Visual Basic 6; Buku 1; Cetakan Kedua;Penerbit PT Elex Media Komputindo;2002 MADCOMS; Database Visual Basic 6.0 dengan Crystal Reports; Penerbit ANDI;2002
48