Skip to main content

Menampilkan Properti Field Tabel Dengan Menggunakan VBA

Pada situasi tertentu, selain nama field tabel, seorang admin terkadang ingin mengetahui properti dari field yang ada di sebuah tabel. Field sebuah tabel, selain nama field itu sendiri, terdiri dari banyak properti. Jika membuka desain tabel, maka kita akan mengetahui ada banyak properti field tabel itu. Properti field misalnya, tipe data (apakah text, number, date/time, dsb.), deskripis, ukuran (size), default value, validation rule, dan sebagainya.
Untuk memudahkan mengakses field tabel tanpa membuka langsung tabel yang bersangkutan, kita dapat membuat interface yang berisi properti field apa saja yang ada dalam field tabel. Membuat interface melalui sebuah form memberikan keuntungan dari sisi keamanan, karena menghindarkan tabel dalam database dari tangan-tangan jahil yang ingin mengutak-utik isi tabel. Cara membuatnya adalah sebagai berikut:
Gambar 1 Design View menampilkan properti field suatu tabel
  1. Untuk dapat memahami langkah di bawah, kita harus memahami lebih dahulu Bagian A pada Gambar 1 di atas. Kita harus membuat terlebih dahulu daftar field yang ada di sebuah tabel seperti terlihat di Bagian A dari gambar di atas. Untuk Bagian A, gunakan form yang ada di posting dengan judul Menampilkan Nama Field Tabel Dengan Menggunakan Kode VBA. Jadi pastikan bahwa kita telah membuat form itu karena akan digunakan untuk menambahkan form control yang ada di bagain B seperti di bawah ini.
  2. Untuk Bagian B, tambahkanlah form control berikut ini:
    1. List Box (form control) di bawah list box listTabel dengan properti sbb:
      1. Name= listPropertiField
      2. Control Source= Kosongkan
      3. Row Source Type=Value List
      4. Row Source = Kosongkan
      5. Column Count=2
      6. Column Widths=1.5”;6”
      7. Width= 7.5"
      8. Height= 1.7"
    2. Label untuk list box listPropertiField di atas:
      1. Name= lblPropertiField,
      2. Caption=Field Properties
  3. Aturlah properti list box listTabel After Update=[Event Procedure], lihat nomor 4.
  4. Isikanlah kode VBA berikut ini ke dalam class (form) module:
    1. Private Sub listTabel_AfterUpdate()  
    2.   Me.listPropertiField.RowSource = TampilkanFieldProperty(Me.nmTabel, Me.listTabel)  
    3.   Me.lblPropertiField.Caption = "Field properties " & Me.listTabel  
    4. End Sub  
