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

Tutorial Kontrol Microsoft TreeView

A. Pendahuluan .

Kontrol Tampilan Pohon Microsoft adalah bagian dari Kontrol Umum Microsoft Windows. Ini adalah bagian menarik dari Object yang menampilkan data terkait dalam hierarki Node. Itu dapat menampilkan data terkait, seperti entri dan sub-entri dalam Daftar Indeks atau daftar folder seperti Panel Kiri Windows Explorer atau Daftar Item terkait dalam struktur hierarki dengan Garis Pohon, Kotak Centang, dan Grafik Gambar bitmap .

ListView dan ImageList Kontrol adalah bagian dari Kontrol Umum Windows dan kami akan menggunakannya bersama dengan Kontrol TreeView di Microsoft Access.

Saya rasa Anda ingin melihat beberapa contoh Gambar Demo Kontrol TreeView, yang akan kami kerjakan dalam beberapa minggu mendatang.

B. Contoh Gambar Demo .

Node dalam keadaan Diciutkan.

  1. Contoh Demo Gambar TreeView dengan semua Node dalam bentuk Diciutkan.

    Node dalam Tampilan yang Diperluas.

  2. Node Kontrol TreeView di atas dalam tampilan yang diperluas.

    Dengan Ikon Gambar Kepala Panah.

  3. Tampilan Contoh TreeView, dengan Ikon Gambar kepala panah ditampilkan di sebelah kiri setiap Teks Node.

    Node Tingkat-Akar Memiliki Gambar Folder lainnya dengan Arrowhead.

  4. Selanjutnya, Tampilan TreeView dengan data tertaut dalam Sub-Formulir. Node tingkat akar memiliki dua Gambar. Folder-Closed Image ditampilkan dalam mode normal. Ketika Root Level Node menerima Klik Mouse, ini akan menampilkan gambar Folder-Open dan menampilkan Child-Node dalam bentuk yang diperluas.

    Informasi terkait ditampilkan pada Sub-Formulir berdasarkan pemilihan Node tingkat Root.

    Salah satu item Child-Node yang dipilih menampilkan Formulir lain (biasanya disembunyikan) dengan informasi terkait.

    Kontrol TreeView dan ListView

  5. Pada Gambar Form berikutnya, ada dua Panel. Node terkait Item Kategori Produk ada di Kontrol TreeView, di Panel kiri. Saat salah satu item Kategori menerima Klik pada kontrol TreeView, Item Produk terkait dengan Kuantitas dan Harga Jual di Kolom terpisah akan muncul di ListView Kontrol, di Panel sisi kanan.

C. Membuat Data Sampel untuk Uji Coba.

Mari kita coba Kontrol TreeView dengan beberapa contoh data yang ditunjukkan di bawah ini, berdasarkan dua gambar pertama yang ditampilkan di awal Halaman ini.

Tabel data sampel di atas memiliki tiga Bidang.

  • ID bidang adalah bidang AutoNumber dengan Nomor ID Unik. Jenis AutoNumber dipilih untuk kenyamanan kita. Dalam kedua kasus, Semua catatan dalam Tabel harus memiliki Nilai ID Unik. Jika Numeric maka harus diubah menjadi String Type, sebelum menambahkannya ke TreeView Control.

  • Kolom Kedua adalah Deskripsi Node (Desc ). Baris informasi pada Kolom ini berhubungan secara logis.

  • IndukID ketiga bidang adalah Tipe Numerik. Tetapi mereka harus dikonversi ke Tipe String sebelum menggunakannya di Kontrol TreeView.

Kita harus mengetahui bagaimana nilai-nilai Kolom Deskripsi terkait satu sama lain, berdasarkan itu kita dapat membangun hubungan dengan memasukkan nilai terkait ke dalam ParentID lapangan.

Misalnya pengaturan logis dari hubungan antara Penulis Buku, Penerbit Buku, Toko Buku tempat Buku Dijual, atau seperti Hubungan antara anggota Pohon Keluarga.

Hubungan antara Kategori Produk, Produk, Stok, Harga, dan sebagainya. Semua informasi ini mungkin tidak muncul di bawah satu Kolom dalam satu Tabel. Mereka mungkin muncul di Kolom yang berbeda atau di tabel yang berbeda juga.

