Tạo chương trình trắc nghiệm bằng acess - Pdf 57

Tạo chương trình trắc nghiệm bằng Access
Hỏi: Làm ơn hướng dẫn em cách tạo chương trình trắc nghiệm bằng Access.
Trả lời:
Tôi xin trình bày một ví dụ đơn giản nhưng rất cơ bản để từ đó bạn có thể tự "chíp" theo ý đồ của mình. Ví
dụ: số câu hỏi cho mỗi lần trắc nghiệm là 30 (được chọn ngẫu nhiên từ ngân hàng câu hỏi), chọn 1 trong
4 đáp án.
Giả sử ứng dụng Access có tên là DataTN.MDB. Bạn tạo một table có tên NganHangCauHoi để chứa ngân
hàng các câu hỏi, có cấu trúc như bảng 1. Bảng này chứa số lượng không hạn chế các câu hỏi, mỗi câu hỏi
được đánh số tự động, và có 4 mục tin (TraLoi1, TraLoi2, TraLoi3, TraLoi4) chứa nội dung 4 câu trả lời mà
thí sinh có thể chọn. Mục tin DapAnDung chứa số thứ tự (từ 1 đến 4) của câu trả lời đúng. Mục tin
DaDuocChon dùng để đánh dấu câu hỏi nào đã được chọn trong quá trình lựa chọn ngẫu nhiên 30 câu hỏi
dùng cho bộ đề. Bạn cần phải thiết kế một form để nhập liệu vào bảng này.
Tương tự, bạn cần tạo bảng DeThiVaKetQua như trong bảng 2 để chứa bộ đề 30 câu hỏi. Bảng này có mục
tin DapAnDuocChon cho biết thí sinh đã chọn câu trả lời nào trong 4 câu trả lời được phép. Giả sử: trả lời
đúng được 1 điểm, trả lời sai được 0 điểm. Tạo một query có tên qryDeThiVaKetQua như hình 2 để làm
Record Source cho form trắc nghiệm.
Sau khi thiết kế xong cấu trúc các bảng, việc đầu tiên bạn nên làm là nhập hơn 30 câu hỏi vào ngân hàng
câu hỏi.
Bạn thiết kế biểu mẫu trắc nghiệm như trong hình 1. Khi thiết kế biểu mẫu này, cần lưu ý:
Đặt thuộc tính AllowAdditions của form là No. Thuộc tính Locked của ô SoThuTu và NoiDung là Yes.
Đặt tên cho frame chứa 4 đáp án là grpTraLoi. Đặt tên cho các label liên kết với mỗi option thuộc
grpTraLoi lần lượt là lblTraLoi1, lblTraLoi2, lblTraLoi3, lblTraLoi4 theo thứ tự từ trên xuống.
Đặt tên cho 2 nút lệnh Kết quả và Chọn đề là cmdKetQua và cmdChonDe. Xong, bạn gõ vào đoạn mã 1
(xử lý tình huống).
Đoạn mã 1
Private Sub Form_Current()
‘ Nội dung 4 đáp án liệt kê mỗi lần chuyển sang câu khác
lblTraLoi1.Caption = Me.TraLoi1
lblTraLoi2.Caption = Me.TraLoi2
lblTraLoi3.Caption = Me.TraLoi3
lblTraLoi4.Caption = Me.TraLoi4

rsTamThoi.Close
Set tbDeThi = db.OpenRecordset("DeThiVaKetQua")
' Tạo đề mới
tbNganHang.Index = "SoThuTu"
For I = 1 To nSoLuongCau
Do While True
nSoNgauNhien = Int((nTongSoCauTrongNH * Rnd) + 1) ‘ Chọn số thứ tự ngẫu nhiên
tbNganHang.Seek "=", nSoNgauNhien
If Not tbNganHang.NoMatch Then ' chắc chắn tìm thấy
If Not tbNganHang!DaDuocChon Then ' Câu này chưa chọn
tbDeThi.AddNew
tbDeThi!SoThuTu = I
tbDeThi!NoiDung = tbNganHang!NoiDung
tbDeThi!TraLoi1 = tbNganHang!TraLoi1
tbDeThi!TraLoi2 = tbNganHang!TraLoi2
tbDeThi!TraLoi3 = tbNganHang!TraLoi3
tbDeThi!TraLoi4 = tbNganHang!TraLoi4
tbDeThi!DapAnDung = tbNganHang!DapAnDung
tbDeThi!DapAnDuocChon = 0
tbDeThi.Update
' Đánh dấu đã chọn câu này để đưa vào bộ đề thi rồi
tbNganHang.Edit
tbNganHang!DaDuocChon = True
tbNganHang.Update
Exit Do
End If
End If
Loop
Next
tbDeThi.Close

TraLoi2 Text 50
TraLoi3 Text 50
TraLoi4 Text 50
DapAnDung Number/Byte 1 Từ 1 đến 4
DaDuocChon Yes/No 1
Bảng 2: Cấu trúc bảng DeThiVaKetQua
Field Name Type Size Ghi chú
SoThuTu Number/Byte 1
NoiDung Memo 0
TraLoi1 Text 50
TraLoi2 Text 50
TraLoi3 Text 50
TraLoi4 Text 50
DapAnDung Number/Byte 1 Từ 1 đến 4
DapAnDuocChon Number/Byte 1
Hình 1: Form trắc nghiệm
Hình 2: Query cho form


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status