Phân biệt Module và Class trong VBA

Lập trình viên phải phân biệt được Module và Class trong VBA khác nhau như thế nào

Trong VBA có 2 vấn đề Module Class, 2 định nghĩa này khác nhau như thế nào

1. Tạo 1 module md_HocSinh

Option Compare Database

Public HoTen As String
Public Lop As String
Public Diem As Double
  

2. Tạo 1 class obj_HocSinh

Option Compare Database

Dim vHoTen As String
Dim vLop As String
Dim vDiem As Double

Public Property Get HoTen() As String
    HoTen = vHoTen
End Property

Public Property Let HoTen(ByVal vNewValue As String)
    vHoTen = vNewValue
End Property

Public Property Get Lop() As String
    Lop = vLop
End Property

Public Property Let Lop(ByVal vNewValue As String)
    vLop = vNewValue
End Property

Public Property Get Diem() As Double
    Diem = vDiem
End Property

Public Property Let Diem(ByVal vNewValue As Double)
    vDiem = vNewValue
End Property
 

3. Tạo 1 Form và thêm sự kiện click cho command

Option Compare Database
Private Sub Command0_Click()

' SU DUNG MODULE VBA
' Gan hoc sinh 1
mdHocSinh.HoTen = "A"
mdHocSinh.Lop = "10"
mdHocSinh.Diem = 5
' Giá trị mdHocSinh.HoTen là A
' Gan hoc sinh 2
mdHocSinh.HoTen = "B"
mdHocSinh.Lop = "11"
mdHocSinh.Diem = 6
' Sau khi qua dòng này thì Giá trị mdHocSinh.HoTen là B
' Giá trị đã bị ghi đè (thay đổi)

'Su dung Class VBA
Dim hs1 As New objHocSinh
hs1.HoTen = "A"
hs1.Lop = "10"
hs1.Diem = 5
' Giá trị học sinh 1 là A
Dim hs2 As New objHocSinh
hs2.HoTen = "B"
hs2.Lop = "11"
hs2.Diem = 6
' Giá trị học sinh 2 là B
' Xử lý được nhược điểm của module VBA
' Giá trị lưu riêng biệt cho từng đối tượng

End Sub