Cùng thực hiện chương trình trắc nghiệm Excel 100% nào !!!

  • Thread starter levanduyet
  • Ngày gửi
levanduyet

levanduyet

Welcome
16/10/04
537
19
18
HCM
my.opera.com
Chào các bạn,
Chương trình trắc nghiệm 100% Excel đang chờ các bạn cùng tôi xây dựng. Nếu các bạn thử nghiệm thấy bị lỗi thì vui lòng post lên đây. Hay các bạn có thể góp ý trực tiếp vào thread này nha.
Worksheet của file trắc nghiệm này gồm có các sheet chính:
1. Main: để tạo giao diện ban đầu cho chương trình.
2. Các sheet subject khác được đặt tên theo quy định "SUB" & số thứ tự đề tài được tạo. Số thứ tự này sẽ được tạo một cách tự động. Các sheet này sẽ được dấu đi khi khởi tạo cũng như trong lúc người sử dụng dùng nó. Số sheet subject này sẽ được giới hạn bởi một hằng Public trong một module (tối đa 10, hay 100)
Cấu trúc của mỗi sheet này như sau:
_Ở cell A1: là phần diễn giải của các Subject.
_Các câu hỏi sẽ được đặt trong hàng tiếp theo, cột tiếp theo. Ví dụ câu hỏi đầu tiên trong chuyên mục này sẽ được đặt tại cell B2. Kế tiếp cell C2 sẽ là câu trả lời 1, D2 sẽ có giá trị 0/1 tùy theo câu trả lời này được cho là đúng hay sai. Câu trả lời tiếp sẽ được đặt tương tự tại E2,...Chỉ được 4 câu mà thôi.
Việc thao tác với các dữ liệu, các subject sẽ được một người biết passworld nhập vào (đây chỉ là giả bộ thôi...!). Phải tạo ra các form cho công việc được dễ dàng. Còn người "làm bài trắc nghiệm" sẽ được tạo các form làm bài, nhằm giúp cho người làm bài được dễ dàng. Mỗi câu đúng sẽ được 25 điểm. Số điểm sẽ được cộng dồn cho tới khi người làm bài kết thúc, đóng form làm bài lại.

Nhằm tránh cho chương trình báo lỗi đang khi thực hiện (chứ để người khác cười cho!) chúng ta dùng một module của e-book có trong đĩa EFC1.
Nội dung của module như sau:

Option Explicit
'Source code from Professional Excel Development
'Module name: ErrorHandler
Public Const gbDEBUG_MODE As Boolean = False
Public Const glHANDLED_ERROR As Long = 9999
Public Const glUSER_CANCEL As Long = 18

Private Const msSILENT_ERROR As String = "UserCancel"
Private Const msFILE_ERROR_LOG As String = "Error.log"
Private Const gsAPP_TITLE As String = "NOTICE"

Public Function bCentralErrorHandler( _
ByVal sModule As String, _
ByVal sProc As String, _
Optional ByVal sFile As String, _
Optional ByVal bEntryPoint As Boolean) As Boolean

Static sErrMsg As String

Dim iFile As Integer
Dim lErrNum As Long
Dim sFullSource As String
Dim sPath As String
Dim sLogText As String

' Grab the error info before it's cleared by
' On Error Resume Next below.
lErrNum = Err.Number
' If this is a user cancel, set the silent error flag
' message. This will cause the error to be ignored.
If lErrNum = glUSER_CANCEL Then sErrMsg = msSILENT_ERROR
' If this is the originating error, the static error
' message variable will be empty. In that case, store
' the originating error message in the static variable.
If Len(sErrMsg) = 0 Then sErrMsg = Err.Description

' We cannot allow errors in the central error handler.
On Error Resume Next

' Load the default filename if required.
If Len(sFile) = 0 Then sFile = ThisWorkbook.Name

' Get the application directory.
sPath = ThisWorkbook.Path
If Right$(sPath, 1) <> "\" Then sPath = sPath & "\"

' Construct the fully-qualified error source name.
sFullSource = "[" & sFile & "]" & sModule & "." & sProc

' Create the error text to be logged.
sLogText = " " & sFullSource & ", Error " & _
CStr(lErrNum) & ": " & sErrMsg

