Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Xếp phòng thi
#31
(27-09-18, 09:32 AM)NguyenDungAnh Đã viết: Tưởng dễ ăn mà cũng khá lắt léo mất toi 1,5 ngày mà chưa biết có chuẩn không nữa
mọi người tải lại xem giúp còn sai ở đâu không nhé

https://drive.google.com/open?id=1S88cWD...j2389r9RmL

Chỉ còn một lỗi nhỏ là: sau khi phân bổ các phòng 24, số thí sinh còn lại chia 2 phòng không đều nhau. Vd: 14 -12 thay vì 13-13.
- Để lấy phần nguyên, thay vì dùng hàm Int() thì bạn dùng dấu "\" cho nhanh. VD: 5\2 =2
- Để canh lề code cho dễ nhìn thì dùng cái tool IndentVBA cho nhanh. Link: http://www.oaltd.co.uk/indenter/indentpage.asp
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
#32
Cám ơn bác đã góp ý
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
#33
(27-09-18, 09:32 AM)NguyenDungAnh Đã viết: Tưởng dễ ăn mà cũng khá lắt léo mất toi 1,5 ngày mà chưa biết có chuẩn không nữa
mọi người tải lại xem giúp còn sai ở đâu không nhé

https://drive.google.com/open?id=1S88cWD...j2389r9RmL

Dạ em cám ơn bác NguyenDungAnh rất nhiều, đã bỏ ra rất nhiều công sức giúp đỡ ạ, e sẽ cố gắng hoàn thiện phần chia đều phòng thi như ongke0711 góp ý
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
#34
Đoạn code của tôi thì dài hơn bạn NguyenDungAnh chút nhưng tốc độ xử lý thì nhanh hơn 30% và linh động hơn chút. Bạn DungAnh sửa đi rồi test lại xem. 007
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
#35
Hình như Bác quên post code rồi 
Bác post lên cho em xem với
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
#36
(27-09-18, 04:23 PM)ongke0711 Đã viết: Đoạn code của tôi thì dài hơn bạn NguyenDungAnh chút nhưng tốc độ xử lý thì nhanh hơn 30% và linh động hơn chút. Bạn DungAnh sửa đi rồi test lại xem. 007

ongke0711 post file lên đi bác
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
#37
Code chia phòng thi:

Mã PHP:
Function ChiaPhongThi()
    
    On Error 
GoTo ErrHandler
    
    Dim rsMaMon 
As DAO.Recordset
    Dim rsDisplay 
As DAO.Recordset
    Dim rsKhuVuc 
As DAO.Recordset
    Dim frm 
As Form
    Dim soTSLop
soRec As Integer
    Dim TongSoPhongThi
SoPhongThisoTSPhanBosttAs Integer
    
    Set frm 
Forms("frm_Chiaphongthi")
    soTSLop CInt(frm.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 Function    'Không có du lieu'
    If rsMaMon.EOF Or rsMaMon.BOF Then Exit Function    'Không có du lieu'

    TongSoPhongThi 0
    SoPhongThi 
0

    rsKhuVuc
.MoveFirst
    
Do Until rsKhuVuc.EOF
        
        rsMaMon
.MoveFirst
        
Do Until rsMaMon.EOF
            Set rsDisplay 
CurrentDb.OpenRecordset("SELECT * FROM tblDisplay WHERE khuvuc='" rsKhuVuc!khuvuc "' AND mamon ='" rsMaMon!Mamon "'")
            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 NextMaMon
                End 
If
                If soRec Mod soTSLop 0 Then  'TH2: So thi sinh chia deu het cho cac phong thi'
                    TongSoPhongThi soRec soTSLop
                    
For 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 NextMaMon
                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 1 To TongSoPhongThi
                            stt 
1
                            
Do Until .EOF Or stt soTSLop
                                
.Edit
                                
!Phong SoPhongThi i
                                
.Update
                                stt 
stt 1
                                
.MoveNext
                            Loop
                        Next i
                        SoPhongThi 
SoPhongThi i

                        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
NextMaMon
:
            rsMaMon.MoveNext
        Loop
        rsKhuVuc
.MoveNext
    Loop
    
    
ErrHandler_Exit
:
    Exit Function
    
ErrHandler
:
    MsgBox "Ma Loi: " Err.Number vbCrLf "Dien Giai: " Err.Description
    Resume ErrHandler_Exit
    
End 
Function 


Gọi hàm cho nút lệnh:
--------------------------------------------------
Private Sub cmdChiaPhongThi_Click()
     ChiaPhongThi
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
#38
Em chạy code
Báo lỗi Run-time error '3021'
No current record
Lỗi này là sao vậy 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
#39
(01-10-18, 07:57 AM)bằng lăng Đã viết: Em chạy code
Báo lỗi Run-time error '3021'
No current record
Lỗi này là sao vậy ongke0711

Lúc trước tôi chưa bẫy lỗi hết nên bị vậy.
Lỗi này là do vòng lặp nó chạy đến record cuối mà chưa nhảy ra khỏi vòng lặp bên báo lỗi.
Đã chỉnh lại trong code ở trên, bạn copy lại đi 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
#40
(01-10-18, 11:26 AM)ongke0711 Đã viết: Lúc trước tôi chưa bẫy lỗi hết nên bị vậy.
Lỗi này là do vòng lặp nó chạy đến record cuối mà chưa nhảy ra khỏi vòng lặp bên báo lỗi.
Đã chỉnh lại trong code ở trên, bạn copy lại đi nhé.

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
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


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 580 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 735 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 867 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,125 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