Untuk Selanjutnya, buatlah modul standar (Standard Module) terpisah, melalui tab menu Create, grup Other, dan pilih Module. Simpanlan modul ini dengan nama Module1, lalu isikan kode VBA berikut ini ke dalamnya.
  1. Function TampilkanFieldProperty(strTabel, strNamaField As StringAs String  
  2.   Dim dbs As DAO.Database  
  3.   Dim dfTabel As DAO.TableDef  
  4.   Dim nmField As DAO.Field2  
  5.   Dim strp() As String  
  6.   Dim n As Integer  
  7.   Dim strNamaTabel, strFieldProperty, strDesc As String  
  8. On Error GoTo Err_Msg  
  9.     
  10.   strNamaTabel = strTabel  
  11.     
  12.   Set dbs = CurrentDb()  
  13.   Set dfTabel = dbs.TableDefs(strNamaTabel)  
  14.     
  15.   For Each nmField In dfTabel.Fields  
  16.     If nmField.Name = strNamaField Then  
  17. ' Tambahkan properti field yang kita inginkan di bawah ini  
  18. ' Tanda "& _" berarti kode perintah masih dilanjutkan di baris berikutnya.  
  19. ' Bila kode itu tidak ada, maka kode perintah sudah selesai.  
  20.       strFieldProperty = "Properti;Nilai atau Deskripsi" & _  
  21.                           ";Caption;" & TampilkanProperty(strTabel, strNamaField, "Caption") & _  
  22.                           ";Type;" & TampilkanProperty(strTabel, strNamaField, "Type") & _  
  23.                           ";Description;""" & TampilkanProperty(strTabel, strNamaField, "Description") & """" & _  
  24.                           ";Size;" & TampilkanProperty(strTabel, strNamaField, "Size") & _  
  25.                           ";Format;" & TampilkanProperty(strTabel, strNamaField, "Format") & _  
  26.                           ";Display Control;""" & TampilkanProperty(strTabel, strNamaField, "DisplayControl") & """" & _  
  27.                           ";Default Value;""" & TampilkanProperty(strTabel, strNamaField, "DefaultValue") & """" & _  
  28.                           ";Validation Rule;""" & TampilkanProperty(strTabel, strNamaField, "ValidationRule") & """" & _  
  29.                           ";Validation Text;""" & TampilkanProperty(strTabel, strNamaField, "ValidationText") & """"  
  30.       Exit For  
  31.     End If  
  32.   Next nmField  
  33.   TampilkanFieldProperty = strFieldProperty  
  34. Exit_Function:  
  35.   Exit Function  
  36. Err_Msg:  
  37.   Resume Exit_Function  
  38. End Function  
  39.   
  40. Function TampilkanProperty(strTabel, strNamaField, strNamaProperti As StringAs String  
  41.   Dim dbs As DAO.Database  
  42.   Dim dfTabel As DAO.TableDef  
  43.   Dim nmField As DAO.Field2  
  44.   Dim strp() As String  
  45.   Dim n As Integer  
  46.   Dim strNamaTabel, strFieldProperty, strDesc As String  
  47. On Error GoTo Err_Msg  
  48.     
  49.   strNamaTabel = strTabel  
  50.     
  51.   Set dbs = CurrentDb()  
  52.   Set dfTabel = dbs.TableDefs(strNamaTabel)  
  53.     
  54.   For Each nmField In dfTabel.Fields  
  55.     If nmField.Name = strNamaField Then  
  56.       Select Case strNamaProperti  
  57.         Case "DisplayControl": strDesc = NamaTipe(nmField.Properties(strNamaProperti))  
  58.         Case "Type": strDesc = NamaTipe(nmField.Type)  
  59.         Case "Size": strDesc = nmField.Size  
  60.         Case Else: strDesc = nmField.Properties(strNamaProperti)  
  61.       End Select  
  62.       strFieldProperty = strDesc  
  63.       Exit For  
  64.     End If  
  65.   Next nmField  
  66.   TampilkanProperty = strFieldProperty  
  67. Exit_Function:  
  68.   Exit Function  
  69. Err_Msg:  
  70.   Resume Exit_Function  
  71. End Function  
  72.   
  73. Function NamaTipe(intTipe As IntegerAs String  
  74.   Select Case intTipe  
  75.     Case acComboBox: NamaTipe = "Combo Box"  
  76.     Case acListBox: NamaTipe = "List Box"  
  77.     Case acTextBox: NamaTipe = "Text Box"  
  78.     Case dbText: NamaTipe = "Text"  
  79.     Case dbInteger: NamaTipe = "Number - Integer"  
  80.     Case dbLong: NamaTipe = "Number - Long Integer"  
  81.     Case dbDate: NamaTipe = "Date/Time"  
  82.     Case dbBoolean: NamaTipe = "Yes/No"  
  83.     Case dbByte: NamaTipe = "Number - Byte"  
  84.     Case dbDecimal: NamaTipe = "Number - Decimal"  
  85.     Case dbDouble: NamaTipe = "Number - Double"  
  86.     Case dbSingle: NamaTipe = "Number - Single"  
  87.     Case dbMemo: NamaTipe = "Memo"  
  88.     Case dbCurrency: NamaTipe = "Currency"  
  89.     Case dbLongBinary: NamaTipe = "OLE Object"  
  90.     Case dbChar: NamaTipe = "Char"  
  91.     Case dbBigInt: NamaTipe = "Big Integer"  
  92.     Case dbNumeric: NamaTipe = "Numeric"  
  93.     Case dbBinary: NamaTipe = "Binary"  
  94.     Case dbFloat: NamaTipe = "Float"  
  95.     Case dbGUID: NamaTipe = "GUID"  
  96.     Case dbTime: NamaTipe = "Time"  
  97.     Case dbTimeStamp: NamaTipe = "Time Stamp"  
  98.     Case dbVarBinary: NamaTipe = "VarBinary"  
  99.     Case Else: NamaTipe = "Tak Ada Dalam Daftar"  
  100.   End Select  
  101. End Function  
Penjelasan:

Ada tiga fungsi yang kita buat. Pertama adalah fungsi NamaTipe yang digunakan untuk mengkonversi nilai dari suatu properti field ke dalam konstanta yang sudah built-in di Access, Sebagai contoh, field dengan tipe Number-Field Size= Long Integer mempunyai nilai 4 dengan konstanta dbLong,  field dengan tipe Text mempunyai nilai 10 dengan konstanta dbText, dan seterusnya.

Fungsi kedua adalah fungsi TampilkanProperty yang digunakan untuk menampilkan properti field dalam tabel. Sebagai tambahan, fungsi NamaTipe sebenarnya bisa digabung menjadi satu dengan fungsi TampilkanProperty. Postingan di sini dipisahkan semata-mata untuk memudahkan kita memahami alur proses  pemrograman.

Fungsi ketiga adalah fungsi TampilkanFieldProperty. Bila field dalam list box listTabel diklik/dipilih, maka fungsi ini akan dijalankan melalui event procedure After Update seperti langkah nomor 4 di atas. Tampilan akhir form view seperti gambar 2 di bawah ini. Tidak semua properti field ditampilkan di sini. Namun demikian, kita bisa menambahkannya sesuai dengan alur berpikir pada fungsi TampilkanFieldProperty, yaitu dibagian bawah bagian komentar ' Tambahkan properti field yang kita inginkan di bawah ini'.

Gambar 2 Form View menampilkan properti field suatu tabel
Gambar 2 di atas menggunakan contoh properti untuk tabel budget seperti dijelaskan pada posting yang berjudul Membuat Tabel Budget.

Comments

Posting Terpopuler

Cara Mengatur dan Menggunakan ODBC untuk Mengakses Data Eksternal

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

Memahami Properti Validation Rule dan Validation Text pada Tabel di Access