Giới thiệu.
Trong phần Hướng dẫn điều khiển TreeView này, chúng ta sẽ sử dụng hai Biểu mẫu con cùng với điều khiển TreeView trên biểu mẫu chính frmTreeViewtab . Chúng tôi đã nhập điều khiển ImageList với các Hình ảnh được tải trước từ Dự án demo trước đó của chúng tôi.Chúng tôi sẽ sử dụng cùng một lvCategory và lvProducts Các bảng chúng tôi đã sử dụng cho các Dự án trước đây của chúng tôi .
lvCategory Khóa chính của bảng giá trị trường (CID) và trường Mô tả (Danh mục) là Khóa của phương thức TreeView Nodes Add () và Văn bản các giá trị tham số tương ứng.
lvProducts Bảng có thông tin chi tiết về từng sản phẩm như mã sản phẩm, mô tả kho-đơn vị-số lượng và giá niêm yết.
Bên cạnh đó, lvProducts bảng có ParentID trường đã cập nhật với giá trị Mã danh mục (CID). Tất cả các mặt hàng sản phẩm thuộc một danh mục cụ thể được cập nhật với giá trị trường CID (ID danh mục) trên trường ParentID. Bằng cách này, cả hai Bảng đều có mối quan hệ chính-con.
Bản ghi Sản phẩm có hai biểu mẫu con trên Trang điều khiển tab. Trang đầu tiên có dữ liệu Xem biểu mẫu con và Trang thứ hai có Chỉnh sửa biểu mẫu con. Trang điều khiển tab đầu tiên hiển thị tất cả các bản ghi Sản phẩm thuộc về một danh mục cụ thể của Điều khiển TreeView. Các bản ghi biểu mẫu con đầu tiên được hiển thị để xem và chọn một bản ghi cụ thể để chỉnh sửa trên biểu mẫu con thứ hai.
hiện tại ghi lại hoặc do người dùng chọn bản ghi trên biểu mẫu con đầu tiên có sẵn để chỉnh sửa trên biểu mẫu con thứ hai, trên trang thứ hai của điều khiển Tab . Các trường Khóa được đánh dấu bằng màu xám sẽ bị khóa và không thể chỉnh sửa được.
TreeView với Chế độ xem thiết kế biểu mẫu con.
Chế độ xem thiết kế của biểu mẫu frmTreeViewTab được đưa ra dưới đây:
Hai hộp văn bản không liên kết đầu tiên trên biểu mẫu chính được cập nhật khi người dùng chọn một mục Danh mục từ điều khiển TreeView.
Hộp văn bản không liên kết thứ ba (tên p_ID) được cập nhật ban đầu với giá trị ID duy nhất (PID) của bản ghi sản phẩm đầu tiên, nếu không giá trị của bản ghi do người dùng chọn sẽ được cập nhật. Bản ghi sản phẩm đã chọn trên biểu mẫu con đầu tiên có sẵn trên biểu mẫu con thứ hai để sửa đổi.
Liên kết đến các Phiên Hướng dẫn Trước đó.
Các Liên kết Phiên Hướng dẫn trước đó được cung cấp bên dưới để sẵn sàng tham khảo:
- Hướng dẫn Điều khiển Microsoft TreeView
- Tạo Menu Truy cập với Điều khiển TreeView
- Gán hình ảnh cho điều khiển TreeView
- Gán hình ảnh cho TreeView Control-2
- Kiểm soát TreeView Kiểm tra-Đánh dấu Thêm nút Xóa
- Trình đơn truy cập thả xuống TreeView ImageCombo
- Sắp xếp lại các nút TreeView bằng cách kéo và thả
- Kiểm soát ListView với MS-Access TreeView
- Sự kiện kéo thả trong điều khiển ListView
CatId hộp văn bản không liên kết là [Trường liên kết chính] Giá trị thuộc tính của biểu mẫu con đầu tiên.
Mã sản phẩm trên hộp văn bản không liên kết thứ ba ( p_ID ) được liên kết với [Trường liên kết chính] giá trị thuộc tính của biểu mẫu con thứ hai trên Chế độ xem Trang tab.
p_ID giá trị hộp văn bản không liên kết được cập nhật khi nội dung biểu mẫu con đầu tiên được làm mới hoặc khi một mục được người dùng chọn.
Chế độ xem Bình thường của Màn hình.
Chế độ xem thông thường của frmTreeViewTab biểu mẫu được đưa ra dưới đây:
Các trường Khóa trên bản ghi Sản phẩm trên biểu mẫu con thứ hai, với màu xám chủ đạo, bị khóa và không được phép sửa đổi nội dung.
Biểu mẫu frmTreeViewTab Mã VBA mô-đun lớp:
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
Vì việc sử dụng TreeView Control và ImageList Control và chức năng của chúng đều đã được giải thích chi tiết trong các phiên trước đó, bạn sẽ chỉ tìm thấy một số chương trình con VBA trước đó xuất hiện trong mô-đun biểu mẫu trên.
Chúng tôi đã thiết kế một số Màn hình với MS-Access TreeView, ListView, ImageList và ImageCombo Control cho đến nay và tôi hy vọng bạn sẽ tìm thấy chúng như một điểm tham khảo tốt cho thiết kế Giao diện Dự án của riêng bạn.
Vấn đề về phiên bản MS-Office cho Điều khiển TreeView.
Nếu bạn gặp bất kỳ sự cố nào khi chạy Cơ sở dữ liệu Demo trong phiên bản Microsoft Access của mình thì bạn có thể tham khảo liên kết sau để biết một số hành động khắc phục, có thể hữu ích để giải quyết vấn đề của bạn:
Trước đó, các Điều khiển ở trên không chạy trong Hệ thống 64 Bit. Tuy nhiên, vào tháng 9 năm 2017, Microsoft đã đưa ra bản cập nhật Thư viện MSCOMCTL.OCX và phần trích dẫn sau của Tài liệu Microsoft được cung cấp dưới đây để cung cấp thông tin cho bạn:
Nhấp vào ảnh Tài liệu ở trên để xem toàn văn Bản cập nhật 2017:Tài liệu 1707. Liên kết sau đây gợi ý một số gợi ý hữu ích.- ĐÃ GIẢI QUYẾT MSCOMCTL.OCX TẢI XUỐNG ĐĂNG KÝ 64 BIT WINDOWS
Với việc sử dụng các đối tượng điều khiển TreeView ở trên, chúng tôi có thể xây dựng Giao diện người dùng đẹp hơn và hoạt động tốt hơn cho các Dự án mới của chúng tôi.
Tải xuống Cơ sở dữ liệu Demo.