Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
sắp xếp phòng thi theo môn học sinh đăng ký
#1
Theo ý kiến của một bạn muốn xếp phòng thi theo môn đăng ký của học sinh. mình gửi cho các bạn đoạn code sau tham khảo.
code:
Private Sub Command0_Click()
Dim SlHs(10 To 12, 1 To 8) As Integer ' so luong hs khoi i (10 to 12) dang ky mon j (1 to 8)
Dim SlPhong(10 To 12, 1 To 8) As Integer ' so luong phong cua khoi i dang ky mon j
Dim SlHsPhongCuoi(10 To 12, 1 To 8) As Integer ' so luong hs cua phong cuoi cua khoi i dang ky mon j
Dim dem(10 To 12, 1 To 8) As Integer ' dem so luong hs sap vao phong cua khoi i dang ky mon j
Dim phong(10 To 12, 1 To 8) As Integer ' dang sap phong cua khoi i dang ky mon j
' ------------------- dem sl hoc sinh
For i = 10 To 12
For j = 1 To 8
tieuchuan = "[khoi] = '" & i & "' and [dk" & j & "] = TRUE"
SlHs(i, j) = DCount("*", "hocsinh", tieuchuan)
Next
Next
'---------------------tinh sl phõng
For i = 10 To 12
For j = 1 To 8
SlPhong(i, j) = SlHs(i, j) \ 24 + IIf(SlHs(i, j) Mod 24 > 4, 1, 0)
Next
Next
'------------------------- tinh sl hs phong cuoi
For i = 10 To 12
For j = 1 To 8
SlHsPhongCuoi(i, j) = IIf(SlHs(i, j) Mod 24 > 4, SlHs(i, j) Mod 24, SlHs(i, j) Mod 24 + 24)
Next
Next
'------------------------- gan bien dem = 1
For i = 10 To 12
For j = 1 To 8
dem(i, j) = 1
Next
Next
'------------------------- gan bien phong = 1
For i = 10 To 12
For j = 1 To 8
phong(i, j) = 1
Next
Next '----------------
Dim bang As Recordset
Set bang = CurrentDb.OpenRecordset("sapphong", dbOpenDynaset)
If Not bang.BOF Then
bang.MoveFirst
End If
'---------------
Do While Not bang.EOF
'---------------mon 1
If bang![dk1] = True Then
mon = 1
bang.Edit
bang!phongM1 = Format(phong(Val(bang!khoi), mon), "00")
bang.Update
If phong(Val(bang!khoi), mon) < SlPhong(Val(bang!khoi), mon) And dem(Val(bang!khoi), mon) = 24 Then
phong(Val(bang!khoi), mon) = phong(Val(bang!khoi), mon) + 1
dem(Val(bang!khoi), mon) = 1
Else
dem(Val(bang!khoi), mon) = dem(Val(bang!khoi), mon) + 1
End If
End If
'---------------mon 2
If bang![dk2] = True Then
mon = 2
bang.Edit
bang!phongM2 = Format(phong(Val(bang!khoi), mon), "00")
bang.Update
If phong(Val(bang!khoi), mon) < SlPhong(Val(bang!khoi), mon) And dem(Val(bang!khoi), mon) = 24 Then
phong(Val(bang!khoi), mon) = phong(Val(bang!khoi), mon) + 1
dem(Val(bang!khoi), mon) = 1
Else
dem(Val(bang!khoi), mon) = dem(Val(bang!khoi), mon) + 1
End If
End If
'---------------mon 3
If bang![dk3] = True Then
mon = 3
bang.Edit
bang!phongM3 = Format(phong(Val(bang!khoi), mon), "00")
bang.Update
If phong(Val(bang!khoi), mon) < SlPhong(Val(bang!khoi), mon) And dem(Val(bang!khoi), mon) = 24 Then
phong(Val(bang!khoi), mon) = phong(Val(bang!khoi), mon) + 1
dem(Val(bang!khoi), mon) = 1
Else
dem(Val(bang!khoi), mon) = dem(Val(bang!khoi), mon) + 1
End If
End If
'---------------mon 4
If bang![dk4] = True Then
mon = 4
bang.Edit
bang!phongM4 = Format(phong(Val(bang!khoi), mon), "00")
bang.Update
If phong(Val(bang!khoi), mon) < SlPhong(Val(bang!khoi), mon) And dem(Val(bang!khoi), mon) = 24 Then
phong(Val(bang!khoi), mon) = phong(Val(bang!khoi), mon) + 1
dem(Val(bang!khoi), mon) = 1
Else
dem(Val(bang!khoi), mon) = dem(Val(bang!khoi), mon) + 1
End If
End If
'---------------mon 5
If bang![dk5] = True Then
mon = 5
bang.Edit
bang!phongM5 = Format(phong(Val(bang!khoi), mon), "00")
bang.Update
If phong(Val(bang!khoi), mon) < SlPhong(Val(bang!khoi), mon) And dem(Val(bang!khoi), mon) = 24 Then
phong(Val(bang!khoi), mon) = phong(Val(bang!khoi), mon) + 1
dem(Val(bang!khoi), mon) = 1
Else
dem(Val(bang!khoi), mon) = dem(Val(bang!khoi), mon) + 1
End If
End If
'---------------mon 6
If bang![dk6] = True Then
mon = 6
bang.Edit
bang!phongM6 = Format(phong(Val(bang!khoi), mon), "00")
bang.Update
If phong(Val(bang!khoi), mon) < SlPhong(Val(bang!khoi), mon) And dem(Val(bang!khoi), mon) = 24 Then
phong(Val(bang!khoi), mon) = phong(Val(bang!khoi), mon) + 1
dem(Val(bang!khoi), mon) = 1
Else
dem(Val(bang!khoi), mon) = dem(Val(bang!khoi), mon) + 1
End If
End If
'---------------mon 7
If bang![dk7] = True Then
mon = 7
bang.Edit
bang!phongM7 = Format(phong(Val(bang!khoi), mon), "00")
bang.Update
If phong(Val(bang!khoi), mon) < SlPhong(Val(bang!khoi), mon) And dem(Val(bang!khoi), mon) = 24 Then
phong(Val(bang!khoi), mon) = phong(Val(bang!khoi), mon) + 1
dem(Val(bang!khoi), mon) = 1
Else
dem(Val(bang!khoi), mon) = dem(Val(bang!khoi), mon) + 1
End If
End If
'---------------mon 8
If bang![dk8] = True Then
mon = 8
bang.Edit
bang!phongM8 = Format(phong(Val(bang!khoi), mon), "00")
bang.Update
If phong(Val(bang!khoi), mon) < SlPhong(Val(bang!khoi), mon) And dem(Val(bang!khoi), mon) = 24 Then
phong(Val(bang!khoi), mon) = phong(Val(bang!khoi), mon) + 1
dem(Val(bang!khoi), mon) = 1
Else
dem(Val(bang!khoi), mon) = dem(Val(bang!khoi), mon) + 1
End If
End If
'-------------------
bang.MoveNext
Loop
bang.Close
MsgBox "Da chia phong xong", , "TB"
End Sub

Downloat file:
https://www.mediafire.com/?0oaz0hr0cdoqvgy
Chữ ký của thanhthienhg Xin chào, mình là thanhthienhg, Tham gia http://thuthuataccess.com/forum từ ngày 14-09 -14.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Lọc theo điều kiện ChiMai 1 101 24-08-17, 02:18 AM
Bài mới nhất: ongke0711
  Tự chọn 1 trong 2 filed Giá theo điều kiện Global_virus 1 112 22-07-17, 03:05 AM
Bài mới nhất: cpucloi
  [Help] Tự tính đơn giá theo nhiều điều kiện phuongmda 10 463 17-07-17, 10:21 PM
Bài mới nhất: phuongmda
  Không cho phép sử dụng menu trình khi đã đăng nhập vào? kutieu2016 1 240 04-02-17, 03:44 PM
Bài mới nhất: MTNQ
Lightbulb [Help] v/v load từ datatable theo điều kiện lọc thể hiện lên combobox vuga 3 432 08-01-17, 11:54 AM
Bài mới nhất: ongke0711

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