Pengantar.
Dalam Sesi Tutorial Kontrol TreeView ini, kita akan menggunakan dua Subformulir bersama dengan kontrol TreeView pada formulir utama frmTreeViewtab . Kami telah mengimpor kontrol ImageList dengan Gambar yang dimuat sebelumnya dari Proyek demo kami sebelumnya.Kami akan menggunakan lvCategory yang sama dan lvProduk Tabel yang telah kami gunakan untuk Proyek kami sebelumnya.
lvCategory Kunci Utama Table Tabel nilai bidang (CID) dan bidang Deskripsi (Kategori) adalah Kunci metode TreeView Nodes Add() dan Teks nilai parameter, masing-masing.
The lvProducts Tabel memiliki informasi rinci tentang setiap produk seperti kode produk, deskripsi stok-unit-kuantitas, dan daftar harga.
Selain itu, lvProducts tabel memiliki ParentID bidang yang diperbarui dengan nilai Kode Kategori (CID). Semua item produk yang termasuk dalam kategori tertentu diperbarui dengan nilai bidang CID (ID Kategori) pada bidang ID Induk. Dengan cara ini kedua Tabel memiliki hubungan master-anak.
Catatan Produk memiliki dua subformulir di Halaman Kontrol Tab. Halaman pertama memiliki data View subformulir dan Halaman kedua memiliki Edit subformulir. Halaman kontrol tab pertama menampilkan semua catatan Produk yang termasuk dalam kategori tertentu dari Kontrol TreeView. Catatan subformulir pertama ditampilkan untuk dilihat dan untuk memilih catatan tertentu untuk diedit pada subformulir kedua.
Arus rekam atau dipilih pengguna record pada sub-formulir pertama tersedia untuk diedit pada sub-formulir kedua, pada halaman kedua kontrol Tab. Bidang Kunci yang disorot dengan warna abu-abu dikunci dan tidak dapat diedit.
TreeView dengan Tampilan Desain Subformulir.
Tampilan Desain dari formulir frmTreeViewTab diberikan di bawah ini:
Dua kotak teks tidak terikat pertama pada formulir utama diperbarui saat pengguna memilih item Kategori dari kontrol TreeView.
Kotak teks tak terikat ketiga (nama p_ID) awalnya diperbarui dengan nilai ID unik (PID) catatan produk pertama jika tidak, nilai catatan yang dipilih pengguna akan diperbarui. Catatan produk yang dipilih pada subformulir pertama tersedia di subformulir kedua untuk dimodifikasi.
Tautan ke Sesi Tutorial Sebelumnya.
Tautan Sesi Tutorial sebelumnya diberikan di bawah ini untuk referensi siap pakai:
- Tutorial Kontrol Microsoft TreeView
- Membuat Menu Akses dengan Kontrol TreeView
- Menetapkan Gambar ke Kontrol TreeView
- Menetapkan Gambar ke TreeView Control-2
- TreeView Control Tanda Centang Tambah Hapus Node
- Menu Akses Drop-Down TreeView ImageCombo
- Atur ulang Node TreeView dengan Seret dan Lepas
- Kontrol ListView dengan MS-Access TreeView
- Acara Seret Seret Kontrol ListView
Id Kucing kotak teks tidak terikat adalah [Bidang Master Tautan] Nilai properti dari subformulir pertama.
Kode Produk pada kotak teks ketiga yang tidak terikat (p_ID ) ditautkan ke [Link Master Fields] nilai properti dari subformulir kedua pada Tampilan Halaman Tab.
p_ID nilai kotak teks tidak terikat diperbarui saat konten subformulir pertama diperbarui atau saat item dipilih oleh pengguna.
Tampilan Layar Normal.
Tampilan normal frmTreeViewTab formulir diberikan di bawah ini:

