Training MS Access - Agustus 2018

Setelah hampir setahun RumahAccess tidak melaksanakan Regular Training, sekarang kami buka kesempatan rekan-rekan untuk mengikuti satu sesi training yang in syaa Allah akan diadakan pada hari Sabtu-Minggu, 25-26 Agustus 2018, tempat: Gedung BizzCentrum, Jl. Sabang No. 50 Menteng, Jakarta Pusat (dekat Sarinah/Monas).

Email pemberitahuan telah dikirimkan kepada calon peserta yang sudah melakukan pendaftaran sebelumnya, dan jika anda belum melakukan pendaftaran, segera kirimkan email pendaftaran ke: training@RumahAccess.com dengan mencantumkan data sbb:

  • Materi yang diinginkan:
  • Nama lengkap (untuk sertifikat):
  • Alamat lengkap:
  • Pekerjaan / Jabatan:
  • Perusahaan/Instansi:
  • Nomor kontak (HP):

Materi hari pertama: MS Access - BASIC (klik untuk lihat training profile)
Materi hari kedua: MS Access - Programming (klik untuk lihat training profile)

Training dimulai jam 09:00 s/d 17:00
Instruktur: Haer Talib (lihat: HaerTalib.com / Haer.RumahAccess.com)
Biaya: Rp 798.000,- / materi / orang
(Dua materi = Rp 1.596.000,- / orang)

(Sebaiknya langsung mengambil dua hari agar kontinyu).

Manfaatkan kesempatan ini karena jadwal berikutnya tidak dapat dipastikan.
Segera kirim email pendaftaran / respon agar anda mendapat seat. Maaf, karena tempat terbatas, maka siapa cepat yang dapat.

Silahkan share info ini ke saudara/rekan lain yang membutuhkan.
Terima kasih.

Belajar MS Access (9)

Oleh: Haer Talib (HaerTalib.com)

Artikel ini merupakan lanjutan artikel Belajar MS Access (8).

Keterangan:
Artikel Belajar MS Access ditulis secara bersambung di www.RumahAccess.com sebagai bahan belajar/tutorial bagi pemula. Dalam tulisan ini dibahas cara pembuatan database dan aplikasi Invoice sebagai contoh kasusnya.


Pada artikel sebelumnya kita telah membuat form untuk membuat (memasukkan data) Invoice (frm_Invoice). Sekarang kita lanjutkan.

Jalankan Microsoft Access, lalu buka file database Invoice.accdb yang telah kita buat pada latihan-latihan sebelumnya (NOTE: jika anda baru menemukan artikel ini, anda harus memulai dari artikel pertama karena mengandung latihan yang berkesinambungan).

MEMBUAT SUBFORM


Subform kita perlukan untuk memasukkan detail data Invoice, biasanya berupa list item-item pekerjaan atau barang yang dikirim. Subform ini berdasarkan data pada table tbl_Invoice_detail.

Untuk membuat subform, lakukan langkah-langkah sebagai berikut:
  1. Klik ribbon tab CREATE, klik “Form Design”.
  2. Langsung simpan form dengan nama: frm_Invoice_dtl
  3. Tekan F4 untuk menampilkan Property Sheet.
  4. Pada property Record Source, klik tombol Builder […] di bagian kanan untuk menampilkan Query Builder.
  5. Pada query, tambahkan table tbl_Invoice_detail.
  6. Klik-ganda * (asterik) pada kotak field untuk menambahkan * ke dalam grid. (Ingat: * artinya meng-include-kan semua field).
  7. Pada kolom kedua, ketik rumus: Jumlah: [Qty]*[Harga]
  8. Pada kolom ketiga, pilih field NomorUrut, lalu pilih Sort: Ascending. Hilangkan tanda centang pada baris Show. Kolom ketiga ini dimaksudkan agar data detail Invoice diurutkan berdasarkan field NomorUrut, namun field ini tidak perlu ditampilkan lagi karena sudah include dalam tanda * di kolom pertama. Jika tanda centang pada baris Show tidak dihapus maka akan ada dua field NomorUrut, dan Access akan otomatis memberikan nama alias yang justru bisa membuat kita bingung.


