第2章 學(xué)生基本信息管理系統(tǒng)的開發(fā)_第1頁
第2章 學(xué)生基本信息管理系統(tǒng)的開發(fā)_第2頁
第2章 學(xué)生基本信息管理系統(tǒng)的開發(fā)_第3頁
第2章 學(xué)生基本信息管理系統(tǒng)的開發(fā)_第4頁
第2章 學(xué)生基本信息管理系統(tǒng)的開發(fā)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第2章 學(xué)生基本信息管理系統(tǒng)的開發(fā)(C級)2.1項目概述2.1.1項目主要功能登陸是否合法不合法權(quán)限判斷相應(yīng)功能操作次數(shù)限制 項目主要功能包含:(1)學(xué)生信息管理模塊:該模塊具體功能是學(xué)生基本基本信息的添加、信息修改、刪除和查詢,排序統(tǒng)計;(2)權(quán)限管理模塊:該模塊主要負責(zé)管理用戶的信息,區(qū)分不同級別的用戶,可提高系統(tǒng)安全性;(3)統(tǒng)計及報表;(4)數(shù)據(jù)管理四個部分。其操作流程如下所示:2.1.2程序文件結(jié)構(gòu)圖2-1程序文件結(jié)構(gòu)2.2全局變量和數(shù)據(jù)庫設(shè)計2.2.1定義全局變量全局變量的定義:Public Flag As IntegerPublic username As String這兩個變量

2、用來存放登陸用戶名和相應(yīng)等級,定義在標準模塊Module1.BAS中。公有函數(shù)(可執(zhí)行SQL語句,返回記錄集)的定義:Public Function exesql(ByVal sql As String) As ADODB.Recordsetsql = Trim$(sql)Set conn = New ADODB.ConnectionSet rst = New ADODB.Recordsetconn.ConnectionString = dsn=studentODBC數(shù)據(jù)源名conn.OpenSet rst.ActiveConnection = connrst.LockType = adLoc

3、kOptimisticrst.CursorType = adOpenKeysetrst.Open sqlSet exesql = rstSet rst = NothingSet conn = NothingEnd Function公有函數(shù)亦定義在標準模塊Module1.BAS中。2.2.2數(shù)據(jù)庫的設(shè)計物理數(shù)據(jù)庫名:studentODBC數(shù)據(jù)源名:student字段名主鍵數(shù)據(jù)類型長度必填默認值CHECK約束說明Snochar8學(xué)號Snamechar5姓名Ssexchar2性別Sbirthdaydatetime81/1/1949,1/1/2010出生日期Sdeptchar20信科系系科Sgrade

4、int41,4年級2.2.1S表(學(xué)生基本信息表)字段名主鍵數(shù)據(jù)類型長度必填默認值CHECK約束說明usernamechar8用戶名passwordchar5密碼jibieint21等級2.2.2yonghu表(學(xué)生基本信息表)2.3效果和關(guān)鍵實現(xiàn)2.3.1登陸模塊 (窗體名:login)圖2-2登陸界面(窗體名:login)關(guān)鍵技術(shù):1、操作數(shù)據(jù)庫的專用函數(shù)exesql也應(yīng)添加到標準模塊Module1.BAS中并在VB在VB工程-引用中添加Microsoft ActiveX Data Objects 2.5 Library。2、登陸錯誤次數(shù)限制3次不允許用戶無止盡嘗試密碼,一旦錯誤超過三次程

5、序自動結(jié)束,在窗體通用部分首先定義窗體級變量TIM,,核心程序如下:驗證操作員及密碼 Dim sql As Stringsql = select * from yonghu where username= + Combo1.Text + and password= + Text2.Text + Set rs = exesql(sql) If rs.RecordCount 0 Then Load main main.Show username = Combo1 Unload Me ElseIf TIM = 3 Then 密碼輸錯3次,退出系統(tǒng) myval = MsgBox(密碼輸入錯誤,請向系統(tǒng)

6、管理員查詢!, 0, ) If myval = vbOK Then End Else MsgBox 輸入錯誤,你還有 & 3 - TIM & 次機會 TIM = TIM + 1 End If3、支持鍵盤操作,例TEXT2文本框中支持方向鍵代碼如下:Private Sub text2_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then CmdOk.SetFocus 按回車鍵CmdOk獲得焦點 If KeyCode = vbKeyUp Then Combo1.SetFocus If KeyCode

7、= vbKeyDown Then CmdOk.SetFocus End Sub4、密碼框中輸入任何字符以制定字符顯示(例“*”),應(yīng)設(shè)置其passwordchar屬性的值即可。2.3.2學(xué)生信息管理模塊(窗體名:main)圖2-3學(xué)生信息管理界面(窗體名:main)關(guān)鍵技術(shù):1、采用adodc和datagrid顯示數(shù)據(jù)。操作步驟:(1)選中工程-部件(2)Adodc控件完成與各類數(shù)據(jù)庫的連接(連接ODBC數(shù)據(jù)源student),可執(zhí)行sql命令(select * from s)。(3)datagrid控件完成數(shù)據(jù)的顯示(指定其DataSource為Adodc控件)。2、記錄移動技術(shù)首條:Ado