Bidang Kunci pada catatan Produk pada subformulir kedua, dengan warna depan abu-abu, dikunci dan tidak diizinkan untuk mengubah konten.
Formulir frmTreeViewTab Kode VBA Modul Kelas:
Option Compare Database
Option Explicit
Dim tv As MSComctlLib.TreeView
Dim imgList As MSComctlLib.ImageList
Const Prfx As String = "X"
Private Sub Form_Load()
Dim db As DAO.Database
Dim tbldef As TableDef
'Initialize TreeView Nodes
Set tv = Me.TreeView0.Object
tv.Nodes.Clear
'Initialixe ImageList Object
Set imgList = Me.ImageList3.Object
'Modify TreeView Font Properties
With tv
.Font.Size = 9
.Font.Name = "Verdana"
.ImageList = imgList 'assign preloaded imagelist control
End With
LoadTreeView 'Create TreeView Nodes
End Sub
Private Sub LoadTreeView()
Dim Nod As MSComctlLib.Node
Dim strCategory As String
Dim strCatKey As String
Dim strProduct As String
Dim strPKey As String
Dim strBelongsTo As String
Dim strSQL As String
Dim db As DAO.Database
Dim rst As DAO.Recordset
'Initialize treeview nodes
tv.Nodes.Clear
strSQL = "SELECT lvCategory.CID, lvCategory.Category, "
strSQL = strSQL & "lvcategory.BelongsTo FROM lvCategory ORDER BY lvCategory.CID;"
Set db = CurrentDb
Set rst = db.OpenRecordset(strSQL, dbOpenSnapshot)
' Populate all Records as Rootlevel Nodes
Do While Not rst.BOF And Not rst.EOF
If rst.AbsolutePosition = 1 Then
Me![CatID] = rst![CID]
End If
strCatKey = Prfx & CStr(rst!CID)
strCategory = rst!Category
Set Nod = tv.Nodes.Add(, , strCatKey, strCategory, 1, 2)
Nod.Tag = rst!CID
rst.MoveNext
Loop
'In the second pass of the the same set of records
'Move Child Nodes under their Parent Nodes
rst.MoveFirst
Do While Not rst.BOF And Not rst.EOF
strBelongsTo = Nz(rst!BelongsTo, "")
If Len(strBelongsTo) > 0 Then
strCatKey = Prfx & CStr(rst!CID)
strBelongsTo = Prfx & strBelongsTo
strCategory = rst!Category
Set tv.Nodes.Item(strCatKey).Parent = tv.Nodes.Item(strBelongsTo)
End If
rst.MoveNext
Loop
rst.Close
TreeView0_NodeClick tv.Nodes.Item(1)
End Sub
Private Sub TreeView0_NodeClick(ByVal Node As Object)
Dim Cat_ID As String
'Initialize hidden unbound textbox 'Link Master Field' values
Cat_ID = Node.Tag
Me!CatID = Cat_ID
Me![xCategory] = Node.Text
End Sub
Private Sub cmdExit_Click()
DoCmd.Close
End Sub
Karena penggunaan TreeView Control dan ImageList Control dan fungsinya semuanya dijelaskan secara rinci di sesi sebelumnya, Anda hanya akan menemukan beberapa subrutin VBA sebelumnya yang muncul di Modul formulir di atas.
Kami telah merancang beberapa Layar dengan MS-Access TreeView, ListView, ImageList, dan ImageCombo Control sejauh ini dan saya harap Anda akan menemukannya sebagai titik referensi yang baik untuk desain Antarmuka Proyek Anda sendiri.
Masalah Versi MS-Office untuk Kontrol TreeView.
Jika Anda mengalami masalah dalam menjalankan Demo Database di versi Microsoft Access Anda, maka Anda dapat merujuk ke tautan berikut untuk beberapa tindakan korektif, yang mungkin berguna untuk menyelesaikan masalah Anda:
Sebelumnya, Kontrol di atas tidak berjalan di bawah Sistem 64 Bit. Namun, pada bulan September 2017 Microsoft telah mengeluarkan pembaruan Perpustakaan MSCOMCTL.OCX dan ekstrak Dokumen Microsoft berikut diberikan di bawah ini untuk informasi Anda:
Klik gambar Dokumen di atas untuk teks lengkap Pembaruan 2017:Dokumen 1707. Tautan berikut menyarankan beberapa petunjuk bermanfaat.- SOLVED MSCOMCTL.OCX UNDUH DAFTAR 64 BIT WINDOWS
Dengan menggunakan objek kontrol TreeView di atas, kita dapat membangun Antarmuka Pengguna yang terlihat lebih baik dan berkinerja lebih baik untuk Proyek baru kita.
Unduh Basis Data Demo.