Trong VBA, con trỏ là một khái niệm ám chỉ một cơ chế giúp quản lý và thao tác với dữ liệu trong các tập hợp, như tập hợp các bản ghi (Recordset) trong cơ sở dữ liệu.
Con trỏ được sử dụng để
Theo dõi vị trí hiện tại trong tập dữ liệu hoặc tập hợp.
Di chuyển qua các mục (bản ghi, đối tượng) trong tập hợp.
Truy cập và thao tác trên mục được chỉ định bởi con trỏ.
Ví dụ: Trong một Recordset, con trỏ giúp di chuyển giữa các bản ghi bằng các lệnh như .MoveNext, .MoveFirst, hoặc .Find.
Sử dụng các phương thức sau để di chuyển qua các bản ghi:
Phương thức | Mô tả |
---|---|
.MoveFirst |
Di chuyển đến bản ghi đầu tiên. |
.MoveLast |
Di chuyển đến bản ghi cuối cùng. |
.MoveNext |
Di chuyển đến bản ghi tiếp theo. |
.MovePrevious |
Di chuyển đến bản ghi trước đó. |
Ví dụ sử dụng con trỏ
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Employees")
If Not rs.EOF Then
rs.MoveFirst
Do Until rs.EOF
Debug.Print rs!Employe eName ' In tên nhân viên
rs.MoveNext
Loop
End If
rs.Close
Set rs = Nothing
Trước khi thao tác trên Recordset, nên kiểm tra trạng thái con trỏ:
Thuộc tính Mô tả
.EOF Trả về True nếu con trỏ đã vượt qua bản ghi cuối cùng.
.BOF Trả về True nếu con trỏ ở trước bản ghi đầu tiên.
Ví dụ về kiểm tra con trỏ
If rs.EOF Then
MsgBox "Không có bản ghi nào trong Recordset"
End If
rs.AddNew
rs!FieldName = "New Value"
rs.Update
rs.Edit
rs!FieldName = "Updated Value"
rs.Update
rs.Delete
rs.MoveNext
Di chuyển đến một vị trí cụ thể:
rs.AbsolutePosition = 5 ' Di chuyển đến bản ghi thứ 5
Tìm kiếm bản ghi
rs.FindFirst "FieldName = 'Value'"
If Not rs.NoMatch Then
Debug.Print "Tìm thấy bản ghi."
End If
Luôn đóng Recordset khi không còn sử dụng để giải phóng tài nguyên
rs.Close
Set rs = Nothing
Tìm kiếm:
Duy chuyển vị trí bảng ghi trong bộ nhớ đó là cách mô tả từ con trỏ trong vba cũng như các ngôn ngữ lập trình khác.