Saturday, January 11, 2014

VBA Modul: Menyimpan Data dari "Unbound Control"ke dalam Tabel Database via VBA

Pada kesempatan ini saya akan berbagi tips bagaimana caranya untuk dapat menyimpan data dari form yang tidak terkoneksi dengan tabel/database (Unbound Form or Unbound Controls).


Unbound form atau unbound control merupakan suatu kondisi dimana form yang kita buat maupun object control  (TextBox, ComboBox, ListBox dsb) belum dikoneksikan dengan database yang sudah kita buat sebelumnya. Terdapat beberapa kelebihan ketika kita lebih memilih metode Unbound Form atau Unbound Control dalam merancang form yang dinamis.

Demo File:

Kelebihan:
1. Kita dapat mencegah terjadinya input data yang tidak lengkap. Misalnya isian form tidak lengkap. Karena ketika kita menggunakan metode ini, kita dapat memasang parameter untuk memproses penyimpanan data ketika data sudah di isi dan menampilkan pesan ketika isian masih kosong.

2. Pembatalan isian tanpa mempengaruhi ID record dalam tabel. Satu perbedaan ketika kita lebih memilih Bounded Form and Control, ketika merubah salah satu control misalnya TextBox yang kita buat, secara otomatis, record dalam database akan bertambah "Walaupun nantinya kita membatalkan penyimpanan", meskipun ada cara lain yaitu dengan men-set bahwa field tersebut bersifat Required Field. Nah, denga metode Unbound ini kita dapat mencegah terjadinya hal tersebut.

3. Kustomisasi yang mudah dimasa mendatang.

Kekurangan:
1. Sedikit lebih rumit karena memerlukan keterampilan koding.
2. Diperlukan ketelitian dan kecermatan.
3. Kesabaran.

Cara membuat:
1. Buat file Database baru dengan ms.access 2010/2013.
2. Buat tabel dengan field:
    - ID - AutoNumber
    - Data - SortText
3. Simpan Tabel dengan nama "Tes".
3. Buat sebuah form, simpan dengan nama sesuai keinginan.
4. Buat sebuah TextBox dan ubah namanya menjadi txtBox dan satu commandButton dengan nama cmdSend.
5. Klik kanan cmdSend -> Build Event -> Code Builder.
Ketikan kode dibawah ini:

Option Compare Database
Option Explicit
Private Sub cmdSend_Click()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim varTextData As String
varTextData = ""
Set db = CurrentDb
Set rst = db.OpenRecordset("Tes", dbOpenDynaset) 

 If Not IsNull(Me.txtBox) Then 
 varTextData = txtBox 
 rst.AddNew
 rst!Data = varTextData 
 rst.Update 
 MsgBox "Data berhasil disimpan. Buka Tabel Tes untuk melihat." 
 Me.txtBox.Value = Null
 Me.txtBox.SetFocus
 rst.Close
 db.Close
 Else MsgBox "Data tidak boleh kosong."
 End If
End Sub

6. Ctrl+S
7. Uji coba.

Selamat mencoba dan semoga bermanfaat :).


Penulis: Trisna Novi Ashari - Universitas Negeri Semarang '11

No comments:

Post a Comment