Skip to main content

Memuat Nilai Default dari Tabel Database Back-end ke Form di Front-End

Untuk memuat nilai default dari field yang ada di tabel database back-end ke control dari form di front-end, kita dapat membuat fungsi yang sederhana. Berikut ini adalah fungsinya.
Nilai default pada field tabel di database back-end diisi 000, nilai default pada kontrol juga akan menjadi 000.

Function memuatNilaiDefault(frm As Form, strSql As String)
  Dim rs As DAO.Recordset
  Dim fld As DAO.Field
  Dim ctl As Control
  Dim strDefaultValue As String
  
On Error GoTo Err_Msg 
  Set rs = membukaRecordset(strSql, True)
  With frm
    For Each ctl In .Controls
      For Each fld In rs.Fields
        If fld.Name = ctl.Name Then
          strDefaultValue = arrayTampilkanPropertiField(fld.Name, fld.SourceTable, prpDefaultValue)
          ctl.DefaultValue = strDefaultValue
        End If
      Next fld
    Next ctl
  End With
Exit_Function:
  rs.Close
  Set rs = Nothing
  Exit Function
Err_Msg:
  MsgBox "Function memuatNilaiDefault, Error # " & str(Err.number) & ", source: " & Err.Source & _
  Chr(13) & Err.Description
  Resume Exit_Function
End Function
Fungsi yang terlibat:
  1. membukaRecordset
  2. arrayTampilkanPropertiField
Ada dua parameter yang harus diisi:
  1. frm, merupakan form yang nilai default dari kontrolnya ingin ditampilkan
  2. strSql, adalah sumber nama tabel yang nilai default dari setiap fieldnya ingin ditampilkan di setiap kontrol yang ada di form frm.
Fungsi memuatNilaiDefault akan memetakan secara tepat, dengan mencari persamaan di antara nama kontrol yang ada di form frm dengan nama field yang ada di tabel strSql. Bila pemetaan nama kontrol dan field berhasil dilakukan, selanjutnya, kode VBA di atas akan memuat nilai default dari setiap field ke form.
Nilai default pada field tabel di database back-end diubah menjadi 999, nilai default pada kontrol juga akan berubah
Untuk mengaplikasikan fungsi di atas ke dalam sebuah form, caranya sangat mudah. Kita hanya perlu membuat form kosong tanpa menggunakan record source pada properti form Record Source (unbound record source) dan tanpa menggunakan control source pada properti setiap kontrol yang berhubungan dengan field sebuah tabel (unbound control source). Cara pembuatannya dapat dibaca di Memuat Properti Field Tabel ke Dalam Properti Control di Form di Access.

Setelah selesai membuat form kosong (frm) dengan nama kontrol yang sama dengan nama field pada tabel (strSql), pada properti On Open dari form, isikan kode berikut ini:
Private Sub Form_Open(Cancel As Integer)
  membukaDbs
  memuatNilaiDefault Me, "tblRekUtama"
End Sub
Bila menggunakan database back-end, pastikan bahwa database back-end harus sudah dibuka terlebih dahulu dengan menggunakan fungsi membukaDbs, seperti di atas.

Keuntungan dengan menggunakan fungsi ini, setiap kali nilai default yang ada di field tabel strSQL diubah, maka fungsi memuatNilaiDefault akan memuat nilai default ke dalam kontrol yang ada di form frm. Jadi kita tidak perlu menulis ulang di setiap properti Default Value pada kontrol yang terkait dengan field tabel.

Comments

Posting Terpopuler

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Fungsi Untuk Menghitung Pajak Penghasilan PPh 21 di MS Access

Format Untuk Field Dengan Tipe Data Number dan Currency di MS Access