Access
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Access

Điều khiển TreeView với Biểu mẫu con

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 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:

  1. Hướng dẫn Điều khiển Microsoft TreeView
  2. Tạo Menu Truy cập với Điều khiển TreeView
  3. Gán hình ảnh cho điều khiển TreeView
  4. Gán hình ảnh cho TreeView Control-2
  5. Kiểm soát TreeView Kiểm tra-Đánh dấu Thêm nút Xóa
  6. Trình đơn truy cập thả xuống TreeView ImageCombo
  7. Sắp xếp lại các nút TreeView bằng cách kéo và thả
  8. Kiểm soát ListView với MS-Access TreeView
  9. 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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiến thức cơ bản về MongoDB:Định cấu hình điều khiển truy cập dựa trên vai trò (RBAC)

  2. Nhanh chóng và bẩn đối với các vòng lặp trong cửa sổ ngay lập tức

  3. Lợi ích của việc có Cơ sở dữ liệu bán hàng là gì?

  4. Làm thế nào để Ngăn chặn Tham nhũng Cơ sở dữ liệu trong Microsoft Access

  5. Đếm tất cả các đối tượng trong cơ sở dữ liệu của bạn