Gambar-1. Query untuk Record Source form frm_Invoice_dtl

9.    Setelah query di atas jadi, tutup Query Builder untuk kembali ke form. Jawab “Yes” jika ada pertanyaan konfirmasi dari Access.
10.    Pada Form Design, klik ribbon tab DESIGN, klik “Add Existing Fields” (atau bisa juga menekan Alt+F8) untuk menampilkan Field List.
11.    Tambahkan (drag) field-field yang diperlukan ke atas form, sehingga tampak seperti pada Gambar-2.
12.    Gunakan ribbon tab ARRANGE untuk merapikan tata letak field. Ubah Caption di Label sehingga mirip dengan Gambar-2. Ingat, kita “nyontoh” dari form Invoice yang sudah jadi, sehingga teks pada Label kita sesuaikan. (NOTE: Field KodeItem di sini tidak kita gunakan. Field ini sebenarnya berguna jika kita ingin memasukkan list item barang berdasarkan kodenya, atau tinggal milih dari list/table yang sudah disediakan, namun di dalam contoh ini tidak kita gunakan).


Gambar-2. Disain form frm_Invoice_dtl

13.    Tampilkan Property Sheet. Pilih “Form” pada Selection Type. Atur property sebagai berikut:


14.    Klik field Deskripsi. Atur property sebagai berikut:


15.    Atur property yang sama untuk field Keterangan. Pengaturan ini berguna agar pemakai bisa menekan Enter untuk menambahkan baris baru dalam field, dan muncul scroll bar jika teks dalam field lebih dari ukuran field.
16.    Field NomorUrut sebaiknya di-align Center (rata tengah).
17.    Field Qty sebaiknya berformat: Standard dengan Decimal Places: 2. Untuk perataan bisa dibuat Center.
18.    Field Harga dan Jumlah juga berformat Standard namun Decimal Places: 0 saja (untuk mata uang rupiah lazimnya tidak menggunakan desimal).
19.    Agar perubahan yang dilakukan pada data detail ini otomatis me-refresh informasi pada form induk, masukkan sedikit code berikut ini pada Event: After Update (event pada Form).

Private Sub Form_AfterUpdate()
    On Error Resume Next
    Parent!txtSubTotal.Requery
End Sub


20.    Selesai. Simpan dan tutup form.


MEMASUKKAN SUBFORM PADA FORM INDUK

Setelah form untuk subform selesai dibuat, sekarang kita bisa memasukkannya ke dalam form induk.

1.    Klik-kanan frm_Invoice dalam Navigation Pane, pilih “Design View”.
2.    Klik control subform Sub1, lalu tampilkan Property Sheet.
3.    Di bawah tab Data, pada property Source Object, pilih “frm_Invoice_dtl
4.    Secara otomatis Access akan menghubungkan form induk dengan form anak dengan kunci relasinya, yaitu: InvoiceID. Namun jika tidak, anda perlu mengatur property menjadi sebagai berikut:


5.    Agar pemakai tidak memasukkan data detail sebelum record pada table induk tercipta, kita perlu mencegah agar focus tidak bisa dipindahkan ke dalam subform. Triknya: pada event On Enter dari Sub1, kita memasukkan procedure sebagai berikut:

Private Sub Sub1_Enter()
    If IsNull(Me.InvoiceID) Then
        Me.Pengantar.SetFocus
    End If
End Sub


Artinya: jika focus masuk ke Sub1, maka cek apakah InvoiceID masih Null. Jika masih Null maka focus alihkan ke Pengantar (field di atas Sub1).

6.    Selesai.


MEMBUAT QUERY qry_Invoice_total


Query qry_Invoice_total digunakan untuk menghitung nilai total dari detail data. Informasi ini ditampilkan pada form Invoice, dan menjadi dasar bagi perhitungan Diskon dan Pajak.

