优秀的编程知识分享平台

网站首页 > 技术文章 正文

ACCESS案例分析(三) access应用案例

nanyue 2024-12-24 14:50:43 技术文章 4 ℃

案例三、用access制作抽奖小程序

应用场景:

抽奖一般在公司年会上经常碰到,有的单位是人工在抽奖箱里摸奖,有的单位用excel制作,当然我们今天试着用access来实现这一小程序。

解决思路:

抽奖肯定要在一个总体里面进行,所以必须要有一个总体的明细数据,也就是被抽奖的号码清单。首先我们先要建立一个奖券号码表,其中只要一个奖券号码字段就可以了。

券号

A001

A002

A003

然后我们建一个奖项表,这张表用来说明设立哪些奖项:

奖项

特等奖

一等奖

二等奖

三等奖

四等奖

再建一个中奖表,用来记录被抽中的奖券号:

券号 奖项

A001 一等奖

一般抽奖时,被抽中的奖券是不会参与后面奖项的抽奖的,所以我们需要建一个查询表,用来查询还有哪些奖券没有被抽中。


最后,设计一个窗体界面,用来进行抽奖,这个窗体包含一个组合框,用来选择奖项;两个标签,一个用来滚动显示券号,一个用来显示提示信息;一个文本框,用来显示中奖号码。一个按钮控件,点击后执行抽奖程序。


按钮控件的代码如下:

Private Sub command_1_Click()

If IsNull(Combo0) Then

MsgBox "不要太紧张,还没选奖项呢!", vbExclamation, "恭喜发财"

Combo0.SetFocus

Else

End If

If command_1.Caption = "开始" Then

S = 1

command_1.Caption = "停止"

command_1.ForeColor = 255

command_1.FontBold = Bold

Me.TimerInterval = 10


Else

command_1.Caption = "开始"

command_1.ForeColor = 0

Me.TimerInterval = 0


Dim Rs As ADODB.Recordset

Dim Sq1 As String

Set Rs = New ADODB.Recordset

Sq1 = "select * from 中奖表"


Rs.Open Sq1, CurrentProject.Connection, adOpenDynamic, adLockOptimistic

Rs.AddNew

Rs("券号") = Me.Label4.Caption

Rs("奖项") = Combo0

Rs.Update


Set Rs = New ADODB.Recordset

Sq1 = "select * from 中奖表 where 奖项='" & Combo0 & "'"

Rs.Open Sq1, CurrentProject.Connection, adOpenDynamic, adLockOptimistic


Do While Not Rs.EOF

News = News + Rs("券号") + " "

Rs.MoveNext

Loop

Text5 = News

Label7.Caption = "已抽出" & DCount("券号", "中奖表", "奖项='" & Combo0 & "'") & "位幸运者,看看还有谁将要中奖!"

End If

News = ""

End Sub

这个窗体加载的代码如下:

Private Sub Form_Load()

command_1.Caption = "开始"

Label7.Caption = ""

Text5 = ""

End Sub

窗体计时的代码如下:

Private Sub Form_Timer()

On Error Resume Next

Dim I As Integer

Dim Rs As ADODB.Recordset

Dim Sq1 As String

Dim Coun As Integer

Set Rs = New ADODB.Recordset

Sq1 = "Select * from 券池"

Rs.Open Sq1, CurrentProject.Connection, adOpenStatic

Coun = Rs.RecordCount


If S < Coun Then

S = S + 1

Else

S = 0

End If


Rs.Move S, 0

Me.Label4.Caption = Rs("券号")

End Sub

至此,这个小程序就可以正常运行了。

Tags:

最近发表
标签列表