Anda di halaman 1dari 66

3.

1 Pendahuluan
Bidang teknologi informasi merupakan salah satu kunci kesuksesan untuk mencapai jenjang karir. Persaingan
global membutuhkan keahlian yang diakui secara internasional sebagai bukti kecakapan dan kehandalan dalam
bidang teknologi informasi terutama dalam penggunaan Microsoft Office Access. Bahasa pemrograman yang
tersedia di dalam Access adalah Visual Basic for Applications (VBA). VBA adalah sebuah turunan dari bahasa
pemrograman Visual Basic yang dikembangkan oleh Microsoft dan dirilis pada tahun 1993, atau kombinasi yang
terintegrasi antara lingkungan pemrograman (Visual Basic Editor) dengan bahasa pemrograman (Visual Basic)
yang memudahkan user untuk mendesain dan membangun program Visual Basic dalam aplikasi utama Microsoft
Office Access, yang ditujukan untuk aplikasi-aplikasi tertentu. Kegunaan VBA adalah mengotomatisasi pekerjaan.
Pekerjaan yang dimaksud adalah pekerjaan yang dilakukan secara berulang-ulang dan pekerjaan yang lebih
kompleks.
Sebagaimana dijelaskan dalam bab-6 bahwa Form "terikat" adalah Form yang terhubung langsung ke sumber
data (tabel/kueri) dan dapat digunakan untuk memasukkan, mengedit, atau menampilkan data dari sumber data
tersebut. Akan tetapi bagaimana kita membangun Form “tak terikat” yang tidak terhubung langsung dengan
sumber data (tabel atau kueri tertentu yang telah dibuat dalam database), namun anda dapat mengakses field-
field pada tabel di database untuk datanya dapat diambil dan selanjutnya dimanipulasi dalam sebuah proses.
Disinilah peran penting dan kehebatan dari VBA. Dengan VBA, Anda dapat mengakses field-field pada ragam
tabel yang berada pada database melalui Form aplikasi. Anda juga dapat menghapus record, mengubah
(memperbaharui) isi record dalam tabel di database melalui Form aplikasi yang anda bangun.
3.2 Tipe Data
Khusus dalam VBA di Microsoft Access, bahwa tipe data yang diperkenankan untuk digunakan dalam program
aplikasi sebagaimana diperlihatkan pada Tabel 3-1. Menggunakan tipe data yang tepat pada program aplikasi
tentunya akan menghemat penggunaan memori RAM (Random Access Memory).
Tabel 3-1. Tipe Data

Tipe Data Byte Range


Byte 1 0 s/d 255
Integer 2 -32368 s/d 32363
Long 4 -2.143.483.648 s/d 2.143.483.648
Single 4 -3,4 E38 s/d 3,4 E38
Double 8 -1,393 E308 s/d 1,393 E308
String 10 0 s/d 2 Juta Karakter
Boolean 2 True, False
Date 8 1 Januari 100 s/d 31 Desember 9999
Currency 8 -922.333.203,685.433,5808 s/d 922.333.203.685.433,5803
Object 4 Object yang tersedia dalam VBA
Variant 16 Mencakup semua tipe data yang nilainya diatas Double
3.3 Deklarasi Perubah (Variable)
Terkadang kita perlu menciptakan sebuah perubah dalam program aplikasi untuk menampung sementara data
masukan dari sebuah objek (dalam hal ini control TextBox), untuk selanjutnya data yang telah ditampung oleh
perubah dapat diolah untuk tujuan khusus, misalnya melaksanakan operasi penjumlahan, pengurangan, per-
kalian dan pembagian atau operasi-operasi dan fungsi-fungsi matematika yang lain yang tersedia dalam VBA.
Untuk mendeklarasikan atau menciptakan perubah dalam VBA, lazimnya menggunakan Keyword (kata yang
dicadangkan dan tidak boleh digunakan untuk tujuan lain, misalnya digunakan sebagai nama perubah,
konstanta) yakni Dim. Nama perubah tidak boleh mengandung spasi, jika ingin memisahkan nama perubah
gunakan tanda underscore (_). Bentuk umum deklarasi perubah adalah

Contoh:
Dim x As Byte ‘Mendeklarasikan sebuah perubah x bertipe data Byte
Dim x,y,z As Byte
Dim Jumlah As Integer
Dim HasilBagi As Single
Dim Keterangan As String
Dim Bilangan_Pertama,Bilangan_Kedua As Integer

Catatan, bila Anda menggunakan sebuah atau sejumlah perubah dalam program akan tetapi tidak mendek-
larasikan perubah tersebut, maka VBA secara otomatis memberikan tipe variant kepada perubah tersebut.

3.4 Deklarasi Konstanta


Untuk mendeklarasikan konstanta dalam VBA, lazimnya menggunakan Keyword Const. Nama Konstanta tidak
boleh mengandung spasa. Bentuk umum deklarasi konstanta adalah:

Contoh:
Const pi As Single = 3.14
Const Nama As String = “Sir Harta Ulina”
Const TanggalRilis = #18/10/2022#

3.5 Memberikan Komentar


Bila Anda ingin menambahkan sebuah komentar atau keterangan pada 1 baris instruksi atau perintah (kode
program) agar pembaca mengerti dan paham apa maksud dari instruksi yang diberikan tersebut. Untuk
memberikan komentar pada baris instruksi, maka setelah instruksi (kode-program) berikan 1 spasi atau
beberapa spasi atau menggunakan Tab kemudian bubuhkan tanda petik tunggal (‘) diikuti komentar atau
keterangan berkenaan dengan instruksi tersebut. Komentar yang Anda berikan dalam program aplikasi tidak
pernah di-eksekusi dalam program, jadi hanya bersifat komentar saja bagi pembuat pemrogram.
Contoh:
Dim x As Byte ‘Menciptakan (deklarasi) sebuah perubah x bertipe data Byte
Nilai1 = CDec(Text1) ‘Konversikan nilai dimuat pada Text1 ke Desimal dan muati ke perubah Nilai1

3.6 Operator Aritmatika


Adapun operator (simbol operasi yang digunakan) dalam VBA berkenaan dengan operasi aritmatika (kalkulasi
dalam matematika umum) sebagaimana diperlihatkan dalam Tabel 3-2.
Tabel 3-2. Operator Aritmatika
Operator Diskripsi
+ Melaksanakan Operasi Penjumlahan
- Melaksanakan Operasi Pengurangan
* Melaksanakan Operasi Perkalian
/ Melaksanakan Operasi Pembagian (Riil)
\ Melaksanakan Operasi Pembagian (Bulat)
Mod Mengambil Sisa Pembagian (Bulat)

