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:
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 di atas menggunakan contoh properti untuk tabel budget seperti dijelaskan pada posting yang berjudul Membuat Tabel Budget.
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 |
- 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.
- Untuk Bagian B, tambahkanlah form control berikut ini:
- List Box (form control) di bawah list box listTabel dengan properti sbb:
- Name= listPropertiField
- Control Source= Kosongkan
- Row Source Type=Value List
- Row Source = Kosongkan
- Column Count=2
- Column Widths=1.5”;6”
- Width= 7.5"
- Height= 1.7"
- Label untuk list box listPropertiField di atas:
- Name= lblPropertiField,
- Caption=Field Properties
- List Box (form control) di bawah list box listTabel dengan properti sbb:
- Aturlah properti list box listTabel After Update=[Event Procedure], lihat nomor 4.
- Isikanlah kode VBA berikut ini ke dalam class (form) module:
Private Sub listTabel_AfterUpdate() Me.listPropertiField.RowSource = TampilkanFieldProperty(Me.nmTabel, Me.listTabel) Me.lblPropertiField.Caption = "Field properties " & Me.listTabel End Sub
Function TampilkanFieldProperty(strTabel, strNamaField As String) As String 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, strFieldProperty, strDesc As String On Error GoTo Err_Msg strNamaTabel = strTabel Set dbs = CurrentDb() Set dfTabel = dbs.TableDefs(strNamaTabel) For Each nmField In dfTabel.Fields If nmField.Name = strNamaField Then ' Tambahkan properti field yang kita inginkan di bawah ini ' Tanda "& _" berarti kode perintah masih dilanjutkan di baris berikutnya. ' Bila kode itu tidak ada, maka kode perintah sudah selesai. strFieldProperty = "Properti;Nilai atau Deskripsi" & _ ";Caption;" & TampilkanProperty(strTabel, strNamaField, "Caption") & _ ";Type;" & TampilkanProperty(strTabel, strNamaField, "Type") & _ ";Description;""" & TampilkanProperty(strTabel, strNamaField, "Description") & """" & _ ";Size;" & TampilkanProperty(strTabel, strNamaField, "Size") & _ ";Format;" & TampilkanProperty(strTabel, strNamaField, "Format") & _ ";Display Control;""" & TampilkanProperty(strTabel, strNamaField, "DisplayControl") & """" & _ ";Default Value;""" & TampilkanProperty(strTabel, strNamaField, "DefaultValue") & """" & _ ";Validation Rule;""" & TampilkanProperty(strTabel, strNamaField, "ValidationRule") & """" & _ ";Validation Text;""" & TampilkanProperty(strTabel, strNamaField, "ValidationText") & """" Exit For End If Next nmField TampilkanFieldProperty = strFieldProperty Exit_Function: Exit Function Err_Msg: Resume Exit_Function End Function Function TampilkanProperty(strTabel, strNamaField, strNamaProperti As String) As String 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, strFieldProperty, strDesc As String On Error GoTo Err_Msg strNamaTabel = strTabel Set dbs = CurrentDb() Set dfTabel = dbs.TableDefs(strNamaTabel) For Each nmField In dfTabel.Fields If nmField.Name = strNamaField Then Select Case strNamaProperti Case "DisplayControl": strDesc = NamaTipe(nmField.Properties(strNamaProperti)) Case "Type": strDesc = NamaTipe(nmField.Type) Case "Size": strDesc = nmField.Size Case Else: strDesc = nmField.Properties(strNamaProperti) End Select strFieldProperty = strDesc Exit For End If Next nmField TampilkanProperty = strFieldProperty Exit_Function: Exit Function Err_Msg: Resume Exit_Function End Function Function NamaTipe(intTipe As Integer) As String Select Case intTipe Case acComboBox: NamaTipe = "Combo Box" Case acListBox: NamaTipe = "List Box" Case acTextBox: NamaTipe = "Text Box" Case dbText: NamaTipe = "Text" Case dbInteger: NamaTipe = "Number - Integer" Case dbLong: NamaTipe = "Number - Long Integer" Case dbDate: NamaTipe = "Date/Time" Case dbBoolean: NamaTipe = "Yes/No" Case dbByte: NamaTipe = "Number - Byte" Case dbDecimal: NamaTipe = "Number - Decimal" Case dbDouble: NamaTipe = "Number - Double" Case dbSingle: NamaTipe = "Number - Single" Case dbMemo: NamaTipe = "Memo" Case dbCurrency: NamaTipe = "Currency" Case dbLongBinary: NamaTipe = "OLE Object" Case dbChar: NamaTipe = "Char" Case dbBigInt: NamaTipe = "Big Integer" Case dbNumeric: NamaTipe = "Numeric" Case dbBinary: NamaTipe = "Binary" Case dbFloat: NamaTipe = "Float" Case dbGUID: NamaTipe = "GUID" Case dbTime: NamaTipe = "Time" Case dbTimeStamp: NamaTipe = "Time Stamp" Case dbVarBinary: NamaTipe = "VarBinary" Case Else: NamaTipe = "Tak Ada Dalam Daftar" End Select End FunctionPenjelasan:
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 |
Comments
Post a Comment