Untuk membuat query qry_Invoice_total, lakukan langkah-langkah sebagai berikut:
1.    Klik ribbon tab CREATE, klik “Query Design”.
2.    Pada Query Design, tambahkan table tbl_Invoice_detail ke dalam query.
3.    Pada ribbon tab DESIGN, klik “Totals”.
4.    Klik-ganda field InvoiceID dari kotak field. Kolom pertama ini baris Total berisi “Group By”.
5.    Pada kolom kedua, masukkan rumus: Total: [Qty]*[Harga] dan pada baris Total berisi “Sum”. (Lihat Gambar-3).
6.    Simpan query dengan nama: qry_Invoice_total
7.    Selesai. Tutup query.


Gambar-3. Disain query qry_Invoice_total

MEMBUAT NOMOR OTOMATIS


Nomor Invoice yang akan kita buat di sini mengikuti aturan sebagai berikut:
  • Nomor dibuat berurutan, dalam arti nomor terakhir + 1
  • Nomor akan di-reset ke 1 lagi setiap tahun
  • Format nomor Invoice: Inv. 0029/BIT/VII/18
    Dimana: “Inv.” adalah teks prefiks, “0029” adalah nomor Invoice dalam format 4 digit, “BIT” adalah inisial perusahaan, “VII” adalah angka rumawi bulan Juli, dan “18” adalah tahun 2018.

Skenario pembuatan nomor otomatis ini sebagai berikut:
  • Pada record kosong, nomor tidak tersedia.
  • Pemakai harus mengklik-ganda field No. Invoice (pada form Invoice) untuk menciptakan nomor baru secara otomatis.
  • Nomor Invoice memerlukan data Nomor (dari field Nomor) dan data Tanggal (dari field Tanggal), kedua field ini harus terisi data agar bisa dibuatkan nomor Invoice.
  • Data pada Nomor akan diisi secara otomatis berdasarkan data Nomor terbesar dalam periode reset, plus 1.
  • Data Tanggal secara otomatis akan diisi dengan tanggal komputer, namun bisa diedit (agar fleksibel dalam pembuatan Invoice).
  • Perubahan data tanggal selama dalam periode reset tidak mempengaruhi data Nomor yang sudah dibuat, namun jika tanggal berubah di luar periode reset, maka data Nomor akan mengikuti (Nomor terbesar dalam periode tersebut plus 1).
  • Nomor yang sudah terpakai tidak bisa dipakai lagi. Nomor baru selalu Nomor paling besar plus 1.
  • Selain data Nomor, tampilan format Nomor Invoice disesuaikan dengan prefiks dan data Tanggal.

Berdasarkan ketentuan-ketentuan di atas, maka kita bisa membuat procedure untuk menghasilkan nomor otomatis, dimulai dengan trigger klik-ganda pada field No. Invoice.

Untuk itu lakukan langkah-langkah sebagai berikut:
  1. Tampilkan form frm_Invoice ke dalam Design View.
  2. Klik field Nomor, lalu tekan F4 untuk menampilkan Property Sheet.
  3. Klik tab Other, ubah property Name menjadi: txtNomor
  4. Klik tab Data, isi property Control Source dengan: =fNomorInvoice([Nomor];[Tanggal])
  5. Klik tab Event, pada property On Dbl Click pilih [Event Procedure].
  6. Klik tombol Builder […] di sebelah kanannya untuk menampilkan jendela Visual Basic for Application.
  7. Ketik code sebagai berikut:
  8. Setelah selesai memasukkan code program, tutup jendela Visual Basic for Application dan simpan form.

Code:

Private Sub txtNomor_DblClick(Cancel As Integer)
    If Not Me.AllowEdits Then Exit Sub  'hanya berlaku jika boleh edit
    '
    If IsNull(Me.Tanggal) Then Me.Tanggal = Date    'Tanggal tidak boleh kosong
    whr = "Year(Tanggal)=" & Year(Me.Tanggal)       'reset per tahun
    'whr = whr & " AND Month(Tanggal)=" & Month(Me.Tanggal)  'kalau mau reset per bulan
    '
    If Nz(Me.Nomor, 0) = 0 Then     'Field Nomor belum terisi, jadi belum pernah dibuat
        'Isi dengan nomor terakhir + 1 (sesuai kondisi reset)
        Me.Nomor = Nz(DMax("Nomor", "tbl_Invoice", whr), 0) + 1
    Else    'Field Nomor sudah terisi
        'cek kesesuaian dengan tanggal
        tNom = Me.Nomor
        tRid = Me.InvoiceID
        whr1 = whr & " AND Nomor=" & tNom & " AND InvoiceID<>" & tRid
        If IsNull(DLookup("InvoiceID", "tbl_Invoice", whr1)) Then
            'Nomor tidak duplicate, bisa digunakan
        Else
            'Nomor dipakai pada record lain
            'Buat Nomor baru sesuai tanggal / kondisi reset
            Me.Nomor = Nz(DMax("Nomor", "tbl_Invoice", whr), 0) + 1
        End If
    End If
    '
    Me.Requery