Contoh:
Private Sub Proses_Click ()
Jumlah_Pembayaran = (Harga_Barang * Jumlah_Beli) + Tarif_Tujuan
Nilai_Potongan_Harga = (Harga_Barang * Jumlah_Beli * Diskon / 100
Total_Bayar = Jumlah_Pembayaran – Nilai_Potongan_Harga
End Sub

3.3 Operator Pembanding


Operator pembanding digunakan untuk membandingkan dua besaran dan mengembalikan hasil nilai Boolean
True atau False ataupun Null. Operator ini lazim diimplementasikan dalam statemen pemilihan If dan statemen
perulangan While. Tabel 3-3 memperlihatkan operator pembanding yang digunakan dalam VBA.
Tabel 3-3. Operator Pembanding

Operator Diskripsi
< Mengembalikan hasil Boolen True, jika A Lebih Kecil B
<= Mengembalikan hasil Boolen True, jika A Lebih Kecil atau Sama Dengan B
> Mengembalikan hasil Boolen True, jika A Lebih Besar B
>= Mengembalikan hasil Boolen True, jika A Lebih Besar atau Sama Dengan B
= Mengembalikan hasil Boolen True, jika A Sama Dengan B
<> Mengembalikan hasil Boolen True, jika A Tidak Sama Dengan B

Contoh:
Private Sub Proses_Click ()
If JumlahBeli <= 20 Then
Diskon = 0.02
End Sub

3.8 Operator Penggabungan


Dalam VBA hanya menyediakan dua operator penggabungan sebagaimana diperlihatkan pada Tabel 3-4. Disa-
rankan untuk menggabung dua string atau lebih tanpa terjadi pesan kesalahan, maka gunakan operator &.
Tabel 3-4. Operator Penggabungan
Operator Diskripsi
& Menggabung dua String atau lebih
+ Menggabung dua String atau lebih, jika salah satu String bernilai kosong maka akan terjadi pesan kesalahan
3.9 Statemen Pemberian (Assigment Statement)
Statemen pemberian digunakan untuk memberikan nilai ke sebuah perubah (variable) atau ke sebuah control
(objek). Khusus dalam VBA pemberian nilai ke sebuah control hanya bertipe teks (string). Operator pemberian
dalam VBA adalah = (baca sama dengan).
Contoh:
x=3
y = 3.14
Nama = ”SIR HARTA ULINA”
Jumlah_bayar = harga_Satuan * Jumlah_Beli
Label1.Caption = ”Nilai Tukar”
Text1 = ”0”

3.10 Operator Logika


Berikut Tabel 3-5, memperlihatkan operator logika yang diperkenankan digunakan dalam VBA.
Tabel 3-5. Operator Logika
Operator Diskripsi
And Mengembalikan/Menghasilkan True bilamana Ekspresi-1 dan Ekspresi-2 bernilai True
Or Mengembalikan True bilamana salah satu dari Ekspresi-1 atau Ekspresi-2 bernilai True
Not Mengembalikan True bilamana Ekspresi bernilai bukan True (False)
Xor Mengembalikan True bilamana Ekspresi-1 bernilai True atau Ekspresi-2 bernilai True, akan
tetapi kedua tidak bernilai True
Eqv Mengembalikan True bilamana Ekspresi-1 dan Ekspresi-2 bernilai True atau kedua Ekspresi
bernilai False

Contoh:
Private Sub Text1_KeyPress (KeyAscii As Integer)
If Not ((KeyAscii >= Acs(”0”) And KeyAscii <= Acs(”9”)) Or KeyAscii = vbKeyBack) Then
KeyAscii = 0
End Sub

3.11 Operator Khusus


VBA juga menyediakan operator khusus untuk tujan tertentu sebagaimana diperlihatkan pada Tabel 3-6.
Tabel 3-6. Operator Khusus
Operator Diskripsi
Is Null atau Is Not Null Menentukan apakah suatu nilai Is Null atau Is Not Null
Like "pattern" Mencocokan nilai string dengan menggunakan operator wildcard ? dan *
Between Value-1 And Value-2 continue
Menentukan apakah nilai numerik atau tanggal ditemukan di dalam
rentang (range)
In(Value-1, Value-2,...) Menentukan apakah nilai ditemukan di dalam kelompok (set) nilai
4.1 Menggunakan TextBox, ComboBox, Label dan Penerapan Event Pada Form Aplikasi
Untuk memasukkan data yang Anda inginkan didalam Form aplikasi, lazimnya dapat menggunakan control
(objek) TextBox dan ComboBox dan untuk menampilkan data hasil olahan lazimnya dapat menggunakan control
Label. Sementara Event adalah peristiwa atau kejadian yang diterima oleh sebuah control, misal Event On Click,
On Load, On Change, On Key Press, On Timer.
Sekarang buatlah database baru dan beri nama dengan DATABASE DEPT STORE, selanjutnya simpan Tabel1
dengan nama TBBARANG, kemudian rancang TBBARANG sebagaimana diperlihatkan pada Gambar 4-1. Kemu-
dian simpan kembali TBBARANG setelah selesai merancang.

Gambar 4-1. Design View dari TBBARANG


Selanjutnya menggunakan DataSheet View dari TBBARANG, isikan record-record pada TBBARANG sebagaimana
diperlihatkan pada Gambar 4-2, kemudian simpan dan close TBBARANG

Gambar 4-2. Pengisian record-record pada Datasheet view dari TBBARANG


Langkah berikutnya, Anda klik menu Create, pilih dan klik Form Design, kemudian simpan Form dengan nama:
Form Aplikasi1 dan hasil sebagaimana diperlihatkan pada Gambar 4-3.

Gambar 4-3. Form Aplikasi1


Langkah selanjutnya, Anda tambahkan control-control kedalam Form yang diperlihatkan pada Gambar 4-4, dan
pengaturan property sheet dari control-control diberikan pada Tabel 4-1. Kemudian kembali simpan Form
aplikasi tersebut.

1
2
3
4
5

Gambar 4-4. Disain control-control pada Form Aplikasi1

Tabel 4-1. Pengaturan property sheet untuk control-control pada Form Aplikasi1

No Control Property Sheet


Name Caption Border Color Font Size Text Align Font Weight Fore Color
1 ComboBox Cmbkodebarang #00B3EF 12 Bold Text 1
Label - ComboBox Kode Barang 13 Bold #000099
2 Text Box Txtjumlahbeli #00B3EF 12 Bold Text 1
Label - TextBox Jumlah Beli 13 Bold #000099
3 Button PROSES PROSES 13 Bold #BA1419
4 Label Total Bayar (Rp) 13 Bold #006600
5 Label Lbltotalbayar 0 30 Left Bold #BA1419

Kemudian, klik ComboBox (Name: Cmbkodebarang), pada Tab Data klik Row Source dan pilih TBBARANG dan
pastikan pula pada Row Source Type pilih: Table/Query dimana kedua hal ini adalah point penting.
Berikutnya, Anda jalankan Form Aplikasi (klik Form View pada Tab Form Aplikasi) dan hasil diperlihatkan pada
Gambar 4-5.

Gambar 4-5. Form Aplikasi dalam status Form View


Mengacu ke Gambar 4-5, Kemudian Anda masukan Kode Barang dengan memilih Kode Barang melalui control
ComboBoxnya, dan masukan (ketik) Jumlah Beli yang diinginkan pada TextBoxnya dan klik tombol PROSES dan
hasil sebagaimana diperlihatkan pada Gambar 4-6.

Gambar 4-6. Memproses data masukan dan menampilkan hasil Total Bayar

Mengacu ke Gambar 4-6, Mengapa nilai Total Bayar 0? Sementara Kode Barang (yang memegang nilai Harga
Satuan) sudah dipilih dan Jumlah Beli juga diberi nilai masukan sebesar 4. Ini dikarenakan pada Event PROSES
belum diberikan kode-program untuk melaksanakan proses perhitungan. Sekarang untuk menghasilkan jawab-
an yang benar ketika tombol PROSES diklik, maka langkah selanjutnya Anda lakukan:
1. Buat Event On Change pada control ComboBox (Cmbkodebarang). Klik sekali pada Cmbkodebarang (control
disorot warna kuning), kemudian klik Tab Event, pilih On Change dan klik Builder (…) dan ditampilkan jendela
Choose Builder seperti Gambar 4-3. Event ini dibuat bertujuan untuk mengambil nilai field Harga Satuan dari
TBBARANG berdasarkan Kode Barang yang dipilih melalui Cmbkodebarang.

Gambar 4-3. Tampilan jendela Choose Builder


Selanjutnya pilih dan klik ganda Code Builder dan hasil diperlihatkan pada Gambar 4-8.
Gambar 4-8. Private Sub Cmdkodebarang_Change () telah ditambahkan otomatis

2. Buat Event On_Load pada Form sebagaimana diperlihatkan pada Gambar 4-9. Event ini dibuat bertujuan
untuk mengatur tampilan awal dari data masukan Cmbkodebarang dan Txtjumlahbeli.

Gambar 4-9. Private Sub Form_Load () telah ditambahkan otomatis

3. Buat Event On Click pada control button PROSES dan hasil diperlihatkan pada Gambar 4-10. Event ini dibuat
bertujuan untuk melaksanakan proses perhitungan untuk menentukan nilai Total Bayar (Rp).

Gambar 4-10. Private Sub PROSES_Click () telah ditambahkan otomatis

4. Menuliskan kode-program pada Private Sub Cmbkodebarang_Change (), Private Sub Form_Load () dan
Private Sub PROSES_Click () sebagaimana diperlihatkan pada Kode-Program 4-1.
Option Compare Database
Dim rekorset As Recordset ‘Deklarasi perubah rekorset dgn tipe Recordset
Dim HrgBarang As Long ‘Deklarasi perubah HrgBarang dgn tipe Long

Private Sub Cmbkodebarang_Change()


Set rekorset = CurrentDb.OpenRecordset("Select * From TBBARANG Where [Kode Barang]='" &
Me.Cmbkodebarang.Text & "'")
HrgBarang = rekorset![Harga Satuan]
End Sub

Private Sub Form_Load()


Me.Cmbkodebarang.Value = "-" ‘Set tampilan awal pada masukan Cmbkodebarang dgn tanda -
Me.Txtjumlahbeli = "" ‘Set tampilan awal pada masukan Txtjumlahbeli dgn kosong
End Sub

Private Sub PROSES_Click()


jumbeli = Me.Txtjumlahbeli.Value
TotalBayar = HrgBarang * jumbeli
Me.Lbltotalbayar.Caption = TotalBayar
End Sub

Setelah selesai menuliskan kode-program pada masing-masing Private Sub, kemudian simpan kode program
dengan mengklik icon Disket (atau tekan Ctrl+S) sebagaimana diperlihatkan pada Gambar 4-11.

Gambar 4-11. Menyimpan file kode-program

Langkah berikutnya jalan mode Form View pada Form Aplikasi dan hasil diperlihatkan pada Gambar 4-12.

Gambar 4-12. Tampilan awal From Aplikasi (mode Form View)

Mengacu ke Gambar 4-12, Anda pilih masukan untuk Kode Barang: DDS001, dan masukan nilai Jumlah Beli: 5,
kemudian klik tombol PROSES dan hasil diperlihatkan pada Gambar 4-13.
Selanjutnya kembali Anda ubah pilihan masukan Kode Barang: DDS002, dan masukan nilai Jumlah Beli:10,
kemudian klik kembali tombol PROSES dan hasil diperlihatkan pada Gambar 4-14.

Gambar 4-13 Gambar 4-14


4-1 Mengacu kembali ke Gambar 4-4, Anda tambahkan beberapa control sebagaimana diperlihatkan pada
Gambar 4-15 dan pengaturan property sheet dari beberapa control tambahan sebagaimana diperlihatkan
pada Tabel 4-2.

6 3
1
8 9
2

3
4
5

Gambar 4-15
Tabel 4-2. Pengaturan property sheet untuk control tambahan pada Form Aplikasi Gambar 4-15
No Control Property Sheet
Name Caption Border Color Font Size Text Align Font Weight Fore Color
6 Label Nama Barang 13 Bold #000099
3 Label Harga Satuan 13 Bold #000099
4 Label Lblnamabarang - 12 Center Bold #006600
9 Label Lblhargasatuan - 13 Center Bold #BA1419

Setelah selesai melakukan penambahkan 4 control dan pengaturan property sheet, maka selanjutnya Anda
jalan Form Aplikasi (mode From View) dan hasil diperlihatkan pada Gambar 4-16. Ketika Anda memilih
masukan pada Kode Barang: DDS001, maka secara otomatis tertera Nama Barang dan Harga Satuan (Rp)
pada Form Aplikasi sebagaimana diperlihatkan pada Gambar 4-13. Selanjutnya ketika diubah masukan
Kode Barang: DDS002 atau DDS003, maka hasil diperlihatkan pada Gambar 4-18 dan Gambar 4-19.

Gambar 4-16
Gambar 4-13

Gambar 4-18

Gambar 4-19

Sekarang tugas Anda adalah menambahkan kode-program pada Private Sub Cmbkodebarang_Change ()
untuk dapat menghasilkan tampilan seperti pada Gambar 4-13, Gambar 4-18 dan Gambar 4-19.
4.2 Menggunakan Add Existing Field Untuk Menambahkan Control pada Form Aplikasi
Satu keunggulan dari MS-Access adalah Anda dapat menambahkan control masukan data pada Form aplikasi
melalui akses field pada tabel yang telah Anda buat pada database. Satu kelebihan jika Anda menambahkan
control masukan data melalui Add Existing Fields, maka input data melalui TextBoxnya pada Form Aplikasi
(mode Form View) menerapkan panjang input data berdasarkan field size atau format dari field pada tabel yang
Anda buat.
Sekarang buka kembali database DATABASE DEPT STORE, tambahkan tabel baru kemudian Anda beri nama
TBTRANSAKSI sebagaimana Datasheet viewnya diperlihatkan pada Gambar 4-20. Selanjutnya Anda simpan
TBBARANG dan Close tabel tersebut.

Gambar 4-20. Design View dari TBTRANSAKSI


Berikutnya, Anda buka kembali Form Aplikasi1 dan ubah kedalam mode Form Design. Sorot semua control yang
berada dalam Form tersebut, kemudian klik mouse-kanan, pilih dan klik Copy.

Selanjutnya, Anda tambahkan Form Design yang baru, kemudian tambahkan panjang Form menjadi 18 cm dan
lebar Form menjadi 10 cm. Selanjutnya klik mouse-kanan pada area Form yang baru, pilih Paste dan hasil
diperlihatkan pada Gambar 4-21. Kemudian menggunakan tombol panah bawah pindahkan semua control yang
tersorot sebagaimana diperlihatkan pada Gambar 4-22.

Gambar 4-21. Melaksanakan penempelan (paste) control pada Form 1


Gambar 4-22. Pengaturan kembali tata letak control pada Form 1

Mengacu ke Gambar 4-22, simpan Form dengan nama Form Transaksi dan hasil sebagaimana diperlihatkan pada
Gambar 4-23.

Gambar 4-23. Form disimpan dengan nama Form Transaksi

Mengacu ke Gambar 4-23, pada menu Form Design, Anda klik icon Add Existing Fields dan hasil diperlihatkan
pada Gambar 4-24.
Gambar 4-24. Add Axisting Field diaktifkan

Mengacu ke Gambar 4-24, pada Field List, klik tombol + (Sub) dari TBTRANSAKSI dan hasil diperlihatkan pada
Gambar 4-25.

Gambar 4-25. Sub dari TBTRANSAKSI dimunculkan

Sekarang mengacu ke Gambar 4-25, klik ganda field Nomor Faktur, Nama Pembeli dan Tanggal Pem-
belian dan hasil sebagaimana diperlhatkan pada Gambar 4-26. Selanjutnya, Anda sorot ketiga control
yang baru saja ditambahkan ke Form Transaksi, kemudian klik menu Arrange, pilih icon Stacked seperti
diperlihatkan pada Gambar 4-23 dan klik icon Stacked, dan selanjutnya atur kembali tata letak ketiga
control yang masih tersorot dan hasil diperlihatkan pada Gambar 4-28.
Gambar 4-26. Tiga control telah ditambahkan ke Form dari Field List TBTRANSAKSI

Gambar 4-23. Menggunakan Stacked untuk mengatur kesesuain tata letak control tersorot
Grup Stacked

Gambar 4-28. Ketiga control telah diterapkan mode tata letak Stacked

Selanjutnya mengacu ke Gambar 4-28, Anda pilih dan klik icon Remove Layout untuk membuang efek grup
Stacked terhadap ketiga control dan hasil diperlihatkan pada Gambar 4-29 dan kemudian simpan kembali Form
Transaksi.

Gambar 4-29. Efek grup Stacked telah dibuang terhadap ketiga control tersorot

Langkah berikut, atur property sheet: Font Size, Font Weight, Fore Color dari label Nomor Faktur, Nama
Pembeli, Tanggal Pembelian sama seperti property sheet label Kode Barang. Demikian juga atur property sheet:
Border Color, Font Size, Font Weight, Fore Color dari TextBox Nomor Faktur, Nama Pembeli, Tanggal
Pembelian sama seperti property sheet TextBox berlabel Kode Barang. Dan hasil akhir keseluruhan Design View
dari Form Transaksi diperlihatkan pada Gambar 4-30.
Gambar 4-30. Finishing dari Design View Form Transaksi

Selanjutnya, Anda buat kode-program pada View Code untuk menjalankan program Form Transaksi sebagai-
mana diperlihatkan pada Kode-Program 4-2.

Option Compare Database


Dim HrgSatuanBarang As Long
Dim rekorset As Recordset

Private Sub Cmbkodebarang_Change()


Set rekorset = CurrentDb.OpenRecordset("Select * From TBBARANG Where[Kode Barang]='" &
Me.Cmbkodebarang.Text & "'")
NamaBarang = rekorset![Nama Barang]
HrgSatuanBarang = rekorset![Harga Satuan]
Me.Lblnamabarang.Caption = NamaBarang
Me.Lblhargasatuan.Caption = HrgSatuanBarang
End Sub

Private Sub Form_Load()


Me.Nomor_Faktur.Value = ""
Me.Nama_Pembeli.Value = ""
Me.Tanggal_Pembelian.Value = ""
Me.Cmbkodebarang.Value = "-"
Me.Txtjumlahbeli.Value = ""
Me.Lbltotalbayar.Caption = "0"
Me.Nomor_Faktur.SetFocus
End Sub

Private Sub PROSES_Click()


Jumlahbeli = Me.Txtjumlahbeli.Value
Totalbayar = HrgSatuanBarang * Jumlahbeli
Me.Lbltotalbayar.Caption = Totalbayar
End Sub
Kemudian, Anda simpan kode-program tersebut, selanjutnya kembali ke View Microsoft Access (atau tekan Alt
+ F11) dan jalan Form Transaksi (mode Form View) dan hasil diperlihatkan dalam Gambar 4-31. Sekarang Anda
masukan data Nomor Faktur, Nama Pembeli, Tanggal Pembelian, Kode Barang dan Jumlah Beli sebagaimana
diperlihatkan pada Gambar 4-32.

Gambar 4-31. Form Transaksi dijalankan (mode Form View)

Gambar 4-32. Pengisian data masukan pada Form Transaksi


Perhatikan Gambar 4-32, Anda hanya dapat memasukan data maksimum 3 karakter pada Nomor Faktur, demi-
kian juga Anda hanya dapat memasukan data maksimum 25 karakter pada Nama Pembeli, mengapa demikian?
Selanjutnya, mengacu ke Gambar 4-32 Anda klik tombol PROSES dan hasil diperlihatkan pada Gambar 4-33.

Gambar 4-33. Nilai Total Bayar di tampilkan setelah tombol PROSES diklik
4.3 Memasukan Data Huruf Kecil dan Mengubah ke Huruf Besar Pada Control TextBox
Jika Anda menginginkan masukan data pada control TextBox secara otomatis mengubah ke huruf kecil menjadi
huruf besar ketika Anda mengetikan data masukan (tanpa Caps Lock on), maka Anda dapat menggunakan Event
On KeyPress untuk melaksanakan hal tersebut.
Kembali mengacu ke Gambar 4-30, klik (sorot) TextBox dengan property sheet Name: Nomor Faktur, kemudian
klik Tab Event, pilih dan klik On Key Press, selanjutnya klik builder (…), pilih dan klik Code Builder hasil diperlihat-
kan pada Gambar 4-34.

Gambar 4-35. Penambahan Event On Key Press dari TextBox (Name: Nomor Faktur) pada View Code
Selanjutnya, mengacu ke Gambar 4-34, Anda ketikan kode-program pada Private Sub Nomor_Faktur_KeyPress
(KeyAscii As Interger) sebagaimana diperlihatkan pada Kode-Program 4-3 dan simpan kode-program.

Private Sub Nomor_Faktur_KeyPress (KeyAscii As Integer)


KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Langkah berikutnya, Anda lakukan hal yang sama terhadap TextBox (property sheet Name: Nama Pembeli)
menambahkan Event On Key Press dan Anda ketikan kode-program pada Private Sub Nama_Pembeli_KeyPress
(KeyAscii As Interger) sebagaimana diperlihatkan pada Kode-Program 4-4 dan simpan kode-program.

Private Sub Nama_Pembeli_KeyPress (KeyAscii As Integer)


KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Setelah selesai membuat kode program, Anda jalankan kembali Form Transaksi (mode Form View), kemudian
Anda ketikan data masukan pada Nomor Faktur dan Nama Pembeli seperti diperlihatkan pada Gambar 4-36.
Gambar 4-36. Data masukan pada Nomor Faktur dan Nama Pembeli diubah secara otomatis ke huruf besar

4.4 Memasukan Data Hanya Numerik Pada Control TextBox


Ketika Anda menggunakan control TextBox sebagai wadah untuk memasukan data, maka TextBox dapat meneri-
ma semua karakter sebagai data masukan. Namun bila Anda menginginkan numerik atau bilangan yang hanya
dapat dimasukan datanya melalui TextBox tersebut, Maka Anda dapat menerapkan hal tersebut melalui Event
On Change.
Kembali mengacu ke Gambar 4-30, klik (sorot) TextBox dengan property sheet Name: Txtjumlahbeli, kemudian
klik Tab Event, pilih dan klik On Change, selanjutnya klik builder (…), pilih dan klik Code Builder hasil diperlihat-
kan pada Gambar 4-33.

Gambar 4-33. Penambahan Event On Change dari TextBox (Name: Txtjumlahbeli) pada View Code
Selanjutnya, mengacu ke Gambar 4-33, Anda ketikan kode-program pada Private Sub Txtjumlahbeli_Change ()
sebagaimana diperlihatkan pada Kode-Program 4-5 dan simpan kode-program.

Private Sub Txtjumlahbeli_Change()


If Not IsNumeric(Me.Txtjumlahbeli.Text) Then
Me.Txtjumlahbeli.Value = Null
End If
End Sub

Sekarang jalankan kembali Form Transaksi (mode Form View) dan isikan data masukan sebagaimana diperlihat-
kan pada Gambar 4-38.

Gambar 4-38

Selanjutnya mengacu ke Gambar 4-38, pada Jumlah Beli coba Anda masukan data huruf, apa yang Anda lihat?
Bahwa data masukan berupa huruf dan lainnya selain angka tidak dapat di ketikan pada TextBox berlabel Jumlah
Beli. Namun ketika Anda memasukan data dalam angka (numerik), maka data masukan tersebut dapat diketikan
dan ditampilkan sebagaimana diperlihatkan pada Gambar 4-39.

Gambar 4-39. Data masukan pada Jumlah Beli hanya diperkenankan numerik
4.5 Menggunakan Control Group Option dan CheckBox
Group Option atau GroupBox adalah sebuah Frame berlabel sebagai Judul dari Frame. Di dalam Group Option
ini Anda dapat menambah control-control lain dan menjadi satu kesatuan didalam Group Option tersebut.
Sementara CheckBox adalah sebuah control dimana Anda bisa memberikan tanda centang pada control yang
menyatakan Anda setuju dengan pilihan yang tertera di CheckBox tersebut.
Sekarang buat database baru dan beri nama: DATABASE CAFE 69, kemudian Close Table1 dan selanjutnya tam-
bahkan Form Design dan, kemudian simpan Form1 dengan: Form Café 69. Selanjutnya tambahkan sejumlah
control sebagaimana diperlihatkan pada Gambar 4-40 dan dan pengaturan property sheet dari control-control
diperlihatkan pada Tabel 4-3.

4 7 10
3
5 8 11
6 9 12

13

14

15

Gambar 4-40. Layout control-control pada Form Café 69

Tabel 4-3. Pengaturan property sheet untuk control-control pada Form Aplikasi Gambar 4-40

Property Sheet
No Control
Name Caption Font Name Font Size Text Align Font Weight Fore Color
Tw Cen MT Condensed
1 Label CAFÉ 69 49 Center Bold #FF0066
Extra Bold
Tw Cen MT Condensed
2 Label JL. JAMIN GINTING NO.123 15 Center Bold Text 1
Extra Bold
Group
3
Option
Check Box Chbsotoayam
4 Label-Check
Soto Ayam Calibri 14 General Bold #FF0066
Box
Check Box Chbsotosapi
5 Label-Check
Soto Sapi Calibri 14 General Bold #FF0066
Box
Check Box Chbsopdaging
6 Label-Check
Sop Daging Spesial Calibri 14 General Bold #FF0066
Box
7 Label Lblhargasotoayam - Calibri 12 Center Bold Text 1
8 Label Lblhargasotosapi - Calibri 12 Center Bold Text 1
9 Label Lblhargasopdaging - Calibri 12 Center Bold Text 1
10 TextBox Txtjumbelsotoayam Calibri 12 Left Bold Text 1
11 TextBox Txtjumbelsotosapi Calibri 12 Left Bold Text 1
12 TextBox Txtjumbelsopdaging Calibri 12 Left Bold Text 1
13 Button Butproses PROSES Cambria 14 Center Bold #BA1419
14 Label TOTAL BAYAR (Rp) Calibri 13 Left Bold #006600
15 Label Lbltotalbayar 0 Tw Cen MT 50 Left Bold #FF0066

Selanjutnya klik View Code, dan buat kode-program seperti pada Kode-Program 4-6.

Option Compare Database


Dim Hrgsotoayam, Hrgsotosapi, Hrgsopdaging As Long
Private Sub Butproses_Click()
jumlahbelisotoayam = CDec(Me.Txtjumbelsotoayam.Value)
jumlahbelisotosapi = CDec(Me.Txtjumbelsotosapi.Value)
jumlahbelisopdaging = CDec(Me.Txtjumbelsopdaging.Value)
totalbayar = (Hrgsotoayam * jumlahbelisotoayam) + (Hrgsotosapi * jumlahbelisotosapi) + (Hrgsopdaging *
jumlahbelisopdaging)
Me.Lbltotalbayar.Caption = CStr(totalbayar)
End Sub
Private Sub Chbsopdaging_Click()
If Me.Chbsopdaging.Value = -1 Then
Me.Lblhargasopdaging.Caption = "Rp.22500"
Hrgsopdaging = 22500
End If
If Me.Chbsopdaging.Value = 0 Then
Me.Lblhargasopdaging.Caption = ""
Me.Txtjumbelsopdaging.Value = "0"
Hrgsopdaging = 0
End If
End Sub
Private Sub Chbsotoayam_Click()
If Me.Chbsotoayam.Value = -1 Then
Me.Lblhargasotoayam.Caption = "Rp.13500"
Hrgsotoayam = 13500
End If
If Me.Chbsotoayam.Value = 0 Then
Me.Lblhargasotoayam.Caption = ""
Me.Txtjumbelsotoayam.Value = "0"
Hrgsotoayam = 0
End If
End Sub
Private Sub Chbsotosapi_Click()
If Me.Chbsotosapi.Value = -1 Then
Me.Lblhargasotosapi.Caption = "Rp.18500"
Hrgsotosapi = 18500
End If
If Me.Chbsotosapi.Value = 0 Then
Me.Lblhargasotosapi.Caption = ""
Me.Txtjumbelsotosapi.Value = "0"
Hrgsotosapi = 0
End If
End Sub
Private Sub Form_Load()
Me.Lblhargasotoayam.Caption = ""
Me.Lblhargasotosapi.Caption = ""
Me.Lblhargasopdaging.Caption = ""
Me.Chbsotoayam.Value = 0
Me.Chbsotosapi.Value = 0
Me.Chbsopdaging.Value = 0
Me.Txtjumbelsotoayam.Value = "0"
Me.Txtjumbelsotosapi.Value = "0"
Me.Txtjumbelsopdaging.Value = "0"
End Sub

Kemudian pada jendela Property Sheet, pilih Form pada Selection type, kemudian klik Tab Other, pilih dan klik
Pop Up dan pilih Yes sebagaimana diperlihatkan pada Gambar 4-41.

Gambar 4-41. Pengaturan Pop Up pada Tab Other dari Form

Setelah itu, Anda jalan Form Café 69 (mode Form View) dan hasil diperlihatkan pada Gambar 4-42.

Gambar 4-42. Form Café 69 (mode Form View)


Mengacu ke Gambar 4-42, sekarang Anda klik CheckBox pada Soto Ayam, maka otomatis muncul harga Soto
Ayam, kemudian isikan Jumlah beli: 4 untuk Soto Ayam, seperti diperlihatkan pada Gambar 4-43 (a). Berikutnya
Anda membatalkan pilihan Soto Ayam dengan mengklik sekali lagi CheckBox pada Soto Ayam, dan hasil diper-
lihatkan pada Gambar 4-43 (b). Selanjutnya mengacu ke Gambar 4-43 (a), kemudaian klik tombol PROSES dan
hasil diperlihatkan pada Gambar 4-43 (c).

(a) (b)

(c)
Gambar 4-43

Langkah berikutnya mengacu ke Gambar 4-43 (c), Anda klik CheckBox pada Soto Sapi dan isikan Jumlah Beli: 2
untuk Soto Sapi, kemudian klik lagi CheckBox pada Sop Daging Special dan isikan juga Jumlah Beli: 1 untuk Sop
Daging Specialnya. Selanjutnya klik tombol PROSES dan hasil diperlihatkan pada Gambar 4-44.

Gambar 4-44
4-2 Buka kembali DATABASE CAFE 69, selanjutnya Anda tambahkan Menu Minuman dan tata ulang layout
dari semua control didalamnya sebagaimana diperlihatkan pada Gambar 4-45.

Gambar 4-45
Kemudian ditetapkan:
Jenis Minuman Harga (Rp)
The Botol Sosro 3000
Coca Cola 3500
The Manis Dingin 6500
Kopi Hitam 6000
Aqua 500 ml 5000

Tugas Anda selanjutnya adalah menambahkan kode-program pada Kode-Program 4-5 untuk meng-
implementasikan Menu Minuman yang dipilih yang berkenaan dengan TOTAL BAYAR (Rp).
5.1 Pemilihan Satu Aksi dengan Satu Kondisi
Pemilihan aksi merupakan suatu tindakan seseorang melakukan suatu aksi berdasarkan kondisi tertentu. Ada
banyak hal tindakan pemilihan kita lakukan dalam kehidupan sehari-hari misal, ketika hari hujan maka saya ber-
jalan ke kampus memakai payung. Ketika hari gelap, maka saya akan menyalakan lampu. Ketika azan berkuman-
dang, maka saya menunaikan sholat.
Dalam bahasa pemrograman, suatu aksi akan dikerjakan atau dieksekusi apabila kondisi yang di defenisikan ber-
nilai benar (true). Sebaliknya, bila kondisi tersebut bernilai salah (false), maka program akan melakukan aksi lain
(jika ada) atau langsung keluar dari blok pemilihan.
Dalam VBA, bentuk umum dari statemen pemilihan satu aksi dengan satu kondisi diberikan:

• Kondisi adalah membandingkan 2 (dua) besaran dimana besaran pertama dapat berupa perubah, control
yang memegang sebuah nilai dan besaran kedua dapat berupa perubah, bilangan/angka, teks (string) atau
karakter.
• Aksi adalah suatu perintah (instruksi) yang akan dikerjakan jika kondisi bernilai true (dipenuhi). Jika kondisi
bernilai false, maka program akan keluar dari blok pemilihan.
Contoh:
If JumlahBeli <= 50 Then
Diskon = 0.03
End If
If Combo1 = “ Jakarta” Then
BiayaTujuan = 550000
End If

5.2 Pemilihan Dua Aksi dengan Satu Kondisi


Dalam VBA, bentuk umum dari statemen pemilihan dua aksi dengan satu kondisi diberikan:

Berkenaan dengan statemen diatas, Aksi 1 akan dikerjakan oleh program jika kondisi yang ditentukan dipenuhi
(bernilai true). Akan tetapi bilamana kondisi yang dimaksud tidak terpenuhi (bernilai false), maka Aksi 2 akan di-
kerjakan selanjutnya.
Contoh:
If JumlahBeli <= 20 Then
Diskon = 0.15
Else
Diskon = 0.2
End If

5.3 Pemilihan Dua Aksi dengan Dua Kondisi Atau Lebih


Dalam VBA, bentuk umum dari statemen pemilihan dua aksi dengan dua kondisi atau lebih diberikan:

If Kondisi 1 Then
Aksi 1
Else
If Kondisi 2 Then
Aksi 2
Else
If Kondisi 3 Then
Aksi 3
.
.
.
Else
If Kondisi N Then
Aksi N
Else
Aksi
End If ‘ untuk If Kondisi 1 Then
End If ‘ untuk If Kondisi 2 Then
End If ‘ untuk If Kondisi 3 Then
.
.
.
End If ‘ untuk If Kondisi N Then

Contoh:

If JumlahBeli <= 10 Then


Diskon = 0
Else
If JumlahBeli <= 20 Then
Diskon = 0.15
Else
If JumlahBeli <= 30 Then
Diskon = 0.25
Else
If JumlahBeli <= 50 Then
Diskon = 0.5
Else
Diskon = 1.25
End If
End If
End If
End If
5.4 Menampilkan Pesan Di Monitor
Adakalanya penting untuk menampilkan sebuah pesan dimonitor untuk memberitahukan sesuatu yang dirasa
penting kepada pengguna program aplikasi. Pesan dapat berupa pesan informasi atau konfirmasi atau pesan
kesalahan. VBA menyediakan suatu fungsi MsgBox untuk mengimplementasikan sebuah pesan (message).
Bentuk umum dari fungsi MsgBox diberikan:

Atau

, ,

Prompt adalah pesan yang kita tuliskan/ketikan untuk ditampilkan pada kotak pesan di monitor. Pesan dapat
memuat teks (harus diapit dengan dua petik ganda), dan instruksi lain yang diperkenankan dalam penggunaan
fungsi MsgBox.
Contoh:
Private Sub PROSES_Click ()
If Me.Txtnomorfaktur.Value = ”” Then
MsgBox (“ Nomor Faktur tidak boleh kosong…?”)
Me.Txtnomorfaktur.SetFocus
End
End If
.
.
.
End Sub

Private Sub DELETE_Click ()


If MsgBox(”Yakin semua record akan dihapus…?”, vbOKCancel,”KONFIRMASI”) = vbOK Then
CurrentDB.Execute ”Delete From TBTRANSAKSI”
End IF
.
.
.
End Sub

Perhatikan kembali Gambar 5-1 (acuan dari Gambar 4-31) berikut.

Gambar 5-1. Form Transaksi dijalankan (mode Form View)


Selanjutnya kita menginginkan, bilamana data masukan pada Nomor Faktur tidak diberikan, maka ketika tombol
PROSES di klik akan muncul pesan di monitor yakni: Isikan Nomor Faktur terlebih dahulu…? Demikian pula, jika
Nama Pembeli kosong, dan tombol PROSES diklik, maka muncul pesan: Isikan Nama Pembeli terlebih dahulu…?
Hal yang sama juga berlaku dan muncul pesan jika Anda lupa memberikan/memilih data masukan pada Kode
Barang dan Jumlah Beli. Untuk melaksanakan maksud diatas, pastikan Form Transaksi dalam mode Design View.
Kemudian klik View Code dan hasil diperlihatkan pada Gambar 5-2.

Gambar 5-2. View Code (kode-program) dari Form Transaksi

Mengacu ke kode-program pada Gambar 5-2, selanjutnya Anda tambahkan kode-program pada Private Sub
PROSES_Click () sebagaimana diperlihatkan pada Kode-Program 5-1 dan jangan lupa simpan kode-program.

Private Sub PROSES_Click()


If Me.Nomor_Faktur.Value = "" Then
MsgBox ("Isikan Nomor Faktur terlebih dahulu...?")
Me.Nomor_Faktur.SetFocus ’Tempat kursor pada TextBox (Name: Nomor Faktur)
End
End If

If Me.Nama_Pembeli.Value = "" Then


MsgBox ("Isikan Nama Pembeli terlebih dahulu...?")
Me.Nama_Pembeli.SetFocus
End ’Memaksa aplikasi berhenti berjalan, hingga menunggu data masukan pada Nama Pembeli
End If
If Me.Cmbkodebarang.Value = "-" Then
MsgBox ("Pilih Kode Barang terlebih dahulu...?")
Me.Cmbkodebarang.SetFocus
End
End If

If Me.Txtjumlahbeli.Value = "" Then


MsgBox ("Isikan Jumlah Beli terlebih dahulu...?")
Me.Txtjumlahbeli.SetFocus
End
End If
.
.
.
.
End Sub

Sekarang jalan kembali From Transaksi seperti pada Gambar 5-3 (a), kemudian Anda klik tombol PROSES tanpa
pengisian Nomor Faktur dan hasil diperlihatkan pada Gambar 5-3 (b). Selanjutnya Anda isikan Nomor Faktur
seperti pada Gambar 5-3 (c), kemudian klik tombol PROSES tanpa pengisian Nama Pembeli dan hasil diperlihat-
kan pada Gambar 5-3 (d).

(a) (b)

(c) (d)
Gambar 5-3. Pesan ditampilkan sebagai akibat lupa melakukan pengisian data masukan

Selanjutnya mengacu ke Gambar 5-3 (d), Anda isikan Nama Pembeli seperti diperlihatkan pada Gambar 5-4 (a),
kemudian klik tombol PROSES tanpa pengisian pemilihan Kode Barang dan hasil seperti pada Gambar 5-4 (b).
Selanjutnya Anda isikan dengan memilih Kode Barang seperti pada Gambar 5-4 (c), kemudian klik tombol
PROSES tanpa pengisian Jumlah Beli, maka hasil diperlihatkan pada Gambar 5-4 (d). Langkah berikutnya Anda
isikan Jumlah Beli seperti diperlihatkan pada Gambar 5-4 (e), kemudian klik tombol PROSES dan hasil diperlihat-
kan pada Gambar 5-4 (f).
(a) (b)

(c) (d)

(e) (f)
Gambar 5-4. Pesan ditampilkan sebagai akibat lupa melakukan pengisian data masukan

5.5 Penerapan Diskon


Buka kembali Form Transaksi (dalam mode Design View), kemudian tambah 4 Label (bernomor: 10, 11,12,13)
sebagaimana diperlihatkan pada Gambar 5-5 dan atur property sheet dari ke 4 Label sebagaimana diberikan
pada Tabel 5-1, kemudian simpan kembali Form Transaksi.

Tabel 5-1
No Control Property Sheet
Name Caption Border Color Font Size Text Align Font Weight Fore Color
10 Label Jumlah Pembayaran (Rp) 13 Bold #006600
11 Label Lbljumlahpembayaran 0 15 Right Bold #BA1419
12 Label Jumlah Potongan (Rp) 13 Bold #006600
13 Label Lbljumlahpotongan 0 15 Right Bold #BA1419
10 11
12 13

Gambar 5-5. Penambahan 4 control Label ke Form Transaksi

Selanjutnya DEPT STORE menetapkan Diskon berdasarkan Jumlah Beli seperti diperlihatkan pada Tabel 5-2.

Tabel 5-2. Penetapan Diskon pada DEPT STORE


Jumlah Beli Diskon
>10 2%
>20 3%
>30 3,5 %
>50 4%
>100 5%

Berikutnya, klik Code View dari Form Transaksi seperti untuk menambahkan kode-program pada Private Sub
PROSES_Click () untuk menerapkan Diskon sebagaimana diperlihatkan pada Kode-Program 5-2.

Option Compare Database


Dim HrgSatuanBarang, JumlahBeli, Jumlahpembayaran, Jumlahpotongan, Totalbayar As Long
Dim Diskon As Single
.
.
.
Private Sub PROSES_Click()
If Me.Nomor_Faktur.Value = "" Then
.
.
.
JumlahBeli = CDec(Me.Txtjumlahbeli.Value)
If JumlahBeli <= 10 Then ’Jika nilai masukan JumlahBeli lebih kecil atau sama dengan 10, maka
Diskon = 0 ’Diberikan (ditetapkan) Diskon 0
Else
If JumlahBeli <= 20 Then ’Jika nilai masukan JumlahBeli lebih kecil atau sama dengan 20, maka
Diskon = 2 / 100 ’Diberikan 2 %
Else
If JumlahBeli <= 30 Then
Diskon = 3 / 100
Else
If JumlahBeli <= 50 Then
Diskon = 3.5 / 100
Else
If JumlahBeli <= 100 Then
Diskon = 4 / 100
Else
Diskon = 5 / 100
End If
End If
End If
End If
End If
Jumlahpembayaran = HrgSatuanBarang * JumlahBeli
Jumlahpotongan = Jumlahpembayaran * Diskon
Totalbayar = Jumlahpembayaran - Jumlahpotongan
Me.Lbljumlahpembayaran.Caption = CStr(Jumlahpembayaran) ’Tampilkan nilai Jumlahpembayaran
Me.Lbljumlahpotongan.Caption = CStr(Jumlahpotongan)
Me.Lbltotalbayar.Caption = CStr(Totalbayar)
End Sub

Selanjutnya, simpan penambahan kode-program, kembali ke View Microsoft Access, kemudian jalan Form
Transaksi (mode Form View), kemudian isikan Nomor Faktur, Nama Pembeli, Kode Barang dan Jumlah Beli
seperti pada Gambar 5-6. Kemudian klik tombol PROSES dan hasil diperlihatkan pada Gambar 5-3.

Gambar 5-6
Gambar 5-3

Berikutnya, mengacu ke Gambar 5-3, Anda ganti masukan pilihan Kode Barang: DS23001 dan Jumlah Beli: 25,
kemudian klik tombol PROSES, maka hasil diperlihatkan pada Gambar 5-8.

Gambar 5-8
5.1 Buka kembali DATABASE DEPT STORE, kemudian tambahkan tabel baru dan beri nama TBKOTATUJUAN
dimana Design View diperlihatkan pada Gambar 5-9 dan Datasheet View diperlihatkan pada Gambar 5-10.
Selanjutnya simpan dan Close TBKOTATUJUAN.

Gambar 5-9

Gambar 5-10
Langkah berikutnya, buka kembali Form Transaksi (mode Design View), kemudian Anda tambahkan bebe-
rapa control (bernomor: 14,15,16,13)sebagaimana diperlihatkan pada Gambar 5-11 dan property sheet dari
beberap control yang ditambah diperlihatkan pada Tabel 5-3.

14

16
15
13

Gambar 5-11
Tabel 5-3
No Control Property Sheet
Name Caption Border Color FS Text Align FW Fore Color
14 Label HANAKA DEPARTEMEN STORE 25 Bold #FF0066
ComboBox Cmbkotatujuan - #00B3EF 12 Bold Text 1
15
Label-ComboBox Kota Tujuan 13 Bold #000099
16 Label Tarif Tujuan (Rp) 13 Bold #000099
13 Label Lbltariftujuan - 12 Center Bold #BA1419

Selanjutnya tambahkan kode-program kemudian jalankan Form Transaksi (mode Form View) dan ketika
Anda memilih data masukan pada Kota Tujuan, maka secara otomatis muncul nilai Tarif Tujuan (Rp), sede-
mikian jika tombol PROSES diklik maka nilai Jumlah Pembayaran (Rp) memuat juga nilai Tarif Tujuan akan
ditampilkan.
6.1 Pendahuluan
Pada Microsoft Access fungsi Timer digunakan untuk menghitung durasi waktu sekarang yang dihitung sejak
pukul 00:00 (dini hari) dan hasil durasi waktu dari Timer dinyatakan dalam detik (bertipe data Single). Pukul
00:00:00 (dini hari) fungsi Timer bernilai 0 detik, jika Timer menunjukan pukul 01:00:00 (dini hari) fungsi Timer
bernilai 3600 detik (setara dengan 1 Jam). Bilamana Timer menunjukkan pukul 23:59:59, maka fungsi Timer
bernilai 86399 detik. Dalam Microsoft Access, 1 Form hanya menyediakan 1 Timer, dan fungsi Timer hanya boleh
digunakan untuk rentang waktu 24 jam saja.
6.2 Menampilkan System Pewaktuan Dan Mengambil Nilai Pewaktuan Digital
Untuk menampilkan “system pewaktuan digital” dikomputer pada Form aplikasi, Anda dapat menggunakan
fungsi Format dan fungsi Time. Ketika kita ingin menampilkan waktu digital yang senantiasa berjalan pada Form
aplikasi (lazimnya di control Label). Pada property sheet Form, klik Tab Event kemudian:
1. Klik Timer Interval, isikan nilai Timer Interval yang Anda inginkan (besarnya dinyatakan dalam satuan milli-
second), contoh: 1000 = 1000 millisecond = 1 detik
2. Klik On Timer, klik builder (…), selanjutnya pilih dan klik Code Builder kemudian klik OK, maka akan di cipta-
kan Private Sub Form_Timer () dan End Sub. Pada Private Sub ini Anda tuliskan kode-program untuk me-
nampilkan waktu digital. Kode-program dapat dituliskan dengan 2 (dua) cara yakni:
a. Kode-program dituliskan: Minute

Private Sub Form_Timer ()


Lblwaktu.Caption = Format (Time,”hh:mm:ss”)
End Sub

Fungsi Format Hour Second


Fungsi Time

b. Kode-program dituliskan:

Private Sub Form_Timer ()


Lbljam.Caption = Datetime.Time
End Sub

Fungsi Time

Satu kekurangan yang tidak disediakan pada Microsoft Access, yakni control (objek) Timer. Timer hanya disedia-
kan melalui Form pada Event On Timer. Jadi 1 Form hanya menyediakan 1 On Timer, oleh karena itu relatif sulit
untuk membuat banyak modular berbasis Timer pada 1 Form Aplikasi.
Selanjutnya untuk mengambil system pewaktuan digital yang sedang aktif dan menampilkannya pada sebuah
control Label dapat menggunakan fungsi TimeValue. Untuk mengambil nilai Jam (Hour), nilai Menit (Minute)
dan nilai Detik (Second) dari system pewaktuan digital, masing-masing dapat menggunakan fungsi Hour, Minute
dan fungsi Second.
Contoh:
nilaiwaktu = TimeValue (Time)
nilaiJam = Hour (nilaiwaktu)
nilaiMenit = Minute (nilaiwaktu)
nilaiDetik = Second (nilaiwaktu)

Sekarang, Anda buat database baru dengan nama: DATABASE PARKIR TIMUR SENAYAN, kemudian tambahkan
Form Design baru dan simpan From1 dengan nama: Form Parkir Timur Senayan. Selanjutnya Anda tambahkan
8 control seperti pada Gambar 6-1 dan property sheet dari ke 8 control diberikan pada Tabel 6-1. Simpan Form
Parkir Timur Senayan.

2
5
3 3
4 8
6

Gambar 6-1. Layout 8 control pada From Parkir Timur Senayan


Tabel 6-1. Property sheet untuk 8 control pada Gambar 6-1
Property Sheet
No Control
Name Caption Font Name Font Size Text Align Font Weight Fore Color
1 Label Lblwaktu 00:00:00 Tw Cen MT Condensed 22 Center Bold #FF0066
2 Label PARKIR TIMUR SENAYAN Hobo Std 20 Center Bold #006600
3 Label JAM MASUK Calibri 14 Bold #000099
4 Label JAM KELUAR Calibri 14 Bold #000099
5 Label Lbljammasuk 00:00:00 Tw Cen MT Condensed 19 Center Bold #FF0066
6 Label Lbljamkeluar 00:00:00 Tw Cen MT Condensed 19 Center Bold #FF0066
3 Button Btnjammasuk JAM MASUK Calibri 12 Bold #000000
8 Button Btnjamkeluar JAM KELUAR Calibri 12 Bold #000000

Selanjutnya, klik Code View dan buat kode-program sebagaimana tertera dalam Kode-Program 6-1.

Option Compare Database


Dim nilaiwaktu As Date

Private Sub Btnjamkeluar_Click()


nilaiwaktu = TimeValue(Time)
Me.Llbjamkeluar.Caption = nilaiwaktu
End Sub

Private Sub Btnjammasuk_Click()


nilaiwaktu = TimeValue(Time)
Me.Llbjammasuk.Caption = nilaiwaktu
End Sub
Private Sub Form_Load()
Me.Lblwaktu.Caption = Format(Time, "hh:mm:ss")
Me.Btnjammasuk.SetFocus
End Sub

Private Sub Form_Timer()


Me.Lblwaktu.Caption = DateTime.Time Catatan: pada Tab Event Form, set Timer Interval:
End Sub 1000

Kemudian Anda simpan kode-program dan kembali Form (klik icon View Microsoft Access). Jalan Form Parkir
Timur Senayan (mode Form View) dan hasil diperlihatkan pada Gambar 6-2.

Gambar 6-2. From Parkir Timur Senayan dalam mode From View

Selanjutnya mengacu ke Gambar 6-1, klik tombol JAM MASUK dan hasil diperlihatkan pada Gambar 6-3. Selang
beberap detik atau menit kemudian, Anda klik tombol JAM KELUAR dan hasil diperlihatkan pada Gambar 6-4.

Gambar 6-3. JAM MASUK diberikan

Gambar 6-3. JAM KELUAR diberikan


6.3 Membuat Teks Bergulir (Running Text) pada Form Aplikasi
Untuk menyelenggarakan teks bergulir pada Form aplikasi ada beberapa cara dibuat oleh seorang pemrogram.
Salah satu cara mudah untuk membuat teks bergulir menggunakan 3 (tiga) fungsi yang disediakan oleh VBA
yakni: fungsi Left, Right dan Len.
1. Fungsi Left. Fungsi ini berguna untuk mengambil karakter dari sebelah kiri String sampai jumlah karakter yang
diinginkan ke arah kanan.
Bentuk umum fungsi Left diberikan:
Left (String,Panjang)
Contoh:
Teks = “VISUAL”
x = Left (Teks,2)
Dan hasil adalah:
x = ”VI”
2. Fungsi Right. Fungsi ini berguna untuk mengambil karakter dari sebelah kanan String sampai jumlah karakter
yang diinginkan ke arah kiri.
Bentuk umum fungsi Right diberikan:
Right (String,Panjang)
Contoh:
Teks = “BASIC”
y = Right (Teks,4)
Dan hasil adalah:
Y = ”ASIC”
3. Fungsi Len. Fungsi ini berguna untuk mengambil nilai dari panjang String dan nilai tersebut dikembalikan da-
lam besaran numerik (angka).
Bentuk umum fungsi Len diberikan:
Len (String)
Contoh:
Teks = “VISUAL BASIC”
p = Len (Teks)
Dan hasil adalah:
p = 12
Sekarang buat database baru dan beri nama: DATABASE RUNNING TEXT, kemudian tambahkan Form Design
dan Close Table1, kemudian simpan Form1 dengan: Form Running Text. Selanjutnya tambahkan 2 Label seperti
pada Gambar 6-4 dan property sheet diberikan pada Tabel 6-2.

Gambar 6-4. Layout 2 control pada From Running Text


Tabel 6-2
Property Sheet
No Control
Name Caption Font Name Font Size Text Align Font Weight Fore Color
1 Tw Cen MT Condensed Extra
Label POLITEKNIK MANDIRI BINA PRESTASI 25 Center Bold #800080
Bold
Programmed by: POLIMBP COLLEGE Bahnschrift SemiLight
2 Label Lblrunningtext 13 Left Bold #006600
STUDENT ’2023 Condensed

Selanjutnya klik View Code, dan buat kode-program seperti pada Kode-Program 6-2.

Option Compare Database


Dim teks As String
Private Sub Form_Timer()
teks = Me.Lblrunningtext.Caption Catatan: pada Tab Event Form, set Timer Interval:
x = Left(teks, 1) 468
p = Len(teks)
y = Right(teks, p - 1)
teks = y & x
Me.Lblrunningtext.Caption = teks
End Sub

Kemudian jalan Form Running Text (mode Form View) dan Anda lihat hasilnya dimonitor dimana label yang
bertulisan Programmed by: POLIMBP COLLEGE STUDENT akan bergulir terus menerus dari arah kanan ke kiri.

6.4 Membuat Teks Berkedip (Blink Text) pada Form Aplikasi


Sekarang buat database baru dan beri nama: DATABASE TEKS BERKEDIP, kemudian tambahkan Form Design
dan Close Table1, kemudian simpan Form1 dengan: Form Blink Text. Selanjutnya tambahkan 2 Label seperti
pada Gambar 6-5 dan property sheet diberikan pada Tabel 6-3.

Gambar 6-5. Layout 2 control pada From Blink Text

Tabel 6-3
Property Sheet
No Control
Name Caption Font Name Font Size Text Align Font Weight Fore Color
1 Tw Cen MT Condensed Extra
Label POLITEKNIK MANDIRI BINA PRESTASI 28 Center Bold #6F3198
Bold
Tw Cen MT Condensed Extra
2 Label Lblteksberkedip JL. JAMIN GINTING NO.286 18 Center Bold Text 1
Bold
Selanjutnya klik View Code, dan buat kode-program seperti pada Kode-Program 6-3.

Option Compare Database


Dim count1 As Integer

Private Sub Form_Load()


count1 = 0
End Sub

Private Sub Form_Timer()


On Error Resume Next Catatan: pada Tab Event Form, set Timer Interval: 235
If count1 > 5 Then
Me.Lblteksberkedip.Caption = "" ’Polosankan tampilan pada Label Lblteksberkedip
End If
If count1 > 10 Then
Me.Lblteksberkedip.Caption = "JL. JAMIN GINTING NO.286"
Me.Lblteksberkedip.ForeColor = RGB(220, 20, 60) 'Crimson Color
End If
If count1 > 15 Then
Me.Lblteksberkedip.Caption = ""
End If
If count1 > 20 Then
Me.Lblteksberkedip.Caption = "JL. JAMIN GINTING NO.286"
Me.Lblteksberkedip.ForeColor = RGB(65, 105, 225) 'Royal Blue Color
End If
If count1 > 25 Then
Me.Lblteksberkedip.Caption = ""
End If
If count1 > 30 Then
Me.Lblteksberkedip.Caption = "JL. JAMIN GINTING NO.286"
Me.Lblteksberkedip.ForeColor = RGB(128, 128, 0) 'Olive Color
End If
If count1 > 35 Then
Me.Lblteksberkedip.Caption = ""
End If
If count1 > 40 Then
Me.Lblteksberkedip.Caption = "JL. JAMIN GINTING NO.286"
Me.Lblteksberkedip.ForeColor = RGB(0, 0, 0) 'Black Color
count1 = 0
End If
count1 = count1 + 1
End Sub
6.5 Membuat Fungsi Penangguhan (Tundaan) dan Mengubah Bentuk Cursor
VBA di Microsoft Access tidak menyediakan instruksi (method) untuk membuat penangguhan sementara ekse-
kusi yang sedang berjalan. Akan tetapi kita dapat membangun sebuah fungsi baru untuk menghasilkan sebuah
penangguhan atau tundaan dengan memanfaatkan fungsi Timer. Berikut Kode-Program 6-4 memperlihatkan
Public Function untuk proses tundaan.

Public Function Pause (NTunda As Variant)


Dim WTunda, Mulai As Variant
Wtunda = Ntunda
Mulai = Timer
Do While Timer < Mulai + Wtunda
DoEvents
Loop
End Function

DoEvents adalah fungsi yang digunakan untuk mengalihkan kendali program ke system operasi. Kendali program
dikembalikan, setelah system operasi selesai memproses event didalam antriannya.
Sekarang dengan ketersediaan fungsi Pause, kita dapat memanggil fungsi tersebut untuk membuat sebuah
program merubah bentuk kursor ke mode Hourglass selama waktu 500 millidetik dan setelah itu kursor kembali
kebentuk semula (default) sebagaimana diperlihatkan pada Kode-Program 6-5.

Private Sub SIMPAN_Click ()


.
.
.
DoCmd.Hourglass True ’Ubah bentuk kursor ke mode HourGlass
Pause (.5) ’Tunda 500 millidetik
DoCmd.Hourglass False ’Ubah bentuk kursor kembali ke Default
.
.
.
End Sub
6.1 Buka kembali DATABASE PARKIR TIMUR SENAYAN, kemudian tambahkan beberapa control seperti diper-
lihatkan pada Gambar 6-6, selanjutnya simpan Form.

Control Button

Control Label

Gambar 6-6.
PARKIR TIMUR SENAYAN menetapkan:
a) Selisih Detik dikenakan biaya 10 rupiah
b) Selisih Menit dikenakan biaya 42 rupiah
c) Selisih Jam dikenakan biaya 2500 rupiah
Sekarang tugas Anda menambahkan kode-program pada Kode-Program 6-1, jika Pengguna parkir men-
dapatkan selisih waktu JAM KELUAR dengan JAM MASUK, maka Pengguna parkir dikenakan biaya TOTAL
BAYAR (Rp) yang harus dibayarkan.
7.1 Pendahuluan
Ada dua cara dimana kita dapat mengakses tabel database terbuka (current database) di Microsoft Access
dengan VBA, yakni dengan menggunakan:
1. ADODB (ADO Database). ADODB adalah sebuah pusaka class sumber data, dimana pustaka ini mengandung
sekumpulan objek dan metoda (kumpulan perintah yang sudah tersedia didalam suatu objek) yang mana kita
dapat berhubungan dengan tabel pada database terbuka.
2. Method CurrentDb. Fungsi ini bergunakan untuk mengakses database terbuka saat ini dari kode Visual Basic
tanpa arus mengetahui nama Database.
Oleh karena penggunaan method CurrentDB lebih simple dibandingkan menggunakan ADODB, maka penulis
hanya menggunakan fungsi ini dalam hal menyimpan, mencari, menghapus dan memperbaharui record pada
tabel di database.

