Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Xếp phòng thi
#41
(01-10-18, 12:22 PM)bằng lăng Đã viết: Sao số phòng thi nó chạy không đúng bác ongke0711, ở mã 01 khu vực 1 nó đánh phòng 1, 2 rồi qua kv 2 nó lại đánh số phòng là 24, 25 chứ không phải 3, 4

Code của tôi là theo mã khu vực trước rồi tới mã môn: tức là xử lý xong hết mã môn của khu vực 1 rồi xử lý tiếp khu vực 2. Nếu theo mã môn trước rồi tới mã khu vực thì tổng số phòng cũng giống nhau.
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#42
(01-10-18, 12:52 PM)ongke0711 Đã viết:
(01-10-18, 12:22 PM)bằng lăng Đã viết: Sao số phòng thi nó chạy không đúng bác ongke0711, ở mã 01 khu vực 1 nó đánh phòng 1, 2 rồi qua kv 2 nó lại đánh số phòng là 24, 25 chứ không phải 3, 4

Code của tôi là theo mã khu vực trước rồi tới mã môn: tức là xử lý xong hết mã môn của khu vực 1 rồi xử lý tiếp khu vực 2. Nếu theo mã môn trước rồi tới mã khu vực thì tổng số phòng cũng giống nhau.

Dạ, nhưng cùng 1 môn thì phòng thi phải đánh liên tiếp kế nhau luôn ạ. Ongke0711 vui lòng nhính chút tg điều chỉnh lại dùm em. Cám ơn ongke0711
Chữ ký của bằng lăng bằng lăng,gia nhập Thủ Thuật Access từ 06-08 -18.
Reply
Những người đã cảm ơn
#43
Vậy cùng 1 môn, khác khu vực có dồn vô chung 1 phòng không? Tức là có truờng hợp một phòng có thí sinh của 2, 3 khu vực không?
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#44
(01-10-18, 05:09 PM)ongke0711 Đã viết: Vậy cùng 1 môn, khác khu vực có dồn vô chung 1 phòng không? Tức là có truờng hợp một phòng có thí sinh của 2, 3 khu vực không?

Dạ 1 phòng chỉ duy nhất 1 khu vực và 1 môn.
Ví dụ: Khu vực 1, mã môn thi 01 có 81 thí sinh và số thí sinh tối đa trong 1 phòng là 24
thì chia như sau:
+ Phòng 1: 24    + Phòng 2: 24
+ Còn lại 33 thí sinh (24 < 33 < 24x2) thì ta chia: Phòng 3: 17 và Phòng 4: 16
+ Rồi qua khu vực 2, mã môn 01, đánh tiếp phòng 5, 6... quy tắc chia số thí sinh trong phòng như kv 01. Tương tự qua các mã môn kế tiếp cũng vậy (Số phòng tăng dần lên không được lặp lại).
Chữ ký của bằng lăng bằng lăng,gia nhập Thủ Thuật Access từ 06-08 -18.
Reply
Những người đã cảm ơn
#45
Chỉ cần đổi thứ tự rsKhuVuc và rsMaMon cho nhau là được rồi.
Code này đã sửa, đưa thẳng vô nút lệnh [Thực hiện] luôn.

Mã PHP:
Private Sub cmdphongthi_Click()

On Error GoTo ErrHandler
   
   Dim rsMaMon 
As DAO.Recordset
   Dim rsDisplay 
As DAO.Recordset
   Dim rsKhuVuc 
As DAO.Recordset
   Dim soTSLop
soRec As Integer
   Dim TongSoPhongThi
SoPhongThisoTSPhanBosttAs Integer
   
   soTSLop 
CInt(Me.txtsots)

   Set rsKhuVuc CurrentDb.OpenRecordset("SELECT tblDisplay.khuvuc " _
                                          
"FROM tblDisplay " _
                                          
"GROUP BY tblDisplay.khuvuc"dbOpenSnapshot)
   Set rsMaMon CurrentDb.OpenRecordset("tblmamon"dbOpenSnapshot)

   If rsKhuVuc.EOF Or rsKhuVuc.BOF Then Exit Sub    'Không có du lieu'
   If rsMaMon.EOF Or rsMaMon.BOF Then Exit Sub    'Không có du lieu'

   TongSoPhongThi 0
   SoPhongThi 