End Sub



Gambar-4. Code untuk membuat nomor otomatis

Penampilan nomor invoice diformat dengan sebuah function bernama fNomorInvoice(). Function ini bisa kita masukkan pada sebuah module standar yang berlaku umum. Caranya adalah sebagai berikut:

1.    Pada Access, klik ribbon tab CREATE, Klik “Module”.
2.    Masukkan code sebagai berikut:
3.    Simpan module dengan nama: mdl_Procedures (nama module boleh apa saja, namun dalam contoh ini kita beri nama mdl_Procedures).

Code:

Function fNomorInvoice(ByVal pNomor, ByVal pTanggal)
    If IsNull(pNomor) Then Exit Function
    If IsNull(pTanggal) Then Exit Function
    '
    'Format nomor: Inv. 0029/BIT/VII/18
    fNomorInvoice = _
        "Inv. " & Format(pNomor, "0000") & _
        "/BIT/" & _
        fRumawiBulan(Month(pTanggal)) & _
        "/" & Right(Year(pTanggal), 2)
End Function

Function di atas membutuhkan sebuah function yang lain bernama fRumawiBulan(). Codenya bisa dimasukkan di bawah function fNomorInvoice().


Gambar-5. Code untuk function fNomorInvoice() dan fRumawiBulan()

Sampai tahap ini, seharusnya form Invoice anda sudah bisa digunakan untuk memasukkan data Invoice, dan nomor Invoice sudah bisa dihasilkan otomatis.

Hal yang masih perlu dilakukan pada form Invoice adalah memudahkan pemasukan data Diskon dan Pajak yang bisa menggunakan nilai nominal atau persentase. Selain itu, kita juga masih belum mengaktifkan tombol-tombol (Button) serta beberapa prosedur validasi data.

In syaa Allah kita akan bahas pada artikel berikutnya. Mohon bantu doa dari teman-teman agar saya masih ada umur, sehat, sempat, dan mampu untuk melakukannya.

(Bersambung)

Belajar MS Access (8)

Oleh: Haer Talib (HaerTalib.com)

Artikel ini merupakan lanjutan artikel Belajar MS Access (7).

Keterangan:
Artikel Belajar MS Access ditulis secara bersambung di www.RumahAccess.com sebagai bahan belajar/tutorial bagi pemula. Dalam tulisan ini dibahas cara pembuatan database dan aplikasi Invoice sebagai contoh kasusnya.


Pada artikel sebelumnya kita telah menyelesaikan pembuatan form untuk mengelola data Customer. Form tersebut terdiri dari tiga buah form, yaitu frm_Customer sebagai form utama, frm_Customer_sub sebagai subform (dataheet), dan frm_Customer_data sebagai form data (single form, popup). Teknik ini kita sebut “Form Tiga Serangkai” dan dapat diterapkan hampir pada semua kebutuhan mengelola data.

Pada artikel ini kita akan membuat form untuk memasukkan data Invoice.

TABLE INVOICE


Pada artikel seri ke-2 kita telah membuat tbl_Invoice untuk menyimpan data Invoice, serta tbl_Invoice_detail untuk menampung detail dari setiap Invoice. Kedua table telah dihubungkan dengan Relationship.

Sebenarnya, kalau hanya untuk menyimpan data saja kedua table tersebut sudah mencukupi. Anda bisa menggunakan tampilan Datasheet untuk memasukkan dan mengelola data.

Namun anda tentu mengharapkan bisa memasukkan data dalam bentuk form Invoice, kemudian mencetak Invoice yang diperlukan. Untuk keperluan inilah kita membuat aplikasinya.