8、dc1.Recordset.MoveFirst未條:Adodc1.Recordset.MoveLast上一條(注意應(yīng)判斷是否已移到最前,如果不判斷移到第1條記錄后再往前移動,程序就出錯),關(guān)鍵代碼如下:If Not Adodc1.Recordset.BOF ThenAdodc1.Recordset.MovePreviousEnd If下一條(注意應(yīng)判斷是否已移到最后,如果不判斷移到第后條記錄后再往后移動,程序就出錯),關(guān)鍵代碼如下:If Not Adodc1.Recordset.EOF ThenAdodc1.Recordset.MoveNextEnd If3、數(shù)據(jù)刪除技術(shù)(應(yīng)判斷是否存在記錄,

9、否則不存在記錄作刪除操作程序報錯)關(guān)鍵代碼如下:If Adodc1.Recordset.RecordCount 0 Then Dim sss sss = Trim(Adodc1.Recordset.Fields(sno) If MsgBox(真的要刪除 + sss + 嗎?, vbYesNo, 系統(tǒng)友情提示) = vbYes Then Adodc1.Recordset.Delete End IfEnd If4、查詢技術(shù):在這里強調(diào)標準SQL語句的語法問題,對于字符數(shù)據(jù)匹配,要加單引號,而對于數(shù)值型字段不需要加,例如SNO(char)與text1是否匹配的sql語句為:”select * fro

10、m s where sno=” &text1&”,例如Sgrade(int)與text1是否匹配的sql語句為”select * from s where Sgrade=” &text15、聚集函數(shù)的使用(可以給聚集函數(shù)起別名),使用方法如下:Dim t sqlt As Stringsqlt = select count(*) as 總?cè)藬?shù) from s where & Combo1.Text & Combo2.Text & & Text1 & Set rs = exesql(sqlt) 調(diào)用執(zhí)行SQL函數(shù),已經(jīng)在模塊中添加Text2.Text = rs(總?cè)藬?shù))5、增加修改技術(shù)(共用界面up

11、date)增加全局變量Public Flag As Integer,F(xiàn)lag = 0 增加記錄,F(xiàn)lag = 1 修改記錄If Flag = 1 ThenCall edit調(diào)用編輯過程ElseCall add調(diào)用增加過程End If增加記錄時,程序中應(yīng)考慮主鍵,空值,check等約束,因此程序中必須增加容錯判斷,代碼如下:Sub add() 注意也可以直接使用insert語句Dim sql As Stringsql = select * from s where sno= & Text1.Text & Set rs = exesql(sql)If Text1.Text = Or Text2.T

12、ext = ThenMsgBox 學(xué)號姓名不能空Exit SubEnd IfIf DTPicker1.Value #1/1/2010# Or DTPicker1.Value #1/1/2010# Or DTPicker1.Value #1/1/1949# ThenMsgBox 出生日期不合法(1949-1-12010-1-1)!Exit SubEnd If rs(Sname) = Text2 If Option1.Value = True Then rs(Ssex) = 男 Else rs(Ssex) = 女 End If rs(Sbirthday) = DTPicker1.Value rs(

13、Sdept) = Text3 rs(Sgrade) = CInt(Combo1.Text) rs.UPDATE MsgBox 增加更新成功End Sub6,權(quán)限限制技術(shù):Private Sub Form_Activate()權(quán)限判斷1級權(quán)限所有權(quán)限等級2:擁有數(shù)據(jù)查詢,增加權(quán)限等級3:擁有數(shù)據(jù)查詢Dim sql As Stringsql = select * from yonghu where username= & username & Set rs = exesql(sql)If rs(jibie) = 2 ThenCommand3.Enabled = FalseCommand4.Enab

14、led = FalseElseIf rs(jibie) = 3 ThenCommand3.Enabled = FalseCommand4.Enabled = FalseCommand5.Enabled = FalseEnd IfEnd Sub7,報表打印技術(shù)(在報表中添加相應(yīng)控件):Private Sub DataReport_Initialize()Set rs1 = exesql(sqltext)Set DataReport1.DataSource = rs1 設(shè)置 DataReport 的數(shù)據(jù)源DataReport1.Sections(Section1).Controls(text1).

15、DataField = sno字段名DataReport1.Sections(Section1).Controls(text2).DataField = snameDataReport1.Sections(Section1).Controls(text3).DataField = ssexDataReport1.Sections(Section1).Controls(text4).DataField = sbirthdayDataReport1.RefreshEnd Sub2.3.3增加、修改學(xué)生信息模塊(窗體名: update)圖2-4增加學(xué)生信息界面(窗體名:update)圖2-5修改學(xué)生信息界面窗體名:update2.3.4查詢打印報表模塊(窗體名: datareport1)圖2-6查詢打印報表界面(datareport1)2.3.5權(quán)限管理模塊(窗體名: datareport1)圖2-7權(quán)限管理界面(窗體名:quan

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論