Hàm và thủ tục trong VBA Access

Hiểu có bản hàm và thủ tục trong VBA Access để làm phần mềm linh hoạt hơn

  1. Tại sao phải sử dụng hàm và thủ tục
  2. Thủ tục (Sub Procedure)
  3. Hàm (Function)
  4. Sự khác biệt giữa Thủ tục và Hàm
  5. Thủ tục và Hàm có thể được gọi như thế nào?
  6. Tóm lại về thủ tục và hàm
  7. Video ví dụ ứng dụng hàm và thủ tục trong VBA

1. Tại sao phải sử dụng hàm và thủ tục

Nếu 1 phần mềm chỉ 10 dòng code đổ lại thì không cần suy nghĩ về 2 khái niệm này, nhưng khi viết ứng dụng có thể lên đến 1 nghìn dòng.

Hàm và thủ tục trong VBA Access

2. Thủ tục (Sub Procedure)

Khái niệm thủ tục

 Thủ tục (Sub) là một đoạn mã thực thi một hoặc nhiều tác vụ mà không trả về giá trị.

Cấu trúc thủ tục

Sub TenThuTuc()
    ' Mã lệnh ở đây
End Sub

Cách viết thủ tục

Thủ tục được sử dụng khi bạn muốn thực hiện một hành động nào đó mà không cần trả về giá trị.

Ví dụ như mở form, cập nhật dữ liệu, hoặc thực hiện các thao tác giao diện người dùng.

   Ví dụ thủ tục

  

 Sub CapNhatSoLuong()
        Dim SoLuong As Integer
        SoLuong = 10
        MsgBox "Số lượng là: " & SoLuong
    End Sub


    Trong ví dụ này, thủ tục CapNhatSoLuong không trả về giá trị mà chỉ hiển thị một hộp thoại thông báo.

3. Hàm (Function)

Khái niệm về hàm

Hàm (Function) là một đoạn mã có thể thực hiện các tác vụ và trả về một giá trị sau khi thực hiện xong.

Cấu trúc của hàm

  

Function TenHam() As LoaiDuLieu
    ' Mã lệnh ở đây
End Function

Cách viết hàm

Hàm được sử dụng khi bạn cần một giá trị trả về sau khi thực hiện các tác vụ. Ví dụ như tính toán, xử lý chuỗi, kiểm tra điều kiện, v.v.

Ví dụ:

      

 Function TinhTong(a As Integer, b As Integer) As Integer
        TinhTong = a + b
    End Function


    Trong ví dụ này, hàm TinhTong nhận hai tham số a và b và trả về tổng của chúng.

4. Sự khác biệt giữa Thủ tục và Hàm

Mời bạn xem bảng so sánh:

Tiêu chí Thủ tục (Sub) Hàm (Function)
Định nghĩa Thủ tục (Sub) là một đoạn mã thực thi một nhiệm vụ cụ thể, không trả về giá trị. Hàm (Function) là một đoạn mã thực thi và trả về một giá trị.
Trả về giá trị Không trả về giá trị. Trả về một giá trị sau khi thực hiện.
Cách gọi Gọi thủ tục thông qua tên thủ tục, không sử dụng giá trị trả về. Gọi hàm và sử dụng giá trị trả về trong biểu thức hoặc gán cho biến.
Ví dụ Sub ShowMessage()
MsgBox "Hello"
End Sub
Function Add(a, b)
Add = a + b
End Function
Sử dụng trong biểu thức Không thể sử dụng trong biểu thức (không thể gán giá trị từ thủ tục). Có thể sử dụng trong biểu thức hoặc gán giá trị cho biến.
Phạm vi sử dụng Thường được dùng để thực hiện một hành động, như in thông báo, thay đổi giá trị của các đối tượng. Thường dùng khi cần thực hiện tính toán và trả về kết quả.
Có thể gọi trong các công thức Excel Không thể gọi thủ tục trong công thức Excel. Có thể gọi hàm trong công thức Excel nếu hàm được khai báo là public.
Khả năng tái sử dụng Thủ tục thường thực hiện một hành động duy nhất. Hàm có thể tái sử dụng giá trị trả về trong nhiều biểu thức.

 

5. Thủ tục và Hàm có thể được gọi như thế nào?

    Thủ tục có thể được gọi trực tiếp mà không cần sử dụng giá trị trả về.

Sub ChaoMung()
    MsgBox "Chào mừng đến với VBA!"
End Sub

Gọi thủ tục:

ChaoMung

Ví dụ gọi thủ tục trong một nút trên Form

        Tạo một thủ tục gọi một truy vấn:

        Sub ChayTruyVan()
            DoCmd.OpenQuery "TenTruyVan"
        End Sub

        Gán thủ tục này vào sự kiện của nút bấm trên Form:
            Mở Form trong chế độ thiết kế.
            Chọn nút và mở bảng thuộc tính.
            Chọn sự kiện (ví dụ: OnClick), và gán thủ tục ChayTruyVan vào sự kiện đó.

Hàm cần được gọi trong một biểu thức hoặc một câu lệnh gán, vì nó trả về giá trị.

     

 Dim KQ As Integer
    KQ = TinhTong(5, 3)
    MsgBox "Tổng là: " & KQ

 

6. Tóm lại về hàm và thủ tục

    Thủ tục (Sub) thực hiện các tác vụ mà không trả về giá trị.
    Hàm (Function) thực hiện các tác vụ và trả về giá trị.

Khi viết mã trong VBA Access, bạn nên chọn sử dụng thủ tục khi chỉ cần thực hiện tác vụ và không cần trả về giá trị, và hàm khi bạn cần trả về giá trị sau khi thực hiện phép toán hoặc xử lý.

7. Video ví dụ ứng dụng hàm và thủ tục trong VBA

 

Tìm kiếm:

Bài viết liên quan:

Hiểu có bản hàm và thủ tục trong VBA Access để làm phần mềm linh hoạt hơn