' Open the log file, write out the error information and
' close the log file.
iFile = FreeFile()
Open sPath & msFILE_ERROR_LOG For Append As [HASHTAG]#iFile[/HASHTAG]
Print [HASHTAG]#iFile[/HASHTAG], Format$(Now(), "mm/dd/yy hh:mm:ss"); sLogText
If bEntryPoint Then Print [HASHTAG]#iFile[/HASHTAG],
Close [HASHTAG]#iFile[/HASHTAG]

' Do not display silent errors.
If sErrMsg <> msSILENT_ERROR Then

' Show the error message when we reach the entry point
' procedure or immediately if we are in debug mode.
If bEntryPoint Or gbDEBUG_MODE Then
Application.ScreenUpdating = True
MsgBox sErrMsg, vbCritical, gsAPP_TITLE
' Clear the static error message variable once
' we've reached the entry point so that we're ready
' to handle the next error.
sErrMsg = vbNullString
End If

' The return value is the debug mode status.
bCentralErrorHandler = gbDEBUG_MODE

Else
' If this is a silent error, clear the static error
' message variable when we reach the entry point.
If bEntryPoint Then sErrMsg = vbNullString
bCentralErrorHandler = False
End If

End Function

Các bạn hãy cố gắng đọc các đoạn mã trên nha. "Đại ý" của module trên là giúp ghi báo lỗi ra một file text Error.txt. Điều này cũng rất cần cho các bạn viết các chương trình nhỏ cung cấp cho các "khách hàng".
File được viết trên phiên bản Excel 2000.
Thôi nghỉ giải lao tí. Tôi tạm thời upload file lên để các bạn tham khảo, góp ý và cùng nhau thực hiện.

Mong góp ý và cùng thực hiện!
Thân,

Lê Văn Duyệt
 

Đính kèm

  • TracNghiem.rar
    38.2 KB · Lượt xem: 704
Khóa học Quản trị dòng tiền
levanduyet

levanduyet

Welcome
16/10/04
537
19
18
HCM
my.opera.com
So không thấy ai vậy!!!

Chào các bạn,
Mình upload lên file đã có các form giúp nhập liệu. Các bạn giúp mình viết tiếp nhé.
Thân,
Lê Văn Duyệt
 

Đính kèm

  • TracNghiem.rar
    38.2 KB · Lượt xem: 352
HongViet

HongViet

Cao cấp
10/11/05
286
10
18
Đà nẵng
levanduyet nói:
Chào các bạn,...Chỉ được 4 câu mà thôi.
. Mỗi câu đúng sẽ được 25 điểm. Số điểm sẽ được cộng dồn cho tới khi người làm bài kết thúc, đóng form làm bài lại.
Mong góp ý và cùng thực hiện!Thân, Lê Văn Duyệt
Không nên hạn chế chỉ 4 câu cũng như không thể chỉ cho 25 điểm cố định: cứng nhắc -> không uyễn chuyễn!:angel:
 
levanduyet

levanduyet

Welcome
16/10/04
537
19
18
HCM
my.opera.com
HongViet nói:
Không nên hạn chế chỉ 4 câu cũng như không thể chỉ cho 25 điểm cố định: cứng nhắc -> không uyễn chuyễn!:angel:
Chào HongViet,
Phiên bản 1.0 mà. Cám ơn bạn đã góp ý.
Thân,

Lê Văn Duyệt
 
levanduyet

levanduyet

Welcome
16/10/04
537
19
18
HCM
my.opera.com
Buồn quá, không ai tham gia...hết vậy

Chào các bạn,
Mong các bạn cùng tham gia chương trình nhỏ nhỏ này nha!
Thân,

Lê Văn Duyệt
:wall:
 
T

Tuanktcdcn

Lão già ham vui
18/6/04
549
52
28
47
Hà Nội
www.bluesofts.net
Em không hiểu thế nào cả?
Anh cho mọi người biết mục đích của chương trình là làm cái gì. Để làm nó cần nguồn thông tin như thế nào,.....
Tiếp tục anh nhé!
 
levanduyet

levanduyet

