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 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.
For counter = start To end [Step step]
' Mã lệnh cần thực thi
Next counter
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 đượ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.
For Each item In collection
' Mã lệnh cần thực thi
Next item
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 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.
Do While condition
' Mã lệnh cần thực thi
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.
Đâ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.
While condition
' Mã lệnh cần thực thi
Wend
Dim i As Integer
i = 1
While i <= 5
MsgBox "Số hiện tại là " & i
i = i + 1
Wend
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.
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.
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;
Ứng dụng Vòng lặp trong VBA Access rất lớn trong việc xử lý các bảng ghi.