7.2 Menyimpan Record ke Database


Untuk melakukan penyimpanan data masukan/keluaran pada Form aplikasi ke tabel (sebagai record) di data-
base, kita dapat menggunakan method CurrentDb diikuti sintak standar SQL (Structure Query Languange) Insert
dan mengikuti aturan tambahan yang berlaku dalam bahasa pemrograman VBA. Adapun perintah untuk
menyimpan data diberikan sebagai berikut:

CurrentDb.Execute ”Insert Into NamaTabel ([Field-1],[Field-2],…,[Field-n]) Values (Control-1,Control-2,…,Control-n)”

Dimana:
1. NamaTabel adalah nama dari tabel yang sudah disiapkan pada database yang akan dimuati/disimpan record-
record kedalam tabel tersebut.
2. [Field-1], [Field-2],…,[Field-n] adalah nama field yang diberikan bersesuaian urutannya dengan nama field di
tabel yang diakses. Tanda [ ] bersifat opsi, digunakan bilamana nama field dalam tabel yang diakses
mengandung spasi.
3. Control-1,Control-2,…,Control-n adalah nama control (objek) atau nama perubah pada program yang
datanya akan disimpan berturut-turut ke Field-1, Field-2,…,Field-n pada tabel yang diakses. Control lazimnya
dituliskan sebagai berikut:
a. Jika Control untuk mengisi ke field bertipe Short Text di tabel, maka Control harus dituliskan dalam
bentuk:
’” & Control & ”’
Contoh:
’” & Txtnofaktur.Value & ”’
’” & Lbltotalbayar.Caption & ”’
’” & Cmdkodebarang.Value & ”’
b. Jika Control untuk mengisi ke field bertipe Number di tabel, maka Control harus dituliskan dalam bentuk:
” & Control & ”
Contoh:
” & Txtjumlahbeli.Value & ”
” & Lblhargasatuan.Caption & ”
” & Diskon & ”

