图1 系统架构
系统初始化
来宾登记模块中已经收录了参加抽奖的人员名单以及所属部门,在奖票管理模块中,当点击初始化按钮时通过内部程序设计首先把上次的抽奖结果清空,同时利用Rnd在参加抽奖的人员名单前随机生成一系列的序号,为幸运抽奖模块中的随机抽奖做准备。主要初始化程序代码如下:
DoCmd.SetWarnings False
DoCmd.OpenQuery "删除对奖票号", acNormal, acEdit
DoCmd.OpenQuery "追加对奖票号", acNormal, acEdit
DoCmd.SetWarnings True
Set qrs = CurrentDb.OpenRecordset("对奖票号")
qrs.MoveFirst
i = 1
Do While Not qrs.EOF
qrs.Edit
qrs!序号 = Int((211 - 1) * Rnd)
qrs!对奖号码 = i
qrs.Update
i = i + 1
qrs.MoveNext
Loop
MsgBox ("对奖名单初始化完毕。")
qrs.Close
抽奖功能的实现
通过抽奖模块实现最终抽奖功能。
通过奖励等级组合框控制抽奖等级,通过抽奖数量组合框控制每批次抽奖数量,通过总抽奖数组合框控制总抽奖数。当奖励等级分别为一、
二、三等奖时,抽奖数量和总抽奖数默认值分别
为5、10、10和10、30、50。各组合框的具体数值也可以通过上下箭头控制。抽奖界面如图2。
图 2 抽 奖 界 面
其程序设计比较简单,主要程序如下:
……
If Me!奖励等级.Value = 1 Then
Me!总数量.Value = 10
End If
If Me!奖励等级.Value = 2 Then
Me!总数量.Value = 30
End If
If Me!奖励等级.Value = 3 Then
Me!总数量.Value = 50
End If
Forms!抽奖.Q_抽奖统计.Requery
If Me!奖励等级.Value = 1 Then
Me!抽奖数量.Value = 5
End If
If Me!奖励等级.Value = 2 Or Me!奖励等级.Value = 3 Then
Me!抽奖数量.Value = 10
End If
……
通过点击开始按钮开始抽奖,同时按钮标题变为停止,再次点击停止此批次抽奖,同时按钮标题变为开始,继续点击开始下一批次抽奖,如此
反复,直至完成总抽奖数,此时提示“抽奖总数已到”,如果未完成总抽奖数就开始另外一轮抽奖,则提示“抽奖限制”。
责任编辑:小草