1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng lập trình trực quan bài 6 tính toán thống kê

10 424 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 199,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

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.

Trang 2

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

Trang 3

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

Trang 4

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

Trang 5

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

Trang 6

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

Trang 7

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) ) < 18 Then

MsgBox “Nhân sự không đủ tuổi làm việc”

End If

+ Ngày chuyển công tác bao giờ cũng lớn hơn ngày nhận công tác

Trang 8

3, Xử lý các ràng buộc phức tạp :

3.1, Các Field cần chú ý trong CSDL :

+ Các Field mang ý nghĩa : số lượng, thời điểm …

+ Các Field tính toán : số lượng, thành tiền,…

3.2, Xây dựng hàm kiểm tra cho các ràng buộc phức tạp : + ưu điểm : độc lập, sử dụng cho nhiều nơi khác nhau + cách xây dựng : mỗi hàm kiểm tra một ràng buộc

Trang 9

3.3, Các hàm nên xây dựng :

RMin(rst As RecordSet, field As String, dk As String) RSum(rst As RecordSet, field As String, dk As String)

RAvg(rst As RecordSet, field As String, dk As String) RCount(rst As RecordSet, field As String, dk As String) RMax(rst As RecordSet, field As String, dk As String)

.

Trang 10

VD : xây dựng hàm tính tổng

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

Ngày đăng: 03/12/2015, 18:28

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w