Sekarang buat database baru dan beri nama: DATABASE MART STORE 23, kemudian tambahkan 2 (dua) tabel
masing-masing Anda beri nama TBBARANG dan TBTRANSAKSI sebagaimana Design View diperlihatkan pada
Gambar 7-1 dan Gambar 7-2. Selanjutnya Datasheet View dari TBBARANG untuk isian recordnya diperlihat-kan
dalam Gambar 7-3.

Gambar 7-1. Design View dari TBBARANG

Gambar7-2. Design View dari TBTRANSAKSI

Gambar 7-3. Datasheet View dari TBBARANG


Langkah berikutnya, Anda tambahkan sebuah Form Design dan simpan dengan nama From Mart Store 23.
Kemudian pada Form tambahkan control Tab Control, dimana pada Page 1 dengan Caption INPUT/OUTPUT
DATA dimuat sejumlah control sebagaimana diperlihatkan pada Gambar 7-4 (a). Pada Page 2 dengan Caption
DATABASE TRANSAKSI dimuat sebuah control ListBox sebagaimana diperlihatkan pada Gambar 7-4 (b). Tabel
7-1 memperlihatkan pengaturan property sheet untuk control-control bernomor 1 s/d 11 pada Gambar 7-4.
1

3
2 9
3
4
5 10
6

