网站首页 > 技术文章 正文
案例三、用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
至此,这个小程序就可以正常运行了。
猜你喜欢
- 2024-12-24 Excel VBA 用户窗体设置/一步一步代你设计EXCEL用户+密码登录界面
- 2024-12-24 家庭收支理财管理系统 Access数据库系统课程设计制作实例
- 2024-12-24 Qt 2D绘图:图形视图框架的事件处理与传播
- 2024-12-24 MFC界面库BCGControlBar v32.1 - 可视化管理器和主题升级
- 2024-12-24 DJYGUI系列文章九:GDD消息系统 gd信息
- 2024-12-24 Qt设备识别(简单的密钥生成器) qt设备管理系统
- 2024-12-24 Access开发的《财务经济管理系统》
- 2024-12-24 初级开发人员告诉我:OO 设计模式太复杂而且没用
- 2024-12-24 从零开始学Qt(89):UDP单播和广播
- 2024-12-24 Qt入门阶段之事件 qtc间期延长的临床意义
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)