Skip to main content

Membuat Pengaturan Sistem Sendiri Di Access - Membuat Modul (Bagian 3)

Setelah membuat tabel pengaturan sistem, kita harus membuat modul, terutama modul standar yang digunakan untuk mengelola pengaturan sistem. Modul yang kita buat akan memudahkan penulisan program saat menampilkan, memperbaharui, dan menyimpan data yang berkaitan dengan pengaturan sistem.

Seperti telah dijelaskan di ....., kita menggunakan tabel yang bernama tblPreferensiSistem untuk menyimpan data pengaturan sistem. Untuk itu, kita menggunakan tblPreferensiSistem sebagai sumber tabel dalam menyusun modul. Berikut ini adalah modul standar yang terkait dengan pengaturan sistem.
Function tampilkanNilaiPrefs(strPrefsNama As String) As Variant
  Dim strNamaField As String, strNilai As String
  Dim strNamaSumber As String
  Dim strFieldPrimaryKey As String
  
On Error GoTo Err_Msg
  strNamaField = "prefNilai"
  strNamaSumber = "tblPreferensiSistem"
  strFieldPrimaryKey = "prefNama"
  strNilai = strPrefsNama
  tampilkanNilaiPrefs = Nz(menampilkanNilaiField(strNamaField, strNamaSumber, strFieldPrimaryKey, strNilai, oprIn), "")
Exit_Function:
  Exit Function
Err_Msg:
  MsgBox "Function tampilkanNilaiPrefs, Error # " & str(Err.Number) & ", source: " & Err.Source & _
  Chr(13) & Err.Description
  Resume Exit_Function
End Function
Function simpanNilaiPrefs(strPrefsNama As String, varprefNilai As String) 'OK
  Dim strSql As String
On Error GoTo Err_Msg
  strSql = "UPDATE tblPreferensiSistem SET prefNilai = '" & Nz(varprefNilai, "") & _
            "' WHERE prefNama='" & strPrefsNama & "'"

  jalankanActionQuery strSql
Exit_Function:
  Exit Function
Err_Msg:
  MsgBox "Function simpanNilaiPrefs, Error # " & str(Err.Number) & ", source: " & Err.Source & _
  Chr(13) & Err.Description
  Resume Exit_Function
End Function
Function kembaliKeDefault(frm As Form)
  Dim ctl As Control
On Error GoTo Err_Msg

  With frm
   .Controls("borderDitampilkan").Value = "-1"
   .Controls("borderTipe").Value = ""
   .Controls("borderUkuran").Value = ""
   .Controls("borderWarna").Value = ""
   .Controls("fontTipe").Value = "Calibri"
   .Controls("fontUkuran").Value = ""
   .Controls("lokasiFolder").Value = CurDir
   .Controls("moneterPengucapan").Value = "Rupiah"
   .Controls("moneterUnit").Value = "Rp"
   .Controls("namaPemilik").Value = ""
   .Controls("penggunaTampilkanNama").Value = "0"
  End With
Exit_Function:
  Exit Function
Err_Msg:
  MsgBox "Function kembaliKeDefault, Error # " & str(Err.Number) & ", source: " & Err.Source & _
  Chr(13) & Err.Description
  Resume Exit_Function
End Function

Function aplikasikanFormat(frm As Form)
  Dim ctl As Control
On Error GoTo Err_Msg

  With frm
    For Each ctl In .Controls
      If ctl.ControlType <> acCheckBox And ctl.ControlType <> 119 Then
        ctl.FontName = tampilkanNilaiPrefs("fontTipe")
        ctl.FontSize = Val(tampilkanNilaiPrefs("fontUkuran"))
        If CBool(tampilkanNilaiPrefs("borderDitampilkan")) Then
          ctl.BorderColor = Val(tampilkanNilaiPrefs("borderWarna"))
          ctl.BorderWidth = Val(tampilkanNilaiPrefs("borderUkuran"))
          ctl.BorderStyle = Val(tampilkanNilaiPrefs("borderTipe"))
        Else
          ctl.BorderStyle = 0
        End If
      End If
    Next ctl
  End With
Exit_Function:
  Exit Function
Err_Msg:
  MsgBox "Function aplikasikanFormat, Error # " & str(Err.Number) & ", source: " & Err.Source & _
  Chr(13) & Err.Description
  Resume Exit_Function
End Function

Simpanlah modul di atas dengan nama mdlPreferensiSistem. Untuk mudahnya, kita hanya membuat dua fungsi yang ada dalam modul mdlPreferensiSistem, yaitu fungsi tampilkanNilaiPrefs dan simpanNilaiPrefs. Bisa saja kita menambahkan fungsi lain yang berkaitan dengan pengaturan sistem.

Fungsi tampilkanNilaiPrefs digunakan untuk menampilkan nilai dari field prefNilai dari sebuah field primary key. Fungsi ini tergantung pada fungsi lain yang bernama menampilkanNilaiField. Hasil dari nilai ini adalah variant, yang bisa berarti string/text atau array. Nantinya, kita bisa mengkonversi nilai variant ini sesuai dengan kebutuhan. Jadi, bila hasil yang diinginkan adalah integer, maka kita bisa mengkonversinya dengan menggunakan fungsi CInt. Bila hasil yang diinginkan adalah nilai Yes/True, maka kita bisa mengkonversinya menjadi CBool, dan seterusnya. Misalnya seperti ini:
Function konversiTanggal(strNilai As String) As Date
  If IsDate(strNilai) Then konversiTanggal = CDate(strNilai) Else konversiTanggal = vbNull
End Function
Function konversiBoolean(strNilai As String) As Boolean
  If Not IsNumeric(strNilai) Then konversiBoolean = False Else konversiBoolean = CBool(strNilai)
End Function
Function konversiInteger(strNilai As String) As Integer
  If IsNumeric(strNilai) Then konversiInteger = CInt(strNilai)
End Function
Fungsi simpanNilaiPrefs digunakan untuk menyimpan nilai dari field prefNilai jika ada perubahan. Fungsi ini menjalankan fungsi lain yang bernama jalankanActionQuery.

Fungsi kembaliKeDefault mengatur ulang sistem ke keadaan default sesuai dengan saat awal sistem diinstall.

Fungsi aplikasikanFormat digunakan untuk mem-format tampilan sesuai dengan data yang ada format di tabel tblPreferensiSistem.

Penjelasan lebih detail dari setiap fungsi di atas akan dijelaskan di artikel selanjutnya, yaitu saat kita membuat form pengaturan sistem.

Baca juga:

Membuat Pengaturan Sistem Sendiri Di Access - Pengantar (Bagian 1)
Membuat Pengaturan Sistem Sendiri Di Access - Mendesain Tabel  (Bagian 2)
Membuat Pengaturan Sistem Sendiri Di Access - Membuat Form (Bagian 4)

Comments

Posting Terpopuler

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Relasi Database

Menampilkan Data MySQL dalam Form di Access