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

Lớp cơ sở và các biến thể đối tượng có nguồn gốc

Giới thiệu.

Tuần trước, chúng tôi đã thử một ví dụ để chuyển một Đối tượng Lớp Cơ sở, thông qua Bộ Thủ tục Thuộc tính, để trở thành một phần của Đối tượng trong bộ nhớ. Đối tượng được truyền trở thành một phần mở rộng hoặc Đối tượng con của Đối tượng Chính trong bộ nhớ. Trong chương trình trước đó của chúng tôi, việc chuyển Đối tượng con sang Đối tượng đích đã được thực hiện ở giai đoạn khởi tạo của chương trình thử nghiệm của chúng tôi. Chúng tôi đã gán các giá trị cho Thuộc tính đối tượng được chuyển vào trong phần sau của chương trình. Ví dụ tiếp theo hơi khác một chút.

Đối với những người muốn xem qua các Bài viết trước về Mô-đun lớp MS-Access, các liên kết được cung cấp bên dưới:

  • Mô-đun lớp MS-Access và VBA
  • Mảng đối tượng lớp VBA MS-Access
  • Lớp cơ sở MS-Access và các đối tượng có nguồn gốc
  • VBA Base Class và Derived Object-2

Lần này, chúng tôi sẽ mở cả hai Đối tượng (ClsArea - lớp cơ sở, ClsVolume2 - lớp mục tiêu) riêng biệt trong chương trình thử nghiệm của chúng tôi. Gán các giá trị vào Thuộc tính ClsArea Lớp Cơ sở, trước khi chuyển chúng cho Đối tượng ClsVolume2 Lớp đích. Hãy nhớ rằng Lớp Volume2 chỉ có một Thuộc tính của riêng nó, p_Height Thuộc tính và Phương thức của nó Khối lượng () cần Chiều dài Chiều rộng Giá trị của Cls Lớp cơ sở để tính Khối lượng.

  1. Sao chép và Dán Mã Thử nghiệm mẫu sau vào Mô-đun Chuẩn.

    Thủ tục SetNewVol2_2.

    Public Sub SetNewVol2_2()
    'Method 2/2
    Dim CA As ClsArea
    Dim Vol As ClsVolume2
    
    Set CA = New ClsArea
    Set Vol = New ClsVolume2
    
    CA.strDesc = "Bed Room"
    CA.dblLength = 90
    CA.dblWidth = 10
    Stop
    
    
    'Here ClsArea class Object CA is passed to the 
    ‘Property procedure Set CArea of ClsVolume2 object Vol
    Set Vol.CArea = CA 'Pass ClsArea obj to ClsVolume2
    
    Vol.dblHeight = 10 'assign height to ClsVolume2
    
    
    Debug.Print "Description", "Length", "Width", "Area", "Height", "Volume"
    With Vol.CArea
      Debug.Print .strDesc, .dblLength, .dblWidth, .Area(), Vol.dblHeight, Vol.Volume()
    End With
    Stop
    
    Set CA = Nothing
    Set Vol = Nothing
    
    End Sub
    

    Xem lại mã VBA.

    Trong Dim đầu tiên tuyên bố, CA được định nghĩa là Đối tượng ClsArea và Vol dưới dạng Đối tượng ClsVolume2. Hai câu lệnh tiếp theo khởi tạo cả hai đối tượng trong bộ nhớ.

    Ba câu lệnh tiếp theo gán giá trị cho các thuộc tính của Đối tượng lớp ClsArea.

    Dừng lại câu lệnh tạm dừng việc thực thi Mã để chúng tôi có thể xác minh các giá trị Thuộc tính Đối tượng trong Cửa sổ Người dân địa phương.

    Đặt Vol.CArea =CA câu lệnh gán Đối tượng lớp ClsArea CA, như một đối tượng con vào Vol (ClsVolume2) Đối tượng.

    Trong bước tiếp theo dblHeight Thuộc tính của Đối tượng lớp ClsVolume2 được gán giá trị 10.

    Các câu lệnh tiếp theo trước câu lệnh Stop in Giá trị từ bộ nhớ vào Cửa sổ gỡ lỗi.

    Hai Bộ tiếp theo Các câu lệnh xóa các Đối tượng khỏi bộ nhớ, trước khi kết thúc chương trình.

    Hiển thị Cửa sổ Người dân địa phương.

  2. Chọn Cửa sổ người dân địa phương Tùy chọn từ Menu Chế độ xem.
  3. Nhấp vào một nơi nào đó ở giữa Mã và nhấn F5 để chạy mã cho đến khi chương trình tạm dừng tại Dừng tuyên bố. Ngoài ra, bạn có thể nhấn F8 để chạy mã từng bước một để kiểm tra Cửa sổ người dân địa phương để tìm các thay đổi ở mỗi bước.
  4. Nhấp vào [+] Biểu tượng để mở rộng và hiển thị cả Thuộc tính và giá trị của Đối tượng.
  5. Kiểm tra CArea p_Area Tham chiếu đối tượng trong Giá trị cột Vol Đối tượng . Giá trị trong đó được hiển thị là Không có gì vì chúng tôi chưa chuyển Đối tượng CA sang Đối tượng Vol.
  6. Nếu bạn đã xem xong nội dung Cửa sổ Người dân địa phương, hãy chạy mã cho đến lần Dừng tiếp theo tuyên bố. Bây giờ, CArea Nhận thủ tục tài sản và p_Area Đối tượng được gán với Đối tượng lớp ClsArea.

Chúng tôi sẽ thử một ví dụ Biến thể khác của cả hai Lớp này là ClsArea và ClsVolume2.

