基于Access數(shù)據(jù)庫的抽獎系統(tǒng)設(shè)計_Access數(shù)據(jù)庫教程
推薦:Access數(shù)據(jù)庫安全中常見問題匯總本文匯總了在Access數(shù)據(jù)庫安全問題中最為常見的問題來做出解答。 問:什么是Microsoft Access 工作組,怎樣創(chuàng)建工作組信息文件? 答:Microsoft Access 工作組是在多用戶環(huán)境下共享數(shù)據(jù)的
引言
當今社會,各種各樣的抽獎活動相當普遍,抽獎活動的基本原則和主要特征是隨機性,但對于某一團體內(nèi)部的抽獎活動來說,還有一個相對均衡的問題,所謂相對均衡就是指讓各個部門的中獎概率和其人數(shù)占總?cè)藬?shù)的比重大致相等�;贏CCESS,結(jié)合其內(nèi)置VBA語言,通過程序設(shè)計實現(xiàn)抽獎的隨機,通過算法研究實現(xiàn)抽獎的相對均衡。本文主要介紹了系統(tǒng)原理以及主要程序的設(shè)計。
系統(tǒng)組成及原理
抽獎系統(tǒng)主要由來賓登記、獎票管理、幸運抽獎、獲獎查詢四個基本模塊構(gòu)成,登記模塊登記參加抽獎人員,獎票管理模塊初始化參加抽獎人員名單,抽獎模塊實現(xiàn)抽獎功能,獲獎查詢模塊查詢獲獎結(jié)果。其中,抽獎模塊中可以實現(xiàn)獎勵等級、總抽獎數(shù)、每一次抽獎數(shù)的控制。系統(tǒng)架構(gòu)框圖如圖1。

圖1 系統(tǒng)架構(gòu)
系統(tǒng)初始化
來賓登記模塊中已經(jīng)收錄了參加抽獎的人員名單以及所屬部門,在獎票管理模塊中,當點擊初始化按鈕時通過內(nèi)部程序設(shè)計首先把上次的抽獎結(jié)果清空,同時利用Rnd在參加抽獎的人員名單前隨機生成一系列的序號,為幸運抽獎模塊中的隨機抽獎做準備[1]。主要初始化程序代碼如下:
| 以下為引用的內(nèi)容: 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 |
抽獎功能的實現(xiàn)
通過抽獎模塊實現(xiàn)最終抽獎功能。
通過獎勵等級組合框控制抽獎等級,通過抽獎數(shù)量組合框控制每批次抽獎數(shù)量,通過總抽獎數(shù)組合框控制總抽獎數(shù)。當獎勵等級分別為一、二、三等獎時,抽獎數(shù)量和總抽獎數(shù)默認值分別為5、10、10和10、30、50。各組合框的具體數(shù)值也可以通過上下箭頭控制。抽獎界面如圖2。

圖 2 抽 獎 界 面
其程序設(shè)計比較簡單,主要程序如下:
| 以下為引用的內(nèi)容: …… If Me!獎勵等級.Value = 1 Then Me!總數(shù)量.Value = 10 End If If Me!獎勵等級.Value = 2 Then Me!總數(shù)量.Value = 30 End If If Me!獎勵等級.Value = 3 Then Me!總數(shù)量.Value = 50 End If Forms!抽獎.Q_抽獎統(tǒng)計.Requery If Me!獎勵等級.Value = 1 Then Me!抽獎數(shù)量.Value = 5 End If If Me!獎勵等級.Value = 2 Or Me!獎勵等級.Value = 3 Then Me!抽獎數(shù)量.Value = 10 End If …… |
通過點擊開始按鈕開始抽獎,同時按鈕標題變?yōu)橥V�,再次點擊停止此批次抽獎,同時按鈕標題變?yōu)殚_始,繼續(xù)點擊開始下一批次抽獎,如此反復,直至完成總抽獎數(shù),此時提示“抽獎總數(shù)已到”,如果未完成總抽獎數(shù)就開始另外一輪抽獎,則提示“抽獎限制”。
內(nèi)部抽獎主要解決隨機性和相對均衡兩個問題。系統(tǒng)初始化在參加抽獎人員名單前隨機生成了序號,通過查詢“號碼重排序”將參加抽獎人員名單按照序號升序排列,抽獎時按照序號順序抽獎,實現(xiàn)了隨機的要求。相對均衡要求大致按照各個部門人數(shù)占總?cè)藬?shù)的百分比來分配中獎人數(shù),本系統(tǒng)采用各個部門占總?cè)藬?shù)的百分比乘以抽獎總數(shù)的方法來大致確定各個部門的中獎人數(shù),有小數(shù)的數(shù)字通過程序設(shè)計進行四舍五入處理。需要注意的是,若使所有的部門中獎人數(shù)都要用四舍五入的方法進行處理則可能出現(xiàn)錯誤,為了避免這種情況需要選定一個部門,使其中獎人數(shù)等于總抽獎數(shù)減去其他各個部門中獎人數(shù)之和[2]。抽獎模塊的主要程序代碼如下:
| 以下為引用的內(nèi)容: …… If Me!電科.Value < (Int(((unit1.姓名之Count / cnt1) * Me!總數(shù)量.Value 0.5))) And N < Me!抽獎數(shù)量.Value And cnt < Me!總數(shù)量.Value Then |
結(jié)論
本系統(tǒng)利用ACCESS數(shù)據(jù)庫,結(jié)合其內(nèi)置VBA語言,探討了系統(tǒng)初始化、抽獎的隨機性和相對均衡性等關(guān)鍵問題,滿足了抽獎的要求。進行適當調(diào)整,該系統(tǒng)可以應用于多種抽獎場合。
分享:Access數(shù)據(jù)庫開發(fā)技巧(一) 在當前數(shù)據(jù)庫領(lǐng)域,已有越來越多的人開始采用Access。它是一個功能強大的數(shù)據(jù)庫管理系統(tǒng)和MIS系統(tǒng)開發(fā)工具,具有界面友好、易學易用、開發(fā)簡單、接口靈活等特點。現(xiàn)將本人在使用Access時體
- Access數(shù)據(jù)庫安全策略之ASP式
- 第N次被ACCESS的關(guān)鍵字涮
- Access中用Jet SQL語句刪除表關(guān)系
- Access報表打印如何自動分頁
- Access完成累計余額的計算
- 搭建Access為主的Mdb數(shù)據(jù)庫
- 一句sql更新兩個表并可更新對應的字段值具體實現(xiàn)
- MySQL查詢優(yōu)化:連接查詢排序limit(join、order by、limit語句)介紹
- 內(nèi)網(wǎng)ssh/mysql登錄緩慢的解決方法
- 使用準則進行條件查詢--1.4.從窗體中選擇查詢的條件
- 中文Access2000速成教程--1.1 使用“向?qū)А痹O(shè)計數(shù)據(jù)庫
- 中文Access2000速成教程--1.3 在“設(shè)計”視圖中設(shè)計表
- 相關(guān)鏈接:
- 教程說明:
Access數(shù)據(jù)庫教程-基于Access數(shù)據(jù)庫的抽獎系統(tǒng)設(shè)計
。