Search This Blog

Menu Pilihan Menggunakan Treeview pada Microsoft Access


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)
Isi data tabel menu0 adalah sebagai berikut:


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)
Isi data tabel menu1 adalah sebagai berikut:


MEMBUAT FORM MENU DENGAN KOMPONEN TREEVIEW

Menambahkan komponen/object Treeview pada form Microsoft Access dilakukan dengan cara berikut:
  1. Buat form pada baru dengan mode design view
  2. Klik more controls icon (gambar palu dan kunci pas) pada toolbar toolbox
  3. Cari dan pilih (klick) pada Microsoft TreeView Control, version 6.0
  4. Klik pada area form design view, akan muncul object Treeview pada form baru

  5. Atur tinggi dan lebar object treeview sesuai kebutuhan
  6. Beri nama object treeview ini dengan nama TV
Isikan kode program berikut pda event form onlaod
---------------------------------------------------------------------------
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

No comments: