Sebagi alternatif untuk membuat menu pilhan, kita dapat menggunakan Activex Control Treeview. Treeview merupakan Activex Control yang dapat kita tambahkan pada aplikasi Microsoft Access yang kita bangun.
Untuk membuat menu pilihan menggunakan Treeview dapat dilakukan dengan langkah-langkah berikut:
MEMBUAT TABEL UNTUK KOMPONEN MENU PILIHAN
Buat dua buah tabel untuk menyimpan data menu.
1. Tabel menu0 dengan struktul tabel
- ID type field: Number(Integer)
- Menu_Item type field: Text(50)
- Tipe type field: Text(20)

2. Tabel menu1
- Menu_ID type field: Number(Integer)
- Menu_Item type field: Text(50)
- Object_Name type field: Text(20)
- Urutan type field: Number(Integer)
- Tipe type field: Text(20)

MEMBUAT FORM MENU DENGAN KOMPONEN TREEVIEW
Menambahkan komponen/object Treeview pada form Microsoft Access dilakukan dengan cara berikut:
- Buat form pada baru dengan mode design view
- Klik more controls icon (gambar palu dan kunci pas) pada toolbar toolbox

- Cari dan pilih (klick) pada Microsoft TreeView Control, version 6.0
- Klik pada area form design view, akan muncul object Treeview pada form baru

- Atur tinggi dan lebar object treeview sesuai kebutuhan
- Beri nama object treeview ini dengan nama TV
---------------------------------------------------------------------------
Private Sub Form_Load()
Dim strSql1 As String
Dim strSql2 As String
Dim i As Integer
i = 0
Set rsLevel1 = New ADODB.Recordset
Set rsLevel2 = New ADODB.Recordset
rsLevel1.CursorLocation = adUseClient
rsLevel2.CursorLocation = adUseClient
strSql1 = "SELECT * FROM Menu0 ORDER BY [ID];"
rsLevel1.Open strSql1, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With TV
.Nodes.Add , , "Root", UCase("MENU PILIHAN")
.Nodes("Root").ForeColor = vbBlue
.Nodes("Root").Bold = True
i = i + 1
arrayMenu(i, 1) = UCase("MENU PILIHAN")
arrayMenu(i, 2) = "-"
While Not rsLevel1.EOF
keyLevel1 = "G" & Trim(rsLevel1.Fields("Menu_Item"))
Set nd = .Nodes.Add("Root", tvwChild, keyLevel1, UCase(Trim(rsLevel1.Fields("Menu_Item"))))
nd.ForeColor = vbBlack
nd.Bold = True
nd.EnsureVisible
i = i + 1
arrayMenu(i, 1) = rsLevel1.Fields("Menu_Item")
arrayMenu(i, 2) = rsLevel1.Fields("Tipe")
'Tampilkan Level 2
strSql2 = "SELECT * FROM Menu_Qry WHERE [Menu_ID] =" & _
Trim(rsLevel1.Fields("ID")) & " ORDER BY [Urutan]"
rsLevel2.Open strSql2, _
CurrentProject.Connection, adOpenKeyset, adLockOptimistic
While Not rsLevel2.EOF
keyLevel2 = "L" & Trim(rsLevel2.Fields("myKey"))
Set nd = .Nodes.Add(keyLevel1, tvwChild, keyLevel2, UCase(Trim(rsLevel2.Fields("Menu_Item"))))
nd.ForeColor = vbBlack
nd.Bold = True
i = i + 1
arrayMenu(i, 1) = rsLevel2.Fields("Menu_Item")
arrayMenu(i, 2) = rsLevel2.Fields("Tipe")
rsLevel2.MoveNext
Wend
rsLevel2.Close
rsLevel1.MoveNext
Wend
End With
End Sub
---------------------------------------------------------------------------
Tambahkan juga kode program berikut:
---------------------------------------------------------------------------
Private Sub TV_dblClick()
If arrayMenu(TV.SelectedItem.Index, 2) <> "-" Then
If arrayMenu(TV.SelectedItem.Index, 2) = "Form" Then
DoCmd.OpenForm arrayMenu(TV.SelectedItem.Index, 1)
ElseIf arrayMenu(TV.SelectedItem.Index, 2) = "Query" Then
DoCmd.OpenQuery arrayMenu(TV.SelectedItem.Index, 1)
ElseIf arrayMenu(TV.SelectedItem.Index, 2) = "Report" Then
DoCmd.OpenReport arrayMenu(TV.SelectedItem.Index, 1), acViewPreview
ElseIf arrayMenu(TV.SelectedItem.Index, 2) = "Exit" Then
Keluar_Aplikasi
End If
End If
End Sub
Sub Keluar_Aplikasi()
If MsgBox("Apakah anda yakin akan keluar dari aplikasi ini ?", vbQuestion + vbYesNo) = vbYes Then
DoCmd.Quit
End If
End Sub
---------------------------------------------------------------------------
Contoh tampilan menu pilihan dengan menggunakan Treewiew
Keterangan:Untuk membuka sub menu klik pada tanda + dari menu utama
Untuk mengeksekusi menu double click pada sub menu
Tidak ada komentar:
Posting Komentar