0

   rsMaMon
.MoveFirst
   Do Until rsMaMon
.EOF
       
       rsKhuVuc
.MoveFirst
       Do Until rsKhuVuc
.EOF
           Set rsDisplay 
CurrentDb.OpenRecordset("SELECT * FROM tblDisplay WHERE khuvuc='" rsKhuVuc!khuvuc "' AND mamon ='" rsMaMon!Mamon "'")
           If rsKhuVuc.EOF Or rsKhuVuc.BOF Then GoTo NextKhuVuc
           With rsDisplay
               
.MoveLast
               
.MoveFirst
               soRec 
= .RecordCount
               If soRec 
soTSLop 0 Then  'TH1: So thí sinh ít hon so thí sinh phân bo/phòng -> 1 phòng'
                   SoPhongThi SoPhongThi 1
                   Do Until 
.EOF
                       
.Edit
                       
!Phong SoPhongThi
                       
.Update
                       
.MoveNext
                   Loop
                   GoTo NextKhuVuc
               End 
If
               If soRec Mod soTSLop 0 Then  'TH2: So thi sinh chia deu het cho cac phong thi'
                   TongSoPhongThi soRec soTSLop
                   For i 
1 To TongSoPhongThi
                       stt 
1
                       SoPhongThi 
SoPhongThi i
                       Do Until 
.EOF Or stt soTSLop
                           
.Edit
                           
!Phong SoPhongThi
                           
.Update
                           stt 
stt 1
                           
.MoveNext
                       Loop
                   Next i
                   GoTo NextKhuVuc
               End 
If

               If soRec Mod soTSLop 0 Then  'TH3: So thi sinh khong chia het cho cac phong thi'
                   TongSoPhongThi soRec soTSLop 1  'Tru bot 1 phong de chia 2 phong cuoi'
                   soTSPhanBo = ((soRec Mod soTSLop) + soTSLop) \ 2  'Phan bo 1/2 truoc, phan con lai chay den EOF'

                   If TongSoPhongThi 0 Then
                       For i 
1 To TongSoPhongThi
                           stt 
1
                           Do Until stt 
soTSLop
                               
.Edit
                               
!Phong SoPhongThi i
                               
.Update
                               stt 
stt 1
                               
.MoveNext
                           Loop
                       Next i
                       SoPhongThi 
SoPhongThi i
                       Debug
.Print SoPhongThi
                       stt 
1
                       Do Until stt 
soTSPhanBo Or .EOF
                           
.Edit
                           
!Phong SoPhongThi
                           
.Update
                           stt 
stt 1
                           
.MoveNext
                       Loop
                       SoPhongThi 
SoPhongThi 1
                       Do Until 
.EOF
                           
.Edit
                           
!Phong SoPhongThi
                           
.Update
                           
.MoveNext
                       Loop
                   Else
                       stt 
1
                       SoPhongThi 
SoPhongThi 1
                       Do Until stt 
soTSPhanBo Or .EOF
                           
.Edit
                           
!Phong SoPhongThi
                           
.Update
                           stt 
stt 1
                           
.MoveNext
                       Loop
                       SoPhongThi 
SoPhongThi 1
                       Do Until 
.EOF
                           
.Edit
                           
!Phong SoPhongThi
                           
.Update
                           
.MoveNext
                       Loop
                   End 
If
               End If
           End With
NextKhuVuc
:
          rsKhuVuc.MoveNext
       Loop
       
       rsMaMon
.MoveNext
   Loop
   
   rsKhuVuc
.Close
   rsMaMon
.Close
   Set rsKhuVuc 
Nothing
   Set rsMaMon 
Nothing
   
ErrHandler_Exit
:
   Exit Sub
   
ErrHandler
:
   MsgBox "Ma Loi: " Err.Number vbCrLf "Dien Giai: " Err.Description
   Resume ErrHandler_Exit
   