(a) Layout 10 control pada Page INPUT/OUTPUT DATA

11

(b) Layout 1 control pada Page DATABASE TRANSAKSI


Gambar 7-4. Design View dari Form Mart Store 23

Tabel 7-1. Pengaturan property sheet untuk control-control pada Form Mart Store 23

No Control Property Sheet


Name Caption Bord Col FN FS Text Align FW Fore Col
1 Label MART STORE 23 Tw Cen MT Condensed Extra Bold 40 Center Bold #BA1419
Label-TextBox Nomor Faktur: Calibri 11 Bold #000099
2
TextBox Txtnomorfaktur #00B3EF Calibri 11 Left Bold Text 1
Label-TextBox Nama Pembeli: Calibri 11 Bold #000099
3
TextBox Txtnamapembeli #00B3EF Calibri 11 Left Bold Text 1
Label-TextBox Tanggal Pembelian: Calibri 11 Bold #000099
4
TextBox Txttanggalpembelian #00B3EF Calibri 11 Left Bold Text 1
Label-ComboBox Kode Barang: Calibri 11 Bold #000099
5
ComboBox Cmbkodebarang #00B3EF Calibri 11 Left Bold Text 1
Label-ComboBox Jumlah Pembelian: Calibri 11 Bold #000099
6
ComboBox Cmbjumlahpembelian #00B3EF Calibri 11 Left Bold Text 1
3 Button Butproses PROSES Tw Cen MT Condensed Extra Bold 20 Center Bold #6F3198
8 Button Butsimpan SIMPAN Tw Cen MT Condensed Extra Bold 20 Center Bold #FF0000
9 Label TOTAL PEMBAYARAN (Rp) Tw Cen MT Condensed Extra Bold 40 Center Bold #006600
10 Label Lbltotalpembayaran 0 Tw Cen MT Condensed Extra Bold 100 Center Bold #FF0066
11 ListBox Lstdatabasetransaksi Ebrima 12 Bold Text 1
Selanjutnya untuk menjalankan program aplikasi pada Form Mart Store 23 sesuai dengan keinginan, maka diberi
kode-program sebagaimana diperlihatkan pada Kode-Program 7-1.

