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

Thảo luận trong 'Ứng dụng Excel' bắt đầu bởi levanduyet, 25 Tháng hai 2006.

7,826 lượt xem

  1. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    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
     

    Các file đính kèm:

    #1
  2. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    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
     

    Các file đính kèm:

    #2
  3. HongViet

    HongViet Thành viên thân thiết

    Bài viết:
    286
    Đã được thích:
    10
    Nơi ở:
    Đà nẵng
    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:
     
    #3
  4. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    Chào HongViet,
    Phiên bản 1.0 mà. Cám ơn bạn đã góp ý.
    Thân,

    Lê Văn Duyệt
     
    #4
  5. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    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:
     
    #5
  6. Bình_OverAC

    Bình_OverAC Over Abnormal / Crazy

    Bài viết:
    845
    Đã được thích:
    7
    Nơi ở:
    Nha Trang
    Bác ơi đề nghị bác cho dử liệu sơ sơ để test chứ kiểu này khó quá.
     
    #6
  7. Tuanktcdcn

    Tuanktcdcn Lão già ham vui

    Bài viết:
    548
    Đã được thích:
    50
    Nơi ở:
    Hà 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ì. Để làm nó cần nguồn thông tin như thế nào,.....
    Tiếp tục anh nhé!
     
    #7
  8. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    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
     
    #8
  9. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    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
     
    #9
  10. hai2hai

    hai2hai VNUNI Makes a difference

    Bài viết:
    2,012
    Đã được thích:
    128
    Nơi ở:
    Hà nội
    Em ko hiểu???

    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ứ)
     
    #10

Chia sẻ trang này