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:
    Option Compare Database
    Dim lblListBox As String
    
    Private Sub Form_Open(Cancel As Integer)
      lblListBox = Me.lblList.Caption & " "
    End Sub
    
    Private Sub Tampilkan_Click()
      Dim dbs As DAO.Database
      Dim dfTabel As DAO.TableDef
      Dim nmField As DAO.Field2
      Dim strp() As String
      Dim n As Integer
      Dim strNamaTabel As String
      
      strNamaTabel = Me.nmTabel
      
      Set dbs = CurrentDb()
      Set dfTabel = dbs.TableDefs(strNamaTabel)
      
      ReDim strp(dfTabel.Fields.Count - 1)
      n = 0
      For Each nmField In dfTabel.Fields
        strp(n) = nmField.Name
        n = n + 1
      Next nmField
      Me.listTabel.RowSource = Join(strp, ";")
      Me.lblList.Caption = lblListBox & strNamaTabel
    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

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Relasi Database

Menampilkan Data MySQL dalam Form di Access