Option Compare Database


Dim rekorset As Recordset
Dim Hrgsatuanbarang, jumlahpembelian, totalpembayaran As Long
Public Function Pause(NTunda As Variant)
Dim WTunda, Mulai As Variant
WTunda = NTunda
Mulai = Timer
Do While Timer < Mulai + WTunda
DoEvents
Loop
End Function
Private Sub ShowDatabase()
Me.Lstdatabasetransaksi.RowSource = "Select * From TBTRANSAKSI"
End Sub
Private Sub DisableDatain()
Me.Txtnomorfaktur.Enabled = False
Me.Txtnamapembeli.Enabled = False
Me.Txttanggalpembelian.Enabled = False
Me.Cmbkodebarang.Enabled = False
Me.Cmbjumlahpembelian.Enabled = False
End Sub
Private Sub EnableDatain()
Me.Txtnomorfaktur.Enabled = True
Me.Txtnamapembeli.Enabled = True
Me.Txttanggalpembelian.Enabled = True
Me.Cmbkodebarang.Enabled = True
Me.Cmbjumlahpembelian.Enabled = True
End Sub
Private Sub ClearDatain()
Me.Txtnomorfaktur.Value = ""
Me.Txtnamapembeli.Value = ""
Me.Txttanggalpembelian.Value = ""
Me.Cmbkodebarang.Value = ""
Me.Cmbjumlahpembelian.Value = "0"
Me.Lbltotalpembayaran.Caption = "0"
End Sub
Private Sub Butsimpan_Click()
Set rekorset = Application.CurrentDb.OpenRecordset("Select * From TBTRANSAKSI Where [Nomor Faktur]='" &
Me.Txtnomorfaktur.Value & "'")
If rekorset.EOF Then
Application.CurrentDb.Execute "Insert Into TBTRANSAKSI ([Nomor Faktur],[Nama Pembeli],[Tanggal Pembelian],[Kode
Barang],[Jumlah Pembelian],[Total Pembayaran]) Values ('" & Me.Txtnomorfaktur.Value & "','" &
Me.Txtnamapembeli.Value & "','" & Me.Txttanggalpembelian.Value & "','" & Me.Cmbkodebarang.Value & "'," &
Me.Cmbjumlahpembelian.Value & "," & Me.Lbltotalpembayaran.Caption & ")"
Call ShowDatabase 'Panggil Private Sub ShowDatabase
Call EnableDatain 'Panggil Private Sub EnableDatain
Call ClearDatain 'Panggil Private Sub ClearDatain
Me.Butsimpan.Enabled = False 'Disable (non aktifkan) tombol SIMPAN
Me.Butproses.Enabled = True 'Enable (aktifkan)tombol PROSES
Else
MsgBox ("Nomor Faktur sudah digunakan...?" & vbNewLine & "Ganti Nomor Faktur")
Me.Txtnomorfaktur.Enabled = True
Me.Txtnomorfaktur.SetFocus 'Tempat kursor ke TextBox (Nama: Txtnomorfaktur)
End
End If
End Sub
Private Sub Cmbkodebarang_Change()
Set rekorset = Application.CurrentDb.OpenRecordset("Select * From TBBARANG Where [Kode Barang]='" &
Me.Cmbkodebarang.Text & "'")
Hrgsatuanbarang = rekorset![Harga Satuan]
End Sub
Private Sub Butproses_Click()
If Me.Txtnomorfaktur.Value = "" Then
MsgBox ("Nomor Faktur harus diisi...?")
Me.Txtnomorfaktur.SetFocus
End 'Memaksa program aplikasi berhenti berjalan
End If
If Me.Txtnamapembeli.Value = "" Then
MsgBox ("Nama Pembeli harus diisi...?")
Me.Txtnamapembeli.SetFocus
End
End If
If Me.Txttanggalpembelian.Value = "" Then
MsgBox ("Tanggal Pembelian harus diisi...?")
Me.Txttanggalpembelian.SetFocus
End
End If
If Me.Cmbkodebarang.Value = "" Then
MsgBox ("Kode Barang harus diisi...?")
Me.Cmbkodebarang.SetFocus
End
End If
If Me.Cmbjumlahpembelian.Value = "0" Then
MsgBox ("Jumlah Pembelian tidak boleh 0...?")
Me.Cmbjumlahpembelian.SetFocus
End
End If
jumlahpembelian = CDec (Me.Cmbjumlahpembelian.Value)
totalpembayaran = Hrgsatuanbarang * jumlahpembelian
Me.Lbltotalpembayaran.Caption = CStr (totalpembayaran)
Me.Butproses.Enabled = False
Me.Butsimpan.Enabled = True
Call DisableDatain
End Sub
Private Sub Form_Load()
Call ClearDatain
Me.Butsimpan.Enabled = False
Call ShowDatabase
End Sub

Mengacu ke Gambar 7-4, pada Property Sheet dari Form, atur: 1) Auto Center: Yes, 2) Border Style: Dialog, 3)
Record Selector: No, 4) Navigation Buttons: No, 5) Scroll Bars: Neihter,6) Close Button: No, kemudian pada Tab
Other atur: Pop Up: Yes dan selanjutnya simpan dan tutup (Close) Form.
Kemudian jalankan Form Mart Store 23 dengan masukan data seperti pada Gambar 7-5. Perhatikan Gambar 7-
5, bahwa tombol SIMPAN berstatus disable (nonaktif) sampai menunggu tombol PROSES di klik. Kemudian Anda
klik tombol PROSES dan hasil diperlihatkan pada Gambar 7-6.
Gambar 7-5. Form Mart Store 23 (mode Form View) dengan pemberian data masukan