IndukID field sangat penting karena menentukan susunan hierarki dari Node. Jika Bidang ParentID kosong maka catatan itu harus digunakan sebagai Node tingkat Root. Child-Node harus selalu diisi ParentID-nya dengan Parent record ID Value-nya.

Node tingkat akar dapat memiliki satu atau lebih Node Anak, Node Anak dapat memiliki Node anak sendiri.

Kami akan memuat data di atas ke dalam Kontrol TreeView dan melihat tampilannya. Kemudian kita akan mengisi ParentId bidang dengan ID related terkait s untuk mengubah tampilan, cara kita ingin melihatnya dalam urutan yang logis.

D. File Pustaka Kontrol Umum Windows .

  1. Tapi, pertama-tama, buka salah satu Database Anda atau buat yang baru.

  2. Buka Jendela VBA (ALT+F11 ) dan pilih Referensi… dari Alat Menu.

  3. Cari File:Kontrol Umum Microsoft Windows dalam daftar file yang ditampilkan dan beri tanda centang untuk memilihnya.

    Jika Anda tidak dapat menemukan file dalam daftar, klik Jelajahi... Tombol dan temukan file:MSCOMLIB.OCX di direktori Sistem Windows, untuk Versi Windows 7 cari file di SysWOW64 map. Klik Oke untuk menutup Kontrol daftar File Perpustakaan.

  4. Buat Tabel dengan struktur berikut:

  5. Simpan Tabel dengan nama Contoh .

  6. Isi Tabel dengan contoh data 12 record seperti terlihat pada tampilan data Gambar diatas.

    E. Membuat Kontrol TreeView pada Formulir

  7. Buat Formulir kosong Baru.

  8. Klik Activex Controls tombol dari Kontrol Grup, temukan Microsoft TreeView Control lalu pilih.

  9. Klik Oke untuk menyisipkan kontrol TreeView pada Formulir.

  10. Seret kontrol ke bawah dan ke kanan untuk menyisakan ruang di bagian atas dan kiri Kontrol TreeView. Seret tuas pengatur ukuran sudut kanan bawah ke sudut kanan dan bawah untuk membuat kontrol lebih besar, seperti contoh gambar di bawah ini.

  11. Tampilkan Lembar Properti dari kontrol dan ubah Nama Nilai Properti ke TreeView0, jika berbeda disana.

  12. Tampilkan Jendela Pengeditan VBA dari Formulir.

  13. F. Akses Kode VBA.

  14. Salin dan Tempel Kode VBA berikut ke dalam Modul yang menimpa baris kode yang ada di sana:
    Option Compare Database
    Option Explicit
    
    Dim tv As MSComctlLib.TreeView
    Const KeyPrfx As String = "X"
    
    Private Sub Form_Load()
    Dim db As Database
    Dim rst As Recordset
    Dim strSQL As String
    Dim nodKey As String
    Dim ParentKey As String
    Dim strText As String
    
    Set tv = Me.TreeView0.Object
    
    strSQL = "SELECT ID, Desc, ParentID FROM Sample;"
    
    Set db = CurrentDb
    Set rst = db.OpenRecordset(strSQL, dbOpenDynaset)
    
    Do While Not rst.EOF And Not rst.BOF
        If Nz(rst!ParentID, "") = "" Then
            nodKey = KeyPrfx & CStr(rst!ID)
            strText = rst!Desc
            ‘Add the TreeView Root Level Nodes
            tv.Nodes.Add , , nodKey, strText
        
        Else
            ParentKey = KeyPrfx & CStr(rst!ParentID)
            nodKey = KeyPrfx & CStr(rst!ID)
            strText = rst!Desc
            ‘Add the Record as Child Node
            tv.Nodes.Add ParentKey, tvwChild, nodKey, strText 
            
        End If
        rst.MoveNext
    Loop
    rst.Close
    
    Set rst = Nothing
    Set db = Nothing
    
    End Sub
    
    
  15. Simpan Formulir dengan nama frmSample, tapi jangan tutup Jendela VBA.

    G. Kode VBA Baris demi Baris.

Mari kita lihat sekilas Kode VBA dan pahami fungsinya.

