Skip to main content

Menampilkan Nama Field Tabel Dengan Menggunakan Kode VBA

Ada kalanya, kita ingin membaca nama field tabel dengan tidak membuka tabel yang bersangkutan. Pada sebuah database Access yang tertata rapi, programmer biasanya akan melindungi tabel dari tangan-tangan jahil yang ingin melihat desain tabel yang ada dalam Access. Pengguna hanya diijinkan untuk membaca nama field tabel melalui interface form. Oleh karena alasan keamanan, nama tabel beserta field yang bisa dibaca pun dibatasi. Umumnya, hanya pengguna selevel admin yang bisa membaca field melalui interface form ini.

Pada pembahasan kali ini, kita akan membuat form beserta kode VBA yang digunakan untuk menampilkan nama field tabel yang telah kita buat sendiri, bukan merupakan tabel built in dari Access. Ikuti caranya berikut ini:
Gambar 1. Design view dari form untuk menampilkan nama field
  1. Buatlah form dengan menggunakan blank form. Hasil akhir akan tampak seperti gambar 1.
  2. Pada bagian Detail, sisipkanlah beberapa form control berikut ini:
    1. Combo box dengan properti sbb:
      1. Name=nmTabel
      2. Row Source = SELECT MsysObjects.Name FROM MsysObjects WHERE (((Left$([Name],1))<>"~") AND ((MsysObjects.Type)=1) AND ((Left$([Name],4))<>"MSys")) ORDER BY MsysObjects.Name; 
      3. Row Source Type=Table/Query
      4. Column width=2"
      5. Colum Count=1
      6. Bound Column=1
    2. Button, dengan properti sbb:
      1. Name=Tampilkan
      2. Caption=Tampilkan
      3. On Click=[Event Procedure], lihat nomor 4.
    3. List box, dengan properti sbb:
      1. Name=listTabel
      2. Control Source=Kosongkan (Unbound)
      3. Row Source Type=Value List
      4. Row Source=Kosongkan
      5. Width=Secukupnya
      6. Height=Secukupnya
      7. Label untuk list box ini, dengan properti sbb:
        1. Name=lblList
        2. Caption= Daftar nama field pada tabel
  3. Aturlah properti form On Open=[Event Procedure], lihat nomor 4.
  4. Isikanlah kode VBA berikut ini ke dalam class (form) module:
    1. Option Compare Database  
    2. Dim lblListBox As String  
    3.   
    4. Private Sub Form_Open(Cancel As Integer)  
    5.   lblListBox = Me.lblList.Caption & " "  
    6. End Sub  
    7.   
    8. Private Sub Tampilkan_Click()  
    9.   Dim dbs As DAO.Database  
    10.   Dim dfTabel As DAO.TableDef  
    11.   Dim nmField As DAO.Field2  
    12.   Dim strp() As String  
    13.   Dim n As Integer  
    14.   Dim strNamaTabel As String  
    15.     
    16.   strNamaTabel = Me.nmTabel  
    17.     
    18.   Set dbs = CurrentDb()  
    19.   Set dfTabel = dbs.TableDefs(strNamaTabel)  
    20.     
    21.   ReDim strp(dfTabel.Fields.Count - 1)  
    22.   n = 0  
    23.   For Each nmField In dfTabel.Fields  
    24.     strp(n) = nmField.Name  
    25.     n = n + 1  
    26.   Next nmField  
    27.   Me.listTabel.RowSource = Join(strp, ";")  
    28.   Me.lblList.Caption = lblListBox & strNamaTabel  
    29. End Sub  
Combo box nmTabel mempunya row source yang berasal dari tabel MsysObjects. Tabel MsysObjects adalah tabel sistem yang built-in dan berada di dalam database Access. Dengan demikian, kita tidak perlu membuat tabel MsysObjects. Kopilah query dari row source itu ke combo box yang ada combo box sebuah form dalam database yg kita buat.

Tampilan form yang kita buat, dalam bentuk Form view akan seperti gambar di bawah ini.

Gambar 2.Form view dari form untuk menampilkan nama field

Comments

  1. kalo buat form lebih dari 1 tabel gimana ya pak? cara isi control source sesuai dengan field nya gmn? terimakasih

    ReplyDelete
  2. mohon bantuannya, gimana ya cara menampilkan nama table field pada data report designer vb6.0

    ReplyDelete

Post a Comment

Posting Terpopuler

Cara Mengatur dan Menggunakan ODBC untuk Mengakses Data Eksternal

Memahami Properti Validation Rule dan Validation Text pada Tabel di Access

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