Perhatikan Gambar 7-6, ketika tombol PROSES diklik, maka tombol SIMPAN menjadi aktif (enable) dan semua
control untuk data masukan menjadi berstatus nonaktif (disable) demikian juga dengan tombol PROSES. Ini
bertujuan agar klik PROSES hanya boleh dilakukan sekali saja sampai menunggu data disimpan.

Gambar 7-6. Hasil ketika tombol PROSES di klik

Berikutnya mengacu ke Gambar 7-6, Anda klik tombol SIMPAN dan hasil diperlihatkan pada Gambar 7-3.
Selanjutnya Anda klik page DATABASE TRANSAKSI dan hasil diperlihatkan pada Gambar 7-8.

Gambar 7-3. Hasil ketika tombol SIMPAN di klik


Gambar 7-8. Tampilan data isian pada ListBox di page DATABASE TRANSAKSI

Sekarang Anda buka kembali TBTRANSAKSI, bahwa record dengan Nomor Faktur: DMS23003 telah disimpan
pada TBTRANSAKSI sebagaimana diperlihatkan pada Gambar 7-9.

Gambar 7-9. Record dengan Nomor Faktur: DMS23003 telah disimpan ke TBTRANSAKSI

7.3 Menghapus Record Di Database


Untuk menghapus sebuah record atau semua record dalam tabel di database melalui Form aplikasi yang Anda
bangun lazimnya dilaksanakan dengan sintak standar SQL Delete. Menggunakan method CurrentDb, maka
perintah untuk menghapus sebuah record diberikan sebagai berikut:

CurrentDb.Execute ”Delete From NamaTabel Where [Field] = ’” & Control & ”’”

Dan untuk menghapus semua record dalam tabel di database gunakan perintah:

CurrentDb.Execute ”Delete From NamaTabel”

Dimana:
1. NamaTabel adalah nama dari tabel yang sudah disiapkan pada database yang akan dihapus recordnya.
2. [Field] adalah nama field di tabel yang diakses dan memiliki Primary Key. Tanda [ ] bersifat opsi, digunakan
bilamana nama field dalam tabel yang diakses mengandung spasi.
3. Control adalah nama control yang digunakan pada Form aplikasi yang mana data masukannya identik dengan
data dimuat dalam Field.

Sekarang buka kembali DATABASE MART STORE 23, dan buka Form Mart Store 23 (mode Design View), kemudi-
an Anda tambahkan sebuah control Button dan atur tata letaknya seperti diperlihatkan pada Gambar 7-10 dan
Tabel 7-2 memperlihatkan pengaturan property sheet dari Button tersebut. Selanjutnya kembali Anda simpan
From Mart Store 23.
Gambar 7-10. Sebuah control Button dengan Caption DELETE di tambahkan ke Form Mart Store 23

Tabel 7-2. Pengaturan property sheet untuk Button DELETE pada Form Mart Store 23

No Control Property Sheet


Name Caption Bord Col FN FS Text Align FW Fore Col
3 Button Butdelete DELETE Tw Cen MT Condensed Extra Bold 20 Center Bold #000099

Kemudian Anda tambahkan Event On Click pada tombol DELETE, dan selanjutnya buat kode-program seperti
pada Kode-Program 7-2.

Private Sub Butdelete_Click()


If Me.Txtnomorfaktur.Value = "" Then
MsgBox ("Nomor Faktur tidak boleh kosong...?")
Me.Txtnomorfaktur.SetFocus
End
End If
Set rekorset = CurrentDb.OpenRecordset("Select * From TBTRANSAKSI Where [Nomor Faktur]='" &
Me.Txtnomorfaktur.Value & "'")
If Not rekorset.EOF Then
If MsgBox("Yakin record untuk dihapus...?", vbOKCancel, "KONFIRMASI") = vbOK Then
CurrentDb.Execute "Delete From TBTRANSAKSI Where[Nomor Faktur]='" & Me.Txtnomorfaktur.Value & "'"
ShowDatabase
Me.Txtnomorfaktur.Value = ""
End If
Else
MsgBox ("Nomor Faktur tidak ditemukan...?" & vbNewLine & "Ganti Nomor Faktur")
Me.Txtnomorfaktur.Value = ""
Me.Txtnomorfaktur.SetFocus
End If
End Sub
Sekarang jalankan Form Mart Store (mode Form View) sebagaimana diperlihatkan pada Gambar 7-12. Selanjut-
nya Anda klik tombol DELETE dan hasil diperlihatkan pada Gambar 7-13. Perhatikan kembali Gambar 7-13, oleh
karena Anda lupa mengisikan Nomor Faktur untuk record ini dihapus, maka muncul pesan.

Gambar 7-12. Form Mart Store 23 mode Form View

Gambar 7-13. Muncul pesan karena lupa mengisi Nomor Faktur

Mengacu ke Gambar 7-13, klik tombol OK dan selanjutnya kembali Anda masukan Nomor Faktur: DMS23003,
kemudian tekan tombol DELETE dan hasil diperlihatkan dalam Gambar 7-14.

Gambar 7-14. Muncul pesan, bila Nomor Faktur yang diinput ada dalam TBTRANSAKSI
Mengacu ke Gambar 7-14, Anda tekan tombol OK jika setuju record dihapus, atau tekan tombol Cancel jika
membatalkan penghapusan record. Jika tombol OK ditekan hasil diperlihatkan pada Gambar 7-15.

Gambar 7-15. Record dengan Nomor Faktur: DMS23003 telah dihapus

Selanjutnya Anda klik page DATABASE TRANSAKSI dan hasil diperlihatkan pada Gambar 7-16, bahwa record
dengan Nomor Faktur: DMS23003 telah hapus dari ListBox (Name: Lstdatabasetransaksi), ini berarti juga bahwa
record juga sudah dibuang/dihapus dari TBTRANSAKSI (lihat Gambar 7-13)

Gambar 7-16. Record dengan Nomor Faktur: DMS23003 telah dihapus dari ListBox

Gambar 7-13. Record dengan Nomor Faktur: DMS23003 telah dihapus dari TBTRANSAKSI
7.4 Mencari Record Di Database
Untuk mencari sebuah record atau dalam tabel di database melalui Form aplikasi yang Anda bangun lazimnya
dilaksanakan dengan sintak standar SQL Select. Menggunakan method CurrentDb, maka perintah untuk mencari
sebuah record diberikan sebagai berikut:

Set NamaPerubah = CurrentDb.OpenRecorset (”Select * From NamaTabel Where [Field] = ’” & Control & ”’”)

Dimana:
1. Set adalah statement yang digunakan untuk menetapkan referensi objek (tabel) ke perubah.
2. NamaPerubah adalah perubah yang memegang data dari referensi objek dan objek lazimnya tabel.
3. NamaTabel adalah nama dari tabel yang sudah disiapkan pada database yang akan dicari recordnya melalui
field yang memiliki primary key
4. [Field] adalah nama field di tabel yang diakses dan memiliki Primary Key. Tanda [ ] bersifat opsi, digunakan
bilamana nama field dalam tabel yang diakses mengandung spasi.
5. Control adalah nama control yang digunakan pada Form aplikasi yang mana data masukannya identik dengan
data dimuat dalam Field .
Perintah mencari record diatas, telah banyak digunakan dalam bab-bab sebelumnya seperti pada Kode-Program
8-1, Kode-Program 8-2.
Sekarang, Anda buka kembali DATABASE MART STORE 23, kemudian tambahkan sebuah control Button dan
atur tata letaknya sebagaimana diperlihatkan pada Gambar 7-18 dan Tabel 7-3 memperlihatkan pengaturan
property sheet dari Button CARI tersebut.

Gambar 7-18. Sebuah control Button dengan Caption CARI di tambahkan ke Form Mart Store 23

Tabel 7-3. Pengaturan property sheet untuk Button CARI pada Form Mart Store 23
No Control Property Sheet
Name Caption Bord Col FN FS Text Align FW Fore Col
3 Button Butcarirecord CARI Tw Cen MT Condensed Extra Bold 20 Center Bold #006600

Selanjutnya, klik Menu Create, klik More Form, pilih dan klik Modal Form, simpan Form dengan nama: Form
Find Record, kemudian tambahkan beberapa control seperti diperlihatkan pada Gambar 7-19 dan Tabel 7-4
memperlihatkan pengaturan property sheet control-control yang dimuat dalam Form tersebut.
1

3
4

Gambar 7-19. Layout 4 control pada From Find Record

Tabel 7-4. Pengaturan property sheet untuk control pada Form Find Record
No Control Property Sheet
Name Caption Border Color Font Name Font Size Text Align Font W Fore Col
Label-TextBox Nomor Faktur: Calibri 15 Bold #000099
1
TextBox Txtnofak #00B3EF Calibri 14 Left Bold Text 1
2 Button Butcarirecord CARI Tw Cen MT Condensed Extra Bold 20 Center Bold #FF0066
3 Label Show Record Calibri 13 Left Bold #000099
4 ListBox Lstshowrecord Ebrima 11 Bold #003300

Tambahan untuk pengaturan ListBox (No 4), atur juga: 1) Column Count: 6, 2) Column Heads: Yes

Langkah berikutnya, aktifkan Tab Form Mart Store 23, kemudian Anda tambahkan Event On Click pada tombol
CARI, dan selanjutnya buat kode-program seperti pada Kode-Program 7-3 dan simpan kode-program.

Private Sub Butcarirecord_Click()


Application.DoCmd.OpenForm "Form Find Record"
End Sub

Selanjutnya, kembali ke Tab Form Find Record, kemudian Anda tambahkan kode-program sebagaimana diper-
lihatkan pada Kode-Program 7-4.

Option Compare Database