Mô-đun lớp mới ClsVolume3.

1. Chèn Mô-đun lớp mới và đổi tên Giá trị thuộc tính của nó thành ClsVolume3 .

2. Sao chép và dán Mã VBA sau vào Mô-đun lớp ClsVolume3:

Option Compare Database
Option Explicit
'Method three 
Private p_Height As Double
Public p_Area As ClsArea

Public Property Get dblHeight() As Double
    dblHeight = p_Height
End Property

Public Property Let dblHeight(ByVal dblNewValue As Double)
    p_Height = dblNewValue
End Property

Public Function Volume() As Double
    Volume = p_Area.dblLength * p_Area.dblWidth * Me.dblHeight
End Function

Private Sub Class_Initialize()
    Set p_Area = New ClsArea
End Sub

Private Sub Class_Terminate()
    Set p_Area = Nothing
End Sub

Kiểm tra mã ngay từ đầu: p_Height được tuyên bố là Tài sản riêng. p_Area Thuộc tính của Lớp ClsVolume3 được khai báo là Công khai Đối tượng ClsArea. Điều đó có nghĩa là p_Area sẽ xuất hiện dưới dạng Thuộc tính của Lớp ClsVolume3 với các thuộc tính có thể hiển thị của riêng nó để Nhận / Cho trực tiếp hoạt động trong Chương trình Người dùng trong Mô-đun Chuẩn. Mặc dù Đối tượng Lớp ClsArea đã được khai báo là Thuộc tính Công cộng của Lớp ClsVolume3, các Thuộc tính của nó được đóng gói trong chính Lớp ClsArea.

Kiểm tra Class_Initialize () Class_Termina () Các quy trình phụ. Đối tượng ClsArea được khởi tạo trong Mã Class_Initialize () và xóa Đối tượng khỏi bộ nhớ trong Mã Class_Termina (), khi chương trình người dùng kết thúc.

Chương trình Thử nghiệm.

Mã VBA thử nghiệm mẫu được cung cấp bên dưới.

Sao chép và dán mã vào Mô-đun chuẩn.

Public Sub SNewVol3()
'Here ClsArea class is declared as a Public Property of ClsVolume3
Dim volm As ClsVolume3

Set volm = New ClsVolume3

volm.p_Area.strDesc = "Bed Room"
volm.p_Area.dblLength = 15 'assign length
volm.p_Area.dblWidth = 10 'assign width in clsArea
volm.dblHeight = 10 'assign height to ClsVolume2

Debug.Print "Description", "Length", "Width", "Area", "Height", "Volume"
With volm.p_Area
   Debug.Print .strDesc, .dblLength, .dblWidth, .Area, volm.dblHeight, volm.Volume
End With
Set volm = Nothing

End Sub

Hiển thị Cửa sổ người dân địa phương (View - -> Locals Window), nếu nó chưa được mở.

Nhấp vào một nơi nào đó ở giữa mã và nhấn F8 để thực thi Mã VBA từng dòng một và xem Cửa sổ cục bộ để theo dõi những gì xảy ra ở mỗi bước.

Tất cả các biến thể trên của Lớp ClsVolume đã được viết với ít Mã hơn, ngoại trừ ví dụ đầu tiên của Lớp ClsVolume.

Làm việc với Đối tượng Tập ghi.

Tuần tới, chúng tôi sẽ làm việc với Đối tượng DAO.Recordset tích hợp sẵn và xây dựng Mô-đun lớp tới:

  1. Tính toán và cập nhật Trường,
  2. Sắp xếp dữ liệu,
  3. In dữ liệu đã sắp xếp vào Cửa sổ gỡ lỗi,
  4. và Tạo một bản sao của Bảng với dữ liệu được sắp xếp.

Đó là nhiều hành động vào tuần tới.

Danh sách Tất cả các Liên kết về Chủ đề này.

  1. Mô-đun lớp MS-Access và VBA
  2. Mảng đối tượng lớp VBA MS-Access
  3. Lớp cơ sở MS-Access và các đối tượng có nguồn gốc
  4. Lớp cơ sở VBA và các đối tượng có nguồn gốc-2
  5. Lớp cơ sở và các biến thể đối tượng có nguồn gốc
  6. Tập bản ghi Ms-Access và Mô-đun lớp
  7. Truy cập mô-đun lớp và các lớp gói
  8. Chuyển đổi chức năng lớp bao bọc
  9. Thông tin cơ bản về Ms-Access và Đối tượng Bộ sưu tập
  10. Mô-đun lớp Ms-Access và Đối tượng Bộ sưu tập
  11. Bản ghi Bảng trong Đối tượng và Biểu mẫu Bộ sưu tập
  12. Khái niệm cơ bản về đối tượng từ điển
  13. Khái niệm cơ bản về đối tượng từ điển-2
  14. Sắp xếp các mục và khóa đối tượng từ điển
  15. Hiển thị Bản ghi từ Từ điển sang Biểu mẫu
  16. Thêm các đối tượng lớp dưới dạng các mục từ điển
  17. Cập nhật Mục Từ điển Đối tượng Lớp trên Biểu mẫu


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Access dataverse connector hiện có sẵn để kiểm tra

  2. Nếu bạn có thể hỏi nhóm MS Access Bất kỳ câu hỏi nào, điều đó sẽ là gì?

  3. Tiếp cận quan điểm của các chuyên gia trong Hội nghị thượng đỉnh MVP 2020

  4. Tham số chuỗi kết nối cho các thông số kỹ thuật đã lưu

  5. TIN NỔI BẬT:Đã phát hành Microsoft SQL Server Native Client 18 mới!