Vòng lặp trong VBA Access

Ứng dụng Vòng lặp trong VBA Access rất lớn trong việc xử lý các bảng ghi.

  1. Vòng lặp VBA Access là gì ?
  2. Các vòng lặp thông dụng trong VBA Access
  3. Kết hợp vòng lặp với các đối tượng Recordset

1. Vòng lặp VBA Access là gì ?

Là việc thực hiện đoạn 1 hay nhiều dòng code vba nào đó nhiều lần

Trong VBA (Visual Basic for Applications) trong Access, bạn có thể sử dụng các vòng lặp để duyệt qua các phần tử trong một tập hợp hoặc thực hiện một số hành động lặp đi lặp lại.

Vòng lặp VBA Access

2. Các vòng lặp thông dụng trong VBA Access

Vòng lặp For ... Next

Vòng lặp For ... Next giúp lặp qua một dãy số. Bạn chỉ định giá trị bắt đầu, giá trị kết thúc và bước nhảy.

Cú pháp vòng lặp For

For counter = start To end [Step step]
    ' Mã lệnh cần thực thi
Next counter

Ví dụ vòng lặp for

Dim i As Integer
For i = 1 To 5
    MsgBox "Số hiện tại là " & i
Next i

Vòng lặp này sẽ hiển thị các hộp thông báo từ 1 đến 5.

Tham khảo video về vòng lặp:

Vòng lặp For Each ... Next

Vòng lặp For Each ... Next được sử dụng để lặp qua các đối tượng trong một tập hợp, như là các bản ghi trong một bảng hoặc bộ sưu tập.

Cú pháp vòng lặp For Each

For Each item In collection
    ' Mã lệnh cần thực thi
Next item

Ví dụ vòng lặp For Each

Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * FROM Customers")

Do While Not rs.EOF
    MsgBox "Tên khách hàng: " & rs!CustomerName
    rs.MoveNext
Loop

Ở ví dụ trên, vòng lặp sẽ lặp qua tất cả các bản ghi trong bảng Customers và hiển thị tên khách hàng.

Vòng lặp Do ... Loop

Vòng lặp Do ... Loop có thể kiểm tra điều kiện trước hoặc sau khi thực thi mã. Có 3 cách sử dụng vòng lặp này:

    Do While ... Loop: Lặp cho đến khi điều kiện là False.
    Do Until ... Loop: Lặp cho đến khi điều kiện là True.
    Do ... Loop While: Điều kiện được kiểm tra sau mỗi lần lặp.
    Do ... Loop Until: Điều kiện được kiểm tra sau mỗi lần lặp.

Cú pháp vòng lặp Do.. Loop

Do While condition
    ' Mã lệnh cần thực thi
Loop

Ví dụ vòng lặp Do Loop

Dim i As Integer
i = 1
Do While i <= 5
    MsgBox "Số hiện tại là " & i
    i = i + 1
Loop

Vòng lặp trên sẽ hiển thị số từ 1 đến 5.

Vòng lặp While ... Wend

Đây là một kiểu vòng lặp khác trong VBA, tương tự như Do While ... Loop, nhưng không phổ biến bằng.

Cú pháp vòng lặp While Wend

While condition
    ' Mã lệnh cần thực thi
Wend

Ví dụ vòng lặp While Wend

Dim i As Integer
i = 1
While i <= 5
    MsgBox "Số hiện tại là " & i
    i = i + 1
Wend

3. Kết hợp vòng lặp với các đối tượng Recordset

Trong VBA Access, bạn thường xuyên sử dụng vòng lặp kết hợp với Recordset để duyệt qua các bản ghi trong bảng hoặc truy vấn.

Vòng lặp Recordset là gì

Là vòng lặp dùng để duyệt tất cả các bảng ghi (row) có trong recordset để tính toán hay tìm kiếm, thống kê dữ liệu.

Ví dụ vòng lặp Recordset


Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Orders")

While Not rs.EOF
    MsgBox "Order ID: " & rs!OrderID & " - Customer: " & rs!CustomerName
    rs.MoveNext
Wend

rs.Close
Set rs = Nothing

Vòng lặp này sẽ duyệt qua tất cả các bản ghi trong bảng Orders và hiển thị thông tin của mỗi đơn hàng.
Tổng kết

    For ... Next: Dùng khi bạn cần lặp qua một dãy số.
    For Each ... Next: Dùng để lặp qua các đối tượng trong một tập hợp.
    Do ... Loop: Dùng khi bạn không biết trước số lần lặp, kiểm tra điều kiện trong khi hoặc sau mỗi vòng lặp.
    While ... Wend: Kiểu vòng lặp đơn giản, kiểm tra điều kiện ở đầu vòng lặp.

Tùy vào nhu cầu cụ thể mà bạn sẽ chọn loại vòng lặp phù hợp trong VBA Access.

Tìm kiếm: cu phap vong lap for;vi du vong lap for;cu phap vong lap for each;vi du vong lap for each;cu phap vong lap do.. loop;vi du vong lap do loop;cu phap vong lap while wend;vi du vong lap while wend;

Bài viết liên quan:

Ứng dụng Vòng lặp trong VBA Access rất lớn trong việc xử lý các bảng ghi.