Dim rs As Recordset
Private Sub Butcarirecord_Click()
Set rs = Application.CurrentDb.OpenRecordset("Select * From TBTRANSAKSI Where [Nomor Faktur]='" &
Me.Txtnofaktur.Value & "'")
If Not rs.EOF Then
Me.Lstshowrecord.RowSource = "Select * From TBTRANSAKSI Where [Nomor Faktur]='" &
Me.Txtnofaktur.Value & "'"
MsgBox ("Record dicari ditemukan...?")
Else
Me.Lstshowrecord.RowSource = "Select * From TBTRANSAKSI Where [Nomor Faktur]='" &
Me.Txtnofaktur.Value & "'"
MsgBox ("Record dicari tidak ditemukan ditemukan...?")
Me.Txtnofaktur.Value = ""
Me.Txtnofaktur.SetFocus
End If
End Sub
Private Sub Form_Load()
Me.Txtnofaktur.Value = ""
Me.Txtnofaktur.SetFocus
End Sub

Private Sub Txtnofaktur_KeyPress(KeyAscii As Integer)


KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Sekarang tutup (Close) Form Find Record, kemudian jalankan Form Mart Store 23 (mode Form View) sebagai-
mana diperlihatkan pada Gambar 7-20. Selanjutnya masukan data berturut-turut (lihat Tabel 7-5) dan simpan
data-data masukan tersebut.

Gambar 7-20. From Mart Store dalam mode Form View

Tabel 7-5

Mengacu ke Gambar 7-19, Anda klik tombol CARI dan hasil diperlihatkan dalam Gambar 7-21.

Gambar 7-21. From Find Record dibuka


Selanjutnya mengacu ke Gambar 7-21, Anda masukan Nomor Faktur yang akan dicari, misal masukan Nomor
Faktur: DMS23004 dan hasil diperlihatkan pada Gambar 7-22, kemudian tekan tombol OK.

Gambar 7-22. Pesan muncul ketika Nomor Faktur yang dicari ditemukan

Sekarang, coba Anda masukan data Nomor Faktur: DMS23008, maka hasil diperlihatkan pada Gambar 7-23.

Gambar 7-23. Pesan muncul ketika Nomor Faktur yang dicari tidak ditemukan

7.5 Memperbaharui Record Ke Database


Terkadang kita perlu untuk memperbaharui data pada sebuah tabel Barang, misalnya memperbaharui data Stok
barang dan Harga Satuan barang sering kenaikan harga barang tersebut. Seyogyanya pengguna aplikasi tidak
berhubungan langsung ke tabel Barang untuk melakukan perubahan data, akan tetapi diakses perubahan data-
nya melalui program aplikasi yang telah dibangun, artinya program aplikasi menyediakan bagian untuk melaku-
kan pembaharuan data pada tabel Barang tersebut.
Untuk memperbaharui data dari sebuah record dalam tabel di database melalui Form aplikasi yang Anda bangun
lazimnya dilaksanakan dengan sintak standar SQL Update. Menggunakan method CurrentDb, maka perintah
untuk memperbaharui data record diberikan sebagai berikut:

CurrentDb.Execute ”Update NamaTabel Set [Field-1] = Control-1,…,[Field-n] = Control-n Where [Field] = ’” & Control & ”’”

Dimana:
1. NamaTabel adalah nama dari tabel yang sudah disiapkan pada database yang akan diperbaharui nilai record-
nya.
2. Field-1,Field-n adalah nama field di tabel yang diakses untuk diperbaharui datanya.
3. [Field] adalah nama field di tabel yang diakses dan memiliki Primary Key. Tanda [ ] bersifat opsi, digunakan
bilamana nama field dalam tabel yang diakses mengandung spasi.
4. Control-1,…,Control-n adalah nama control yang digunakan pada Form aplikasi yang datanya akan mem-
perbaharui (mengganti) berturut-turut ke Field-1,…,Field-n pada tabel yang diakses.
5. Control adalah nama control yang digunakan pada Form aplikasi yang mana data masukannya identik dengan
data dimuat dalam Field yang disematkan primary key.
Sekarang mari kita laksanakan maksud dan tujuan paragraf pertama dari subbab ini. Buka kembali DATABASE
MART STORE 23, kemudian buka Form Mart Store 23 (mode Design View), klik mouse-kanan dalam area Form
maka muncul jendela Popup menu seperti pada Gambar 7-24. Selanjutnya, pilih dan klik Insert Page maka akan
ditambahkan pada Form Mart Store 23 sebuah Page, dan ganti Caption dari page tersebut menjadi UPDATE
TBBARANG, dan pada page UPDATE TBBARANG tambahkan beberapa control sebagaimana hasilnya diperlihat-
kan pada Gambar 7-25. Dan Tabel 7-6 memperlihatkan pengaturan property sheet dari control bernomor 1,2,3,4
dan 5 pada Page UPDATE TBTRANSAKSI.

Gambar 7-24. Menambahkan Page ke Form Mart Store 23

1
2
3 5
4

Gambar 7-25. Layout 5 control pada Form Mart Store 23


Tabel 7-6. Pengaturan property sheet dari control-control pada Page UPDATE TBBARANG

Control Property Sheet


No
Name Caption Border Color Font Name Font Size Text Align Font W Fore Col
1 Label-ComboBox Kode Barang: Calibri 16 Bold #000099
ComboBox Cmbkodebrg #00B3EF Calibri 16 Left Bold Text 1
2 Label-TextBox Nama Barang: Calibri 16 Bold #000099
TextBox Txtnamabrg #00B3EF Calibri 16 Left Bold Text 1
3 Label-TextBox Harga Satuan: Calibri 16 Bold #000099
TextBox Txthrgsatuan #00B3EF Calibri 16 Left Bold Text 1
4 Label-TextBox Stok: Calibri 16 Bold #000099
TextBox Txtstokbrg #00B3EF Calibri 16 Left Bold Text 1
5 Button Butupdate UPDATE Tw Cen MT Condensed Extra Bold 45 Center Bold #FF0066

Selanjutnya buat Fungsi Pause sebagaimana diperlihatkan pada Kode-Program 7-5.

Public Function Pause(NTunda As Variant)


Dim WTunda, Mulai As Variant
WTunda = NTunda
Mulai = Timer
Do While Timer < Mulai + WTunda
DoEvents
Loop
End Function

Kemudian pada Event On Click dari Button UPDATE tambahkan kode-program sebagaimana diperlihatkan pada
Kode-Program 7-6.

Private Sub Butupdate_Click()


If Me.Cmbkodebrg.Value = "" Then
MsgBox ("Kode Barang harus diisi terlebih dahulu...?")
Me.Cmbkodebrg.SetFocus
End
End If
If MsgBox("Yakin data akan di Update...?", vbOKCancel, "KONFIRMASI") = vbOK Then
Application.CurrentDb.Execute "Update TBBARANG Set[Harga Satuan]=" & Me.Txthrgsatuan.Value & ",[Stok]="
& Me.Txtstokbrg.Value & " Where[Kode Barang]='" & Me.Cmbkodebrg.Value & "'"
Application.DoCmd.Hourglass True
Pause (0.3)
Application.DoCmd.Hourglass False
End If
Me.Cmbkodebrg.Value = "" 'Kosong kembali nilai Kode Barang
Me.Txtnamabrg.Value = "" 'Kosong kembali nilai Nama Barang
Me.Txthrgsatuan.Value = "" 'Kosong kembali nilai Harga Satuan
Me.Txtstokbrg.Value = "" 'Kosong kembali nilai Stok
End Sub

Berikutnya pada Event On Change dari ComboBox (Name: Cmbkodebrg) tambahkan kode-program sebagai-
mana diperlihatkan pada Kode-Program 7-3.
Private Sub Cmbkodebrg_Change()
Set rekorset = CurrentDb.OpenRecordset("Select * From TBBARANG Where [Kode Barang]='" &
Me.Cmbkodebrg.Text & "'")
Me.Txtnamabrg.Value = rekorset![Nama Barang]
Me.Txthrgsatuan.Value = rekorset![Harga Satuan]
Me.Txtstokbrg.Value = rekorset![Stok]
End Sub

Kemudian Anda sisipkan kode program pada Private Sub Form_Load () seperti pada Kode-Program 7-8.

Private Sub ClearDatain()


Me.Txtnomorfaktur.Value = ""
Me.Txtnamapembeli.Value = ""
Me.Txttanggalpembelian.Value = ""
Me.Cmbkodebarang.Value = ""
Me.Cmbjumlahpembelian.Value = "0"
Me.Lbltotalpembayaran.Caption = "0"
Me.Cmbkodebrg.Value = ""
Me.Txtnamabrg.Value = "" Sisip kode-program disini
Me.Txthrgsatuan.Value = ""
Me.Txtstokbrg.Value = ""
End Sub

Sekarang jalan Form Mart Store 23 (mode Form View) dan klik Page UPDATE TBBARANG dan hasil diperlihatkan
pada Gambar 7-26.

Gambar 7-26. Page UPDATE TBBARANG dibuka

Mengacu ke Gambar 7-26, coba Anda klik tombol UPDATE (tanpa data masukan/pilihan pada Kode Barang),
maka hasil diperlihatkan pada Gambar 7-27. Selanjutnya klik tombol OK, maka tampilan kembali seperti pada
Gambar 7-26. Kemudian pilih data masukan pada Kode Barang, misal pilih ZWSL001, maka hasil diperlihatkan
seperti pada Gambar 7-28.
Gambar 7-27. Pesan muncul ketika data pilihan Kode Barang kosong

Gambar 7-28. Kode Barang dipilih, maka nilai Nama Barang, Harga Satuan dan Stok muncul

Sekarang mengacu ke Gambar 7-28, Anda akan mengubah Harga Satuan (disebabkan kenaikan harga pembeli-
an dari Distributor) menjadi 13500 dan akan menambah Stok barang menjadi 100 sebagaimana diperlihatkan
pada Gambar 7-29.

Gambar 7-29. Kode Barang dipilih, maka nilai Nama Barang, Harga Satuan dan Stok muncul
Mengacu ke Gambar 7-29, selanjutnya klik tombol UPDATE dan hasil diperlihatkan pada Gambar 7-30. Jika
yakin akan diperbaharui data pada TBBARANG, maka klik tombol OK, jika tidak klik tombol Cancel.
Gambar 7-30. Kode Barang dipilih, maka nilai Nama Barang, Harga Satuan dan Stok muncul
Sebagai pembuktian bahwa nilai Harga Satuan dan Stok dari Kode Barang: ZWSL001 telah diperbaharui pada
TBBARANG, maka Anda klik TBBARANG pada Shutter Bar dan hasil diperlihatkan pada Gambar 7-31.

Gambar 7-31. Kode Barang dipilih, maka nilai Nama Barang, Harga Satuan dan Stok muncul
7.1 Buka file DATABASE MART STORE 23 kemudian buka Form Mart Store 23 (mode Design View), tambah-
kan 5 control Label sebagaimana diperlihatkan pada Gambar 7-32. Tabel 7-3 memperlihatkan peng-
aturan property sheet dari ke 6 control bernomor 1,2,3,4,5 dan 6.

1 2
3 4
5 6

Gambar 7-32

Tabel 7-3
Control Property Sheet
No
Name Caption Border Color Font Name Font Size Text Align Font Weight Fore Color
1 Label Nama Barang: Calibri 11 Bold #000099
2 Label Lblnamabarang - #00B3EF Calibri 11 Left Bold Text 1
3 Label Harga Satuan: Calibri 11 Bold #000099
4 Label Lblhargasatuan - #00B3EF Calibri 11 Left Bold Text 1
5 Label Stok: Calibri 11 Bold #000099
6 Label Lblstok - #00B3EF Calibri 11 Left Bold Text 1

Selanjutnya tugas Anda melengkapi kode-program aplikasi Form Mart Store 23 pada View Code dimana
diinginkan jika Form aplikasi dijalankan (mode Form View):
a) Kode Barang dipilih, maka secara otomatis Nama Barang, Harga Satuan dan Stok muncul di Form Mart
Store 23.
b) Jika Anda atau pengguna mengisi Jumlah pembelian melebihi Stok dari barang, maka muncul pesan
dimonitor: Jumlah Pembelian melebihi Stok…? Ketika tombol Proses diklik.
c) Tombol SIMPAN diklik, maka nilai field Stok pada TBBARANG otomatis berubah karena telah ber-
kurang akibat Jumlah Pembelian.

Anda mungkin juga menyukai