FORM INVOICE


Saya mempunyai contoh aplikasi Invoice yang digunakan di perusahaan saya, hasil cetaknya seperti berikut ini:


Gambar 1. Contoh Invoice


Untuk memasukkan data Invoice, digunakan form seperti berikut ini:

Gambar 2. Contoh form input data Invoice


Tentu banyak model Invoice. Selain ditentukan oleh kreativitas pembuatnya, model Invoice juga ditentukan oleh keperluan sesuai jenis usaha. Namun untuk latihan kita, mungkin sebaiknya kita nyontoh saja dari tampilan di atas.

MEMODIFIKASI tbl_Invoice


Setelah saya periksa kembali rancangan tbl_Invoice yang telah kita buat pada latihan yang lalu, ternyata kita perlu melakukan sedikit modifikasi agar terpenuhi semua unsur yang terdapat pada contoh Invoice di atas.

Untuk itu lakukan langkah-langkah sebagai berikut:
1.    Buka file database Invoice.accdb yang sudah anda buat sebelumnya.
2.    Pada Navigation Pane, klik-kanan tbl_Invoice, klik “Design View”.
3.    Tambahkan field-field sehingga tampak sebagai berikut:



Gambar 3. Memodifikasi tbl_Invoice

Field-field yang ditambahkan adalah:
UP -- Text -- 50
Pengantar -- Text -- 255
Lain -- Currency
Kota -- Text -- 50
Status -- Text -- 20

MEMBUAT FORM frm_Invoice


Sekarang kita membuat form untuk memasukkan data Invoice. Lakukan langkah-langkah sebagai berikut:
1.    Klik ribbon tab CREATE, klik “Form Design”.
2.    Langsung simpan dengan nama: frm_Invoice
3.    Untuk property form, atur sebagai berikut:




4.    Selanjutnya, tambahkan field ke atas form sehingga tampak sebagai berikut:



Gambar 4. Rancangan form frm_Invoice

Perlu ketelatenan ya? Tentu saja. Hingga tahap ini, kemampuan anda seharusnya sudah bisa untuk menambahkan field, menambahkan button, menambahkan dan mengatur tata letak control di atas form.

Berikut ini saya kasih beberapa clue:
  • Untuk mengubah Text Box menjadi Combo Box: klik-kanan field (Text Box), klik “Change To”, pilih “Combo Box”.
  • Untuk Combo Box Status, sebaiknya anda membuat sebuah table yang berisi status Invoice sehingga pemakai tinggal memilih status yang tepat, misalnya: Draft, Terkirim, Pending, Problem, Closed. Di dalam latihan ini, beri nama table sebagai: tbl_Invoice_Status, dengan field tunggal bernama Status. Jadi pada Row Source Combo Box Status terisi: tbl_Invoice_Status



  • Untuk Combo Box CustomerID



  • Di bawah Combo Box CustomerID, terdapat sebuah Text Box yang diberi warna latar belakang abu-abu (grey), digunakan untuk menampilkan alamat dari Customer. Text Box ini diberi nama: txtAlamat
    Property Control Source: =[CustomerID].Column(2)
  • Di bawah Text Box Pengantar, tambahkan sebuah Subform. Beri nama: Sub1 
  • Untuk field Nomor, beri warna latar belakang grey. Walaupun field ini bisa diedit atau diisi secara manual, namun kita akan membuat penomoran yang otomatis (trik ini yang sering ditanyakan).
  • Untuk Sub Total, tambahkan sendiri Text Box dari Controls. Beri nama: txtSubTotal
    Property Control Source diisi: =DLookUp("Ttl";"qry_Invoice_total";"MasterID=" & Nz([RecID];0))
    Pada ekspresi di atas terdapat sebuah Query bernama qry_Invoice_total yang akan kita buat kemudian.
  • Untuk Total, tambahkan juga Text Box dari Controls. Beri nama: txtTotal
    Property Control Source diisi: =[txtSubTotal]-Nz([Diskon];0)+Nz([Lain];0)-Nz([Pajak];0)
  • Warna grey pada kotak di belakang field Kota, PenandaTangan, dan Jabatan merupakan sebuah Box yang bisa ditambahkan dari Controls. Box ini ditempatkan di bagian belakang (klik Box lalu pada ribbon tab Arrange, klik “Send to Back”).
  • Untuk field Pengantar dan Keterangan dengan tinggi lebih dari field biasa, sebaiknya atur property:

  • Di sebelah kanan field Nomor dan field Sub Total tambahkan control Label dengan simbol « (bisa ambil dari aplikasi Character Map di Windows). Maksud simbol ini adalah field di sebelahnya bisa di-double-click untuk melakukan perhitungan ulang (recalculate).
  • Untuk Button, yang pertama bernama: cmdUndo, yang kedua bernama: cmdSave dan yang ketiga bernama: cmdPrint 
  • Untuk gambar ikon dan logo perusahaan, tambahkan control Image (jangan salah control ya). Image untuk ikon diberi nama: imgIcon dan Image untuk logo perusahaan diberi nama: imgLogo 
  • Untuk setiap form section (Form Header, Detail, dan Form Footer) jangan lupa atur Tab Order nya agar navigasi di dalam form logis.

