Thứ Hai, 14 tháng 1, 2008

Tạo chương trình "quay số" bằng Access

Tạo chương trình "quay số" bằng Access

Đó hỏi: Trong Access em muốn tạo chương trình "quay số". Nghĩa là khi bấm nút "Bắt đầu", dãy số gồm 5 chữ số chạy hỗn loạn; bấm nút "Kết quả" thì đưa ra dãy số gồm 5 chữ số ngẫu nhiên từ những chữ số "hỗn loạn" đó. Xin quý báo giúp em!

Đây trả lời: Có 2 vấn đề cần giải quyết: • Để tạo hiệu ứng chữ số chạy hỗn loạn, bạn chỉ cần thay đổi liên tục trị của chữ số theo một chu kỳ khoảng 5% giây (hoặc ít hơn tùy bạn). Do vậy, trên form Access, bạn phải sử dụng thuộc tính TimerInterval và thủ tục xử lý tình huống On Timer. • Để tạo trị số ngẫu nhiên của một số nguyên trong khoảng từ M đến N, bạn sử dụng hàm Randomize và công thức: Int((N * Rnd()) + M). Ví dụ, bạn tạo form tương tự như hình 1, gồm 5 text box có tên lần lượt (theo thứ tự từ trái sang phải): txtSo1, txtSo2, txtSo3, txtSo4, txtSo5 (có thuộc tính Locked = Yes, để người sử dụng không thay đổi được trị của số, bảo đảm tính trung thực của kết quả) và 2 nút lệnh có tên cmdBatDau và cmdKetQua. Xong, bạn gõ vào đoạn mã 1. Bạn có thể "chế biến" thêm để khi bấm nút "Kết quả", các số từ từ dừng lại (bằng cách tăng dần trị số của thuộc tính TimerInterval và đạt trị bằng 0 khi muốn số dừng lại ở kết quả cuối cùng).

Đoạn mã 1

Private Sub cmdBatDau_Click() Me.TimerInterval = 50 Randomize ' Khởi động bộ tạo số ngẫu nhiên End Sub Private Sub cmdKetQua_Click() Me.TimerInterval = 0 End Sub Private Sub Form_Timer() ‘ Tạo số ngẫu nhiên từ 0 đến 9 txtSo1 = Int((9 * Rnd()) + 0) txtSo2 = Int((9 * Rnd()) + 0) txtSo3 = Int((9 * Rnd()) + 0) txtSo4 = Int((9 * Rnd()) + 0) txtSo5 = Int((9 * Rnd()) + 0) End Sub

Hình 1: Form cần thiết kế

Không có nhận xét nào: