Access
 sql >> Teknologi Basis Data >  >> RDS >> Access

Kontrol TreeView dengan Subformulir

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:

  1. Tutorial Kontrol Microsoft TreeView
  2. Membuat Menu Akses dengan Kontrol TreeView
  3. Menetapkan Gambar ke Kontrol TreeView
  4. Menetapkan Gambar ke TreeView Control-2
  5. TreeView Control Tanda Centang Tambah Hapus Node
  6. Menu Akses Drop-Down TreeView ImageCombo
  7. Atur ulang Node TreeView dengan Seret dan Lepas
  8. Kontrol ListView dengan MS-Access TreeView
  9. 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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dukungan dBase Kembali di Microsoft Access!

  2. Cara menyembunyikan database SQL yang tidak dapat diakses oleh pengguna

  3. Cara Menampilkan atau Menyembunyikan Bilah Alat Akses Cepat di Word, Excel, dan PowerPoint

  4. Apa Itu Microsoft Access dan Untuk Apa Anda Menggunakannya?

  5. Membuat Dependensi Opsional