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 |
- Buatlah form dengan menggunakan blank form. Hasil akhir akan tampak seperti gambar 1.
- Pada bagian Detail, sisipkanlah beberapa form control berikut ini:
- Combo box dengan properti sbb:
- Name=nmTabel
- Row Source = SELECT MsysObjects.Name FROM MsysObjects WHERE (((Left$([Name],1))<>"~") AND ((MsysObjects.Type)=1) AND ((Left$([Name],4))<>"MSys")) ORDER BY MsysObjects.Name;
- Row Source Type=Table/Query
- Column width=2"
- Colum Count=1
- Bound Column=1
- Button, dengan properti sbb:
- Name=Tampilkan
- Caption=Tampilkan
- On Click=[Event Procedure], lihat nomor 4.
- List box, dengan properti sbb:
- Name=listTabel
- Control Source=Kosongkan (Unbound)
- Row Source Type=Value List
- Row Source=Kosongkan
- Width=Secukupnya
- Height=Secukupnya
- Label untuk list box ini, dengan properti sbb:
- Name=lblList
- Caption= Daftar nama field pada tabel
- Aturlah properti form On Open=[Event Procedure], lihat nomor 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 |
kalo buat form lebih dari 1 tabel gimana ya pak? cara isi control source sesuai dengan field nya gmn? terimakasih
ReplyDeletemohon bantuannya, gimana ya cara menampilkan nama table field pada data report designer vb6.0
ReplyDelete