
1, M c ụđích :
- Dùng khi mu n th ng kê trên RecordSet : T ng, Max, Min…ố ố ổ
- Th ng kê trên m t s b n ghi tho mãn ố ộ ố ả ả đi u ki nề ệ
2, Duy t RecordSet : ệ
- Hành đ ng ộClone c a ủRecordSet : t o m t RecordSet t m d a ạ ộ ạ ự
trên RS c n tính toán ầđ duy t m u tin. Do ể ệ ẩ đó, s không nh ẽ ả
hưng ởđ n m u tin hi n hành và tình tr ng d li u trong ế ẩ ệ ạ ữ ệ RS chính.

2, Duy t RecordSet : ệ
- C u trúc vòng l p duy t RecordSet : ấ ặ ệ
+ S d ng vòng l p Do While … Loopử ụ ặ
If <rst>.RecordCount >0 then <rst>.MoveFirst
Do While Not <rst>.EOF
<Các l nh tính toán>ệ
<rst>.MoveNext
Loop
+ S d ng vòng l p For … Nextử ụ ặ
For i = 1 to <rst>.RecordCount
<rst>.AbsolutePosition = i
<các l nh tính toán>ệ
Next

Ví d : hàm RSUM ụđ tính t ngể ổ
Function RSum(rst As ADODB.RecordSet, field As
String, dk As String)
Dim tong, rs as ADODB.RecordSet
tong = 0
Set rs = rst.Clone
rs.Filter = dk
Do While Not rs.EOF
tong = tong + rs(field).Value
rs.MoveNext
Loop
Rsum = tong
End Function

3, T p h p Fields và ậ ợ đ i tố ư ng Field c a RecordSet : ợ ủ
- Count : cho bi t s field c a RecordSetế ố ủ
- Item : ch ỉđ n m t field trong t p h pế ộ ậ ợ
- Append : cho phép thêm m t field vào t p h p Fieldsộ ậ ợ
- Delete : Xoá b m t field kh i t p h p Fieldsỏ ộ ỏ ậ ợ
Ví dụ : t o m t RS g m 3 trạ ộ ồ ư ng ờ
Dim Rs as ADODB.RecordSet
Set rs = New ADODB.RecordSet
Rs.Fields.Append "ma",adChar,5,adFldUpdatable
Rs.Fields.Append "hoten",adChar,30,adFldUpdatable
Rs.Fields.Append "phai",adBoolean,,adFldUpdatable
Rs.Open

1, Mô t các ràng bu c toàn v n thả ộ ẹ ư ng g p :ờ ặ
- ràng bu c khoá chínhộ : không th có hai mã gi ng nhauể ố
- ràng bu c khoá ngo iộ ạ : nhân viên không th thu c v m t ể ộ ề ộ
phòng ban chưa có trong danh m c phòng ban.ụ
- ràng bu c logic ph c t pộ ứ ạ : khi th c hi n c p nh t trên ự ệ ậ ậ
nhi u b ng d li u.ề ả ữ ệ
2, Ví d cách x lý các ràng bu c ụ ử ộ đơn gi n :ả
VD1 : x lý ràng bu c khoá chính khi trùng mãử ộ
If DCOUNT(select * from NhanVien Where manv=’” &
rstNV(“manv”).Value &”’”) > 0 Then
MsgBox “Mã này đã t n t i trong CSDL”ồ ạ
. . .
End If