Pekerjaan mengatur tata letak field seharusnya selesai :D, namun jika anda mencoba menjalan form di atas, mungkin akan muncul error karena query qry_Invoice_total belum dibuat. Anda bisa mengosongkan dulu property Control Source dari txtSubTotal agar tidak muncul error.



MENAMBAHKAN EVENT ON RESIZE


Pada form Invoice ini kita menggunakan sebuah subform. Agar ukuran subform ini sesuai dengan ukuran form induknya, maka diperlukan sedikit perintah ketika terjadi event Resize (perubahan ukuran form induk).

Selain itu kita juga menyediakan Button yang diletakkan pada sudut kanan-atas. Agar letak button ini ikut menyesuaikan dengan ukuran form, maka letaknya harus dibuat dinamis, yang bisa kita atur juga pada event Resize.

Untuk tujuan di atas, lakukan langkah-langkah sebagai berikut:
1.    Tekan F4 untuk menampilkan Property Sheet (jika belum tampil).
2.    Pada Property Sheet, pilih “Form” (dalam Selection Type).
3.    Klik tab “Event”.
4.    Pada property On Resize, pilih: [Event Procedure]
5.    Klik tombol Builder () di bagian kanan isian property sehingga muncul jendela Visual Basic for Application.
6.    Masukkan code program sebagai berikut:

Private Sub Form_Resize()
    On Error Resume Next
    Me.Sub1.Height = Me.InsideHeight - Me.FormHeader.Height - Me.FormFooter.Height - Me.Sub1.Top
    Me.Sub1.Width = Me.InsideWidth - Me.Sub1.Left * 2
    Me.cmdPrint.Left = Me.InsideWidth - Me.cmdPrint.Width - 100
    Me.cmdSave.Left = Me.cmdPrint.Left - Me.cmdSave.Width - 50
    Me.cmdUndo.Left = Me.cmdSave.Left - Me.cmdUndo.Width - 50
End Sub

Tutup jendela Visual Basic for Application, lalu simpan form. Code program tersebut akan disimpan bersama form yang mengandungnya.

Pada tahap ini, ketika saya menjalankan form frm_Invoice, tampak sebagai berikut:


Gambar 5. Tampilan frm_Invoice

Well, sampai tahap ini kita break dulu ya, in syaa Allah akan disambung pada artikel berikutnya.

Bagi anda yang beragama Islam, selamat menjalankan ibadah puasa dan ibadah Ramadhan lainnya. Bagi yang akan mudik, selamat berlebaran di kampung halaman, bahagia bersama keluarga.

Salam.

(Bersambung)



Belajar MS Access (7)

Oleh: Haer Talib (HaerTalib.com)

Artikel ini merupakan lanjutan artikel Belajar MS Access (6).

Keterangan:
Artikel Belajar MS Access ditulis secara bersambung di www.RumahAccess.com sebagai bahan belajar/tutorial bagi pemula. Dalam tulisan ini dibahas cara pembuatan database dan aplikasi Invoice sebagai contoh kasusnya.