Di Area Deklarasi Global, dari Modul Formulir, Variabel tv dideklarasikan sebagai TreeView Obyek. KeyPrfx dinyatakan sebagai Konstan , dengan nilai Tipe String “X”.

TreeView Node 's Key-Value harus selalu dari String Type dan membutuhkan setidaknya satu karakter non-numerik yang ada di Node Key. Contoh Nilai Kunci Tabel kami semuanya dalam bentuk numerik, kami dapat mengonversi dan menambahkannya ke nilai Konstan “X ”. Nilai Numerik yang diubah menjadi Tipe String saja tidak akan diterima sebagai Node-Key.

Catatan: Jika Node-Key dan Induk-Kunci nilai sudah dalam bentuk Alpha atau Alpha-Numeric maka pertanyaan konversi tidak muncul. Semua nilai Kunci-Node harus Unik.

Di Form_Load() Event Procedure, objek Database dan Recordset dideklarasikan. Empat Variabel String juga dideklarasikan.

Pernyataan Set tv =Me.TreeView0.Object pernyataan yang ditetapkan, TreeView0 Objek pada Formulir, ke variabel objek tv.

Pernyataan OpenRecordset() membuka Sampel Tabel Record menggunakan SQL strSQL.

Lakukan Sementara... pernyataan memastikan bahwa recordset tidak kosong, jika kosong maka keluar dari Loop dan akhiri Program.

Jika ada record maka ParentId record pertama bidang diperiksa untuk keberadaan beberapa nilai di sana atau tidak.

Jika kosong maka catatan itu adalah untuk Node tingkat-Root kontrol TreeView barang. Node tingkat Root hanya membutuhkan Node-Key yang unik Nilai, yang sudah kita miliki di ID Bidang dan Item Deskripsi Nilai bidang untuk Teks Argumen.

Jika ParentID bidang memiliki beberapa nilai maka catatannya adalah Child-Node (Child dari Root-level Node atau child dari beberapa Child Node tingkat atas) dari Objek TreeView.

Baris berikutnya membuat Kunci Nilai Argumen di nodKey Variabel String, dengan ID field Nilai, diubah menjadi String dan ditambahkan ke awalan konstan X, Node-Key menjadi X1 .

Pertama!Desc nilai bidang ditambahkan ke Variabel String strText, hanya untuk kejelasan dan untuk membuatnya singkat di Nodes.Add() daftar Parameter metode, jika referensi bidang sangat panjang maka ini akan membuat metode Add() tetap rapi dan rapi.

Baris eksekusi berikutnya:tv.Node.Add() memanggil metode Add() dari TreeView.Nodes Objek untuk menambahkan Node ke TreeView0 kontrol pada Formulir frmSample .

Sintaks metode Add() diberikan di bawah ini untuk referensi:

tv.Nodes.Add([Relative],[Relationship],[Key],[Text],[Image],[SelectedImage]) As Node

Keenam Parameter Add() metode adalah opsional. Jika Anda memanggil metode ini tanpa parameter apa pun, maka Node tingkat Root Kosong akan ditambahkan dan garis pohon kosong akan muncul sebagai indikator di kontrol TreeView.

Untuk TreeView Akar Tingkat Node memerlukan Kunci dan Teks Nilai argumen.

Untuk Node Anak, keduanya [Relative] dan [Hubungan] Argumen diperlukan. Menghilangkan salah satu dari mereka akan memasukkan Node sebagai Node Root, tetapi tidak akan menghasilkan kesalahan apa pun.

[Kerabat] adalah NodKey dari Node yang ada, dimasukkan ke dalam ParentID record record terkait bidang. [Hubungan] adalah tvwChild Constant yang Konstan dengan nilai numerik 4, mengidentifikasinya sebagai Node Anak dari Kunci- Nilai di ParentID Bidang.

Konstanta lainnya nilai untuk Argumen Hubungan digunakan untuk memposisikan Node Anak di lokasi tertentu. Nilai Konstanta adalah sebagai berikut:

tvwFirst =0, menempatkannya sebagai Node pertama, pada level Node relatif.

tvwTerakhir =1, ditempatkan sebagai Node terakhir, pada level Node relatif.

tvwSelanjutnya =2, menempatkan Node setelah Node yang ditentukan.

tvwSebelumnya =3, menempatkan Node tepat sebelum Node yang ditentukan.