Welcome
16/10/04
537
19
18
HCM
my.opera.com
Tuanktcdcn nói:
Em không hiểu thế nào cả?
Anh cho mọi người biết mục đích của chương trình là làm cái gì.
Tiếp tục anh nhé!
To: Tuanktcdcn,
Chương trình trắc nghiệm 100% Excel.
Trong phiên bản này chúng ta chỉ tạo một số công cụ chính mà thôi.
Các công cụ chính như:
1. Các form giúp cho việc nhập liệu. Trong ví dụ ở trên anh đã làm rồi, các bạn chỉ xem và điều chỉnh góp ý.
2. Các form cho việc thi cử. Cụ thể khi mở form ra, trên form này sẽ thể hiện các chủ đề hiện có, mỗi chủ đề khi người dùng click vào sẽ thể hiện có bao nhiêu câu hỏi. Mỗi câu hỏi khi click vào sẽ cho người dùng thực hiện việc chọn lựa và làm bài thử.
Ngoài ra, còn có thể định nghĩa các câu hỏi cho một kỳ thi...
Thân,

Lê Văn Duyệt
 
levanduyet

levanduyet

Welcome
16/10/04
537
19
18
HCM
my.opera.com
Bình_OverAC nói:
Bác ơi đề nghị bác cho dử liệu sơ sơ để test chứ kiểu này khó quá.
Anh chỉ mới tạo form để tạo cơ sơ dữ liệu mà thôi, chứ chưa có tạo form để thực hiện thi cử.
Em cứ test hết thử xem.
Thân,
LVd
 
hai2hai

hai2hai

VNUNI Makes a difference
29/4/04
2,032
125
63
50
Hà nội
vnuni.net
Em ko hiểu???

levanduyet nói:
To: Tuanktcdcn,
Chương trình trắc nghiệm 100% Excel.
Trong phiên bản này chúng ta chỉ tạo một số công cụ chính mà thôi.
Các công cụ chính như:
1. Các form giúp cho việc nhập liệu. Trong ví dụ ở trên anh đã làm rồi, các bạn chỉ xem và điều chỉnh góp ý.
2. Các form cho việc thi cử. Cụ thể khi mở form ra, trên form này sẽ thể hiện các chủ đề hiện có, mỗi chủ đề khi người dùng click vào sẽ thể hiện có bao nhiêu câu hỏi. Mỗi câu hỏi khi click vào sẽ cho người dùng thực hiện việc chọn lựa và làm bài thử.
Ngoài ra, còn có thể định nghĩa các câu hỏi cho một kỳ thi...
Thân,

Lê Văn Duyệt

Anh Duyệt ơi, em ở file Excel của anh ra, Sheet data em ko hiểu là gì, Sheet Main có cái nút, bấm vào đó nhập dữ liệu add vào cái List box. Em cũng ko hiểu để làm gì.

Nói tóm lại em biết đây là công cụ rồi, nhưng thực sự nhập mỗi cái dòng đó vào list thì thà để em cập nhật vào sheet nhanh hơn anh à. (Mà dữ liệu đó em ko hiểu lưu đâu vậy anh?)

Tóm lại, em cũng ko hiểu gì "sất".

Có lẽ anh viết tiếng việt đi, làm 2 files: 1 file là "công cụ nhập liệu"; 1 file là "thi trắc nghiệm". Mỗi file đó nên có 1 màn hình chính. Màn hình đó nói lên là có chức năng gì (có thể chức năng là buttons hay menu gì đó cũng được, hoặc là các links và bấm vào đó thì nó lên cái gì đó..., tạm thời bấm vào đó thì nó raise msgbox lên là "Chưa làm gì" cũng được nhưng ít nhất là để mọi người còn thấy đó là phần mềm chứ ko phải 1 cái file "test" hay "thử". Ai lại mở file ra có mỗi 2 cái sheets trong đó tự nhiên lù lù 1 cái Button ở 1 sheet. Bấm vào nút gì đó thì tự nhiên thấy 1 form mà ko biết form đấy để làm gì cả.

Tuy là file Excel nhưng nó cũng phải hơi mang dáng dấp software tý chút chứ anh :) (Và dữ liệu cũng nên tách ra khỏi chương trình đi chứ)
 

Xem nhiều

Webketoan Zalo OA