Pada artikel sebelumnya kita telah belajar membuat form untuk memasukkan dan menampilkan data Customer (bernama frm_Customer_data). Anda seharusnya sudah membuat form tersebut, baru bisa melanjutkan latihan pada artikel ini. Saran saya, sebaiknya anda membaca dan mengikuti latihan mulai dari artikel yang pertama dari seri artikel ini sehingga anda mengerti secara runut.

Pada artikel ini kita akan membuat form yang akan memadukan form yang anda buat pada artikel ke-5 (frm_Customer_sub) dan artikel ke-6 (frm_Customer_data). Form yang akan kita buat diberi nama: frm_Customer.

MEMBUAT frm_Customer

Bukalah file database “Invoice.accdb” yang telah anda gunakan pada latihan-latihan sebelumnya.


Lakukan langkah-langkah berikut ini:
  1. Klik ribbon tab CREATE, klik “Form Design”.
    Pada form ini, kita tidak memberinya sumber data. Artinya form ini tidak mengandung data.
  2. Klik-kanan bidang form dan pilih menu “Form Header/Footer” untuk menampilkannya. Ingat, “Form Header/Foter”, bukan “Page Header/Footer” (ada yang keliru memilih menu ini).
  3. Siapkan sebuah gambar “Customer Icon” (bisa cari di Internet), misalnya:
  4. Pada Access, klik ribbon tab DESIGN, klik “Insert Image”, klik “Browse”. Pilih file gambar yang sudah anda siapkan. Klik OK.


    Gambar 1. Menambahkan gambar ikon
     
  5. Drag mouse membentuk kotak persegi pada bidang Form Header untuk meletakkan gambar.

    Gambar 2. Meletakkan gambar ikon
  6. Klik control “Label” pada kotak Controls, klik di samping kanan gambar ikon. Ketik: “DAFTAR CUSTOMER” (tanpa tanda petik).

    Gambar 3. Menambahkan Label
  7. Format Label menjadi lebih menarik dan terlihat jelas (menggunakan ribbon tab FORMAT).

    Gambar 4. Memformat Label
  8. Sekarang kita akan menambahkan sebuah Subform. Subform adalah control untuk meletakkan form di dalam sebuah form. Di sini kita akan meletakkan form frm_Customer_sub.

    Klik control Subform pada kotak Controls (dalam ribbon tab DESIGN).

    Gambar 5. Menambahkan control Subform
  9. Klik pada bidang Detail. Hapus Label yang menyertai Subform. Atur letak dan ukuran Subform kira-kira seperti pada gambar berikut ini. Mepetkan juga batang Form Footer ke atas jika perlu (supaya clear view).

    Gambar 6. Mengatur letak Subform
  10. Pada Form Footer kita akan meletakkan sedikit “petunjuk” pemakaian (sebagai contoh pemanfaatan Form Footer).

    Klik control Label lalu tambahkan ke Form Footer. Ketik teks seperti: “Double-click record selector untuk menampilkan data ke dalam form.” (tanpa tanda petik).

    Gambar 7. Menambahkan petunjuk pemakaian pada Form Footer
  11. Selesai. Simpan form dengan nama: frm_Customer


MENGATUR PROPERTY

Jika anda mencoba menjalankan (Run) atau membuka form frm_Customer ke dalam Form View, maka akan tampak sebagai berikut:



Gambar 8. Tampilan form frm_Customer

Tampilan di atas tentu tidak sesuai dengan yang kita inginkan. Pada form ini, Record Selector tidak diperlukan, demikian juga Navigation Buttons (karena form tidak mengandung data). Ukuran Subform juga tidak sesuai dengan bidang layar yang tersedia, dan Subform belum menampilkan form yang diinginkan. Oleh karena itu, kita perlu mengatur property, baik property form maupun property setiap control (sesuai keperluan).

Mengatur Property Form

Lakukanlah langkah-langkah sebagai berikut:
  1. Tampilkan form frm_Customer ke dalam Design View.
  2. Tekan F4 untuk menampilkan Property Sheet.
  3. Klik Form Selector (pojok kiri-atas Ruler) atau pilih “Form” pada Selection Type pada Property Sheet.
  4. Atur property seperti terlihat pada gambar berikut ini. Tidak semua property perlu kita atur, cukup yang perlu diubah saja.

    Gambar 9. Mengatur Property Form
  5. Klik tab “Event” pada Property Sheet. Pada event “On Resize” pilih “[Event Procedure]” lalu klik tombol Builder di sebelah kanannya.

    Gambar 10. Mengatur event On Resize
  6. Muncul jendela Visual Basic for Application. Pada bidang code, ketik code sebagai berikut:

    Gambar 11. Memasukkan code untuk On Resize
  7. Simpan (klik ikon Disket atau tekan Ctrl+S), lalu tutup jendela Visual Basic for Application.

Mengatur Property Control

Control yang perlu diatur property-nya adalah Subform. Property yang perlu diatur adalah:
Name: Sub1
Source Object: frm_Customer_sub

Gambar 12. Mengatur property Subform

Selesai. Simpan form.

Jika sekarang anda menjalankan form, maka akan tampak seperti pada gambar berikut ini:



Gambar 13. Tampilan form Daftar Customer

MENAMBAHKAN FUNGSI DOUBLE-CLICK

Satu hal yang belum tercapai pada form di atas adalah fungsi double-click pada record selector untuk menampilkan data dalam single form.

Untuk menambahkan fungsi tersebut, lakukan langkah-langkah sebagai berikut:
  1. Tutup form “Daftar Customer” (frm_Customer) jika masih terbuka.
  2. Tampilkan form frm_Customer_sub ke dalam Design View.
  3. Tampilkan Property Sheet. Pilih “Form” pada Selection Type.
  4. Klik tab Event pada Property Sheet. Pada event “On Dbl Click” pilih “[Event Procedure]” lalu klik tombol Builder di sebelah kanannya.

    Gambar 14. Mengatur event Double-Click
  5. Pada jendela Visual Basic for Application yang muncul, ketik code sebagai berikut:

    Gambar 15. Code untuk event Double-Click

    Perhatikan: Comment (yang berwarna hijau dan diawali dengan apostrop) tidak harus diketik, namun informasi dalam comment ini sangat bermanfaat setelah sekian lama dimana kita sudah lupa dengan code yang ditulis.
  6. Simpan dan tutup jendela Visual Basic for Application.
  7. Kembali ke Access, simpan form (jika belum) lalu tutup.
Selesai.

Sekarang jalankan frm_Customer kembali, lalu cobalah double-click pada salah satu record selector (buka di dalam sel / field), maka akan muncul form popup yang memuat data (frm_Customer_data).



Gambar 16. Tampilan form yang memuat data

Demikianlah tata cara membuat form untuk mengelola data Customer. Tentu saja form ini masih bisa dikembangkan lagi, seperti penambahan fungsi pencarian dan filter data yang fleksibel dan memudahkan pemakai, dan sebagainya. Namun hal-hal seperti ini membutuhkan lebih banyak penulisan code atau script program, dan akan lebih banyak pembahasan juga. (Nanti kita tidak sampai-sampai pada pembahasan inti pembuatan Invoice :) ).

Tata cara pembuatan form yang sudah kita bahas (saya menamakannya form “tiga serangkai” karena terdiri dari form utama, form untuk subform, dan form untuk menampilkan data secara single form) akan selalu digunakan pada hampir setiap data yang kita kelola, seperti data supplier, data barang, data karyawan, data Invoice, dan sebagainya.

Oya, tata cara pemasukan dan pengelolaan data yang sudah kita bahas tergolong sederhana. Belum ada “data verification” atau fungsi untuk mengecek validitas data dan hal-hal semacam itu. Panjang sih menjelaskannya dalam teks, dan anda juga mungkin kurang suka membaca yang ‘kebanyakan’ hehehe…

Well, in syaa Allah pada artikel berikutnya kita akan mulai membahas pembuatan Invoice. Bantu do’akan saya ya agar sehat dan sempat ya, serta masih mampu menulis tentunya…

Salam.

(Bersambung)

<< Download versi .PDF dari artikel ini >>