Catatan: Anda dapat bereksperimen dengan menetapkan setiap Nilai dalam Hubungan Argumen dan Jalankan Kode dalam Mode Debug, setelah menjaga Jendela dan Formulir VBA dalam Tampilan Normal berdampingan. Perhatikan bagaimana Node diatur dalam setiap siklus eksekusi kode untuk memahami.

Ini akan berguna saat mengedit Kontrol TreeView dengan Menghapus Item dan memasukkan item lain di tempatnya atau menambahkan Node baru di lokasi tertentu.

Node dengan Kunci [Relative] harus ada di Koleksi Nodes sebelum mencoba menambahkan Child-Node ke Node tersebut, jika tidak, metode Add() akan menghasilkan kesalahan.

Proses ini diulang sampai semua record diproses di recordset.

Catatan: Anda dapat meninjau kembali Kode VBA setelah Demo Berjalan.

H. Uji Coba Pertama.

Buka Formulir dalam Tampilan Normal. Hasil Trial Run akan terlihat seperti Gambar di bawah ini.

Itu tidak terlihat lebih dari Listbox normal. Ingat kami belum mengisi nilai apa pun di ParentID bidang di Contoh . kami Meja. Kita harus membuat beberapa hubungan antara Item dalam baris Record untuk memindahkan dan memposisikannya dalam urutan hierarkis di TreeView Control.