End Sub 
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn bằng lăng
#46
em thấy nhiều người hay dùng errhandler nó có nghĩa là gì hả bác
Chữ ký của NguyenDungAnh Đến với cuộc đời hai tay trắng
Giã từ trần thế trắng hai tay
Bao nhiêu tiếng nói tiếng cười
Sống ở cuộc đời lãi được vậy thôi
ღღღღღTài sản của NguyenDungAnh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#47
err: lỗi
handle: xử lý -> handler: người xử lý

Chung lại là người xử lý lỗi laughing

Đây là viết cho vui thôi chứ bản chất là nếu có lỗi xảy ra thì nhảy đến bước A nào đó.
Mình không thích dùng kỹ thuật này lắm, vì sau cũng khó dịch code. Nếu code chuẩn được thì có lỗi xảy ra thường là lỗi về dữ liệu thôi mà
Chữ ký của duynamvnn1208 duynamvnn1208,gia nhập Thủ Thuật Access từ 25-06 -17.
Reply
Những người đã cảm ơn NguyenDungAnh
#48
(02-10-18, 10:59 AM)NguyenDungAnh Đã viết: em thấy nhiều người hay dùng errhandler nó có nghĩa là gì hả bác

Từ "ErrHandler" là do mình thích từ nào gợi nhớ thì đặt thôi. Có người dùng: On Error Goto BaoLoi
Đây là phần xử lý các lỗi có thể phát sinh khi code thực thi. Nếu không bẫy lỗi, khi người dùng thao tác hệ thống sẽ báo lỗi mặc định của hệ thống khi đó:
- Có những báo lỗi sẽ hiện liên tục và không thoát được, treo ứng dụng.
- Báo lỗi bằng tiếng Anh, người dùng không hiểu do vậy nếu bạn lường trước các lỗi có thể phát sinh thì bẫy nó chuyển sang tiếng Việt để người dùng có thể biết cách xử lý v.v..
- Có những báo lỗi có nút Debug, nếu người dùng bấm nó sẽ vô màn hình code để sửa lỗi, càng gây rối cho người dùng.
Bẫy lỗi không hề đơn giản nhé.
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn NguyenDungAnh
#49
Bác cho em hỏi thêm một chút
Trong code của em có một đoạn

Quay trở về n bản ghi xong bắt đầu đánh số phòng tiếp
có cách nào để mình quay về n bản ghi luôn không hay phải dùng vòng lặp

ví dụ em dùng 
for i =1 to n
rs2.previous 
next
Chữ ký của NguyenDungAnh Đến với cuộc đời hai tay trắng
Giã từ trần thế trắng hai tay
Bao nhiêu tiếng nói tiếng cười
Sống ở cuộc đời lãi được vậy thôi
ღღღღღTài sản của NguyenDungAnh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#50
(02-10-18, 05:59 PM)NguyenDungAnh Đã viết: Quay trở về n bản ghi xong bắt đầu đánh số phòng tiếp
có cách nào để mình quay về n bản ghi luôn không hay phải dùng vòng lặp

ví dụ em dùng 
for i =1 to n
rs2.previous 
next

Bạn ngâm cứu dùng Bookmark thử xem.
Khi ở record đầu thì bạn đánh Bookmark cho nó sau khi xử lý xong thì chạy về chỗ đã bookmark cũ
Vd:

Dim varBookmark As Variant
varBookmark=rs.Bookmark
...
...code xu lý
..
Trả về:
rs.Bookmark = varBookmark
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn NguyenDungAnh


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hỏi] Chia phòng thi NTLHAA 16 667 26-09-18, 05:20 PM
Bài mới nhất: bằng lăng
  Phần mềm quản lý phòng khám Tự động tạo cơ sở dữ liệu SQL tt1212 0 744 17-01-16, 03:21 AM
Bài mới nhất: tt1212
  sắp xếp phòng thi theo môn học sinh đăng ký thanhthienhg 0 872 04-11-14, 10:04 PM
Bài mới nhất: thanhthienhg
  Cần tìm giúp CSDL về quản lý tài sản văn phòng catpth3000 3 3,140 28-12-10, 10:55 PM
Bài mới nhất: nguyenthien0908

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ơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line