Function DCount(field As String, table As String, Optional dk As
String)
Dim rs As New ADODB.Recordset
rs.Open "select count(" & field & ") from " & table & _ IIf(dk <> ‘’ “,” where " & dk, dk), cnn
DCount = rs(0).Value
End Function
Private Sub cmdKiemTra_Click()
If DCount(“MaSV”,”SinhVien”) = 0 Then
MsgBox (“Chưa có sinh viên nào”)
End If
End Sub
9 trang |
Chia sẻ: phanlang | Lượt xem: 1809 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Tính toán thống kê, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
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 .RecordCount >0 then .MoveFirst Do While Not .EOF .MoveNext Loop + Sử dụng vòng lặp For … Next For i = 1 to .RecordCount .AbsolutePosition = i 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 VD2 : Xử lý ràng buộc khoá ngoại kiểm tra xem phòng nhập đã có chưa If DCOUNT(Select * From PHONG WHERE maph =’” & rstNV(“maph”).Value &”’”)= 0 then MsgBox “Phòng này chưa có trong CSDL” . . . End If VD3 : Xử lý ràng buộc miền giá trị : Kiểm tra nhập ngày đã đúng chưa If IsDate(rstNV(“ngaysinh”).Value))= False then MsgBox “Ngày sinh không hợp lệ” . . . End If VD4 : Xử lý ràng buộc liên thuộc tính + Nhân viên nhận vào phải trên 18 tuổi If (Year(Date()) - Year(rstNV(“Ngaysinh”).Value) ) ‘’ “,” where " & dk, dk), cnn DCount = rs(0).Value End Function Private Sub cmdKiemTra_Click() If DCount(“MaSV”,”SinhVien”) = 0 Then MsgBox (“Chưa có sinh viên nào”) End If End Sub
Các file đính kèm theo tài liệu này:
- bai6_3707.ppt