I. Memahami Hubungan antara Catatan.

  1. Buka Tabel Contoh dan mari kita periksa Catatan dan hubungannya.
  2. Mari kita tinggalkan Basis Data item sendiri sebagai Item Root.

    Objek Database juga memiliki beberapa objek tingkat atas:Application, DBEngine, Workspaces Collection, dan Databases Collection , yang telah kami hilangkan di sini.

  3. Kemudian kita memiliki Tabel Grup Item dengan ID nilai 2.
  4. Tabel berikutnya , Bidang, Bidang item terkait dengan Tabel kelompok. Kami menginginkan Tabel, Bidang, dan Bidang item untuk berbaris di bawah item induk Tabel Rekam Grup dengan nilai ID 2.
  5. Mari kita sebut record Tabel sebagai Simpul Induk , Tabel, Bidang, dan catatan Bidang sebagai Child-Node .

    J. Memperbarui Bidang ParentID.

  6. Jadi kita perlu memperbarui nilai 2 (Node-Key dari Tabel ) di parentID bidang Tabel , Bidang, dan Lapangan catatan.
  7. Harap perbarui hanya catatan tersebut dan tutup Tabel. Jika sudah selesai maka akan muncul tampilan seperti gambar dibawah ini :
  8. Sekarang, buka frmSample . Anda di Tampilan Formulir dan periksa Kontrol TreeView. Hasilnya akan terlihat seperti yang sebelumnya tanpa perubahan apapun. Perubahan sudah terjadi tetapi tidak terlihat oleh Anda.

    K. Lembar Properti Kontrol TreeView.

  9. Kontrol TreeView memiliki Lembar Propertinya sendiri dan pengaturannya memengaruhi penampilannya. Jadi kita akan membuat perubahan pada salah satu Properties-nya dan kembali untuk melihat TreeView lagi.

  10. Putar frmSample dalam Tampilan Desain.
  11. Klik kanan pada Kontrol TreeView dan sorot TreeCtrl_Object dari Menu Pintasan dan pilih Properti .

    Lembar Properti akan terlihat seperti Gambar yang diberikan di bawah ini:

  12. Pengaturan pada Lembar Properti ini mengubah tampilan Tampilan TreeView.

    Properti Gaya di sisi kiri atas atas sudah disetel dengan fitur maksimal yang tersedia Opsi-7 (tvwTreeLinesPlusMinusPictureText).

  13. Ubah Gaya Garis Properti Nilai =1 (tvwRootLines) dan Klik tombol Terapkan tombol lalu klik OK untuk menutup Lembar Properti.

    L. Jalankan Setelah LineStyle Perubahan Nilai Properti

  14. Simpan Formulir dan buka dalam Tampilan Normal. Sekarang, Garis Pohon muncul dengan benar. Tabel Node memiliki nilai plus (+ ) tanda di sisi kiri, yang menunjukkan bahwa Node ini memiliki satu atau lebih Child Node di level berikutnya dan mereka tidak dalam bentuk yang diperluas.
  15. Klik pada simbol plus untuk memperluas Node dan menampilkan Child Node, dengan ParentID yang sama. Saat Anda mengklik Simbol Minus, Node Anak diciutkan dan disembunyikan, mengubah simbol menjadi tanda plus lagi.
  16. Tampilan akan terlihat seperti Gambar berikut jika dibentangkan:


    M. ID Orang Tua Memperbarui Catatan Lain.

    Kami akan memperbarui Formulir rekam ID Nilai (Nilai Node-Key) ke dalam Form, Kontrol, dan Kontrol catatan' ParentID bidang sehingga catatan ini akan dicantumkan di bawah Formulir Node sebagai Child Node .

    Demikian pula perbarui bidang ParentID Laporan dan Kontrol catatan dengan Laporan ID (Nilai Node-Key) Nilai sehingga Laporkan dan Kontrol item akan diposisikan di bawah Parent Node Laporan , karena ini adalah Child Node .

  17. Buat perubahan pada catatan tabel Sampel Anda dengan nilai ParentID seperti yang ditunjukkan di bawah ini:

    Setelah perubahan di atas, Tampilan TreeView akan terlihat seperti Gambar berikut, ketika semua Node dalam bentuk diperluas.

    Semua Node Anak yang terkait dengan Node tingkat Root:Tabel, Formulir, dan Laporan dikelompokkan sebagai daftar di bawah Node Induk mereka. Tetapi Node Anak mungkin memiliki Node Induk, Node Grand-Parent, atau Node Great Grand-Parent.

    N. Mengatur Semua Objek dalam Urutan Hirarki Logis.

    Sebagai contoh, mari kita ambil Tabel Node tingkat Root pertama . Logikanya Field (dengan record ID 5) berhubungan langsung dengan Fields koleksi (catatan ID 4), Fields koleksi yang terkait dengan Tabel dan Tabel adalah bagian dari Tabel koleksi. Setiap item dalam kelompok (catat nomor 5 sampai 2) terkait satu langkah ke tingkat berikutnya.

    Jadi mari kita posisikan Node Anak ini dengan benar di bawah Node Induknya sendiri dan lihat tampilannya.

  18. Buka Tabel Sampel Anda dan ubah nilai ParentID dari Tabel terkait dengan Catatan Anak seperti yang ditunjukkan di bawah ini:

  19. Bidang dengan Induk catatan ID-5 adalah Fields, record dengan ID-4, maka kami telah memperbarui kolom ParentID record ke-5 dengan Nomor ID 4.
  20. Demikian pula, bidang ParentID catatan ke-4 diperbarui dengan 3, dan ParentID Catatan ke-3 diperbarui dengan catatan nomor 2.
  21. Catatan: Jangan berasumsi bahwa item yang diatur dengan cara ini harus bersebelahan.

  22. Setelah perubahan pada catatan, simpan Tabel dan Buka frmSample untuk melihat perubahan. Tampilan TreeView Anda akan terlihat seperti gambar di bawah ini, dengan semua Node dalam bentuk yang diperluas.

Child-Node dari Root level Node dapat menjadi Parent-Node untuk Child atau Anaknya sendiri. Dengan cara ini ia bisa turun beberapa langkah di bawah pohon.

Ubah dua grup lain dari ParentID Node Anak nilai bidang agar terlihat seperti Gambar yang diberikan di atas.


OBJEK KAMUS

  1. Dasar-dasar Objek Kamus
  2. Dasar-Dasar Objek Kamus-2
  3. Mengurutkan Kunci Objek dan Item Kamus
  4. Tampilkan Rekaman dari Kamus
  5. Menambahkan Objek Kelas sebagai Item Kamus
  6. Perbarui Item Kamus Objek Kelas

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Berapa Banyak Pengguna yang Dapat Mengakses Dukungan?

  2. Kontrol Tampilan Pohon Tanda Centang Tambah Hapus Node

  3. Cara menambahkan Kontrol Pencarian ke Formulir di Access 2016

  4. Mengatur Izin Akses Basis Data

  5. Pentingnya Desain Database yang Baik (dan 7 Langkah untuk Mencapainya)