999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VB+ACCESS的學生學籍管理系統的設計與實現

2017-05-23 22:41:40武懷生李秀明
軟件工程 2017年4期

武懷生+李秀明

摘 要:本文以學生學籍管理系統為研究對象,提出了一種基于VB+ACCESS模式的學生學籍管理系統。該系統解決了傳統手工管理學生檔案效率低、保密性差、數據冗余等問題。系統邏輯結構由前臺應用程序開發和后臺共享數據庫設計兩部分組成。應用程序開發的窗體模塊和標準模塊通過ADODB組件和標準SQL語句來實現連接和訪問數據庫。系統的詳細設計以邏輯結構為框架,闡述了學生學籍信息的添加、查詢和刪除等功能的算法和程序的設計過程。

關鍵詞:Visual Basic;Access;學生學籍管理系統

中圖分類號:TP31 文獻標識碼:A

Abstract:Taking the student status management system as the study object,the paper proposes the system based on the VB+ACCESS model.The system solves the problems of low efficiency,poor security,and data redundancy.The logic structure of the system is composed of both the foreground application development and the background shared database design.The form module and the standard module of application development connect and access to the database through the ADODB components and standard SQL statements.Based on the logical structure,the system detailed design expounds the system design process and the algorithms of student status information adding,searching and deleting.

Keywords:visual basic;access;the student status management system

1 引言(Introduction)

目前,學生學籍管理系統已經是教育機構的重要應用平臺,學籍管理系統的出現將學校教務工作人員從繁雜的手工勞動中解放出來,系統為用戶提供充足的信息和快捷的查詢手段及高效率、強保密性、低冗余、低錯誤率等特點是傳統人工檔案管理模式無法比擬和超越的[1]。基于Visual Basic+Access的學生學籍管理系統是信息管理的子系統,其內容主要包括前臺應用程序的開發和后臺數據庫的設計兩個方面。根據學籍管理系統的結構和功能進行數據庫的設計,數據庫的連接使用開源的第三方數據庫框架ADODB進行數據的存取,可以批量導入和導出相關數據[2,3]。利用面向對象及模塊獨立的Visual Basic進行程序設計為系統后期擴展與維護提供了技術保障。

2 學生學籍管理系統的設計思想(The design idea of

student status management system)

本系統由Visual Basic語言開發,由五個窗體模塊和一個標準模塊構成,分別承擔不同的功能,由于標準模塊內部存放部分其他窗體模塊所需的公共代碼,并不能獨立運行,所以用帶箭頭虛線表示其他窗體模塊對標準模塊中公共代碼的調用,如圖1所示。

(1)模塊Module1,該模塊用來存放工程所用的公用信息,如程序與數據源的連接信息,系統的全局變量和函數等。

(2)窗體FrmLogin,該窗體作為登錄窗體,通過ADO控件的RecordSource屬性,指定通過窗體上的被綁定的相關控件訪問的記錄的來源,通過相關的SQL命令將輸入的信息與數據表中預設的用戶名與密碼做比較,判斷是否是合法用戶。

(3)窗體FrmMain,該窗體作為主窗體,用以實現與各窗體之間的連接。另外,由于數據庫在使用一段時間后,因數據刪除而造成數據庫中部分空間不可用的情況,這時就需要壓縮數據庫。因此,主窗體也添加了壓縮和清空數據庫的功能。

(4)窗體FrmTSL,該窗體為學籍管理窗體,通過各控件的DataSource屬性和DataFiled屬性,實現與數據源的綁定,并通過ADO控件中Recordset對象的一些屬性和方法,實現學生學籍記錄的查看、添加、保存、刪除、修改等功能。該窗體是整個程序的核心,如圖2所示。

(5)窗體FrmFind,該窗體為數據查詢窗體,通過SQL命令實現數據庫查詢功能,并將查詢結果根據具體需要按照一定的順序通過DataGrid控件顯示出來。

(6)窗體FrmAdmin,該窗體為管理員信息窗體,通過ADO控件中Validate事件的各Action參數實現對數據庫的操作,并通過DataGrid對象將查詢,以及修改管理員信息。

3 軟件設計的流程結構與技術實現(The process

structure and technical implementation of the

software design)

3.1 工程與主窗體

(1)創建窗體模塊

新建工程及窗體,設置窗體屬性。名稱:FrmMain,并設置其他位置和外觀屬性;添加如下菜單:學籍管理(MnuHjgl)、學籍查詢(MnuCs)、操作員管理(MnuYhGl)、二級菜單:操作員管理(MnuYhxxbj);切換操作員(MnuChyh)。數據庫維護(MnuMdbGl)、二級菜單:壓縮數據庫(MnuMdbYs);清空數據庫(MnuMdbClear)、關于(MnuAbout)、退出(MnuExit)。并在代碼中完成菜單對象的事件內容。

(2)壓縮數據庫源代碼。

Sub CompactData():Dim src As String,dst As String:src=App.Path &”\TelDb.mdb":dst=App.Path &”\abbc2.mdb":If Dir(dst) <>““Then Kill dst:Set jro=CreateObject("JRO.JetEngine"):jro.CompactDatabase”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=“&src,_"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=“&dst&”;Jet OLEDB:Engine Type=4":Set jro=Nothing:Kill src:Name dst As src:End Sub

以上代碼由MnuMdbYs_Click()事件發生后調用,作用是先檢測臨時文件“abbc2.mdb”是否存在,如存在則刪除,然后將數據庫文件“TelDb.mdb”壓縮到臨時文件中,接著將原數據庫文件刪除,最后將臨時文件再重命名為原數據庫文件名,以達到壓縮數據庫的目的[1]。

(3)清空數據庫源代碼,其中調用了壓縮數據庫函數CompactData()

Private Sub MnuMdbClear_Click():Dim sSQL As String,db:Set db=CreateObject("ADODB.Connection"):db.Open”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=“&App.Path&”\TelDb.mdb":sSQL="DELETE*FROM telbook":db.Execute sSQL,dbFailOnError:db.Close:Call CompactData:MsgBox”數據庫已清空!",

vbInformation,”提示"Set db=Nothing:End Sub

此段代碼的功能是刪除數據庫文件“TelDb.mdb”中的表“telbook”,以達到清空數據庫的目的。數據庫的建立將在后面闡述。

3.2 數據庫設計

(1)創建建數據庫(TelDb.mdb),設計兩個表MMK、telbook

MMK(管理員表)結構包含2個字段:字段名稱(UserName,PassWord);數據類型(文本,文本)。

Telbook(學生信息表)結構包含13個字段:字段名稱(name,sex,minzhu,date,id,grade,xibie,class,huji,zhengzhi,address,tel,pic);數據類型:date為日期/時間,pic為OLE對象,其他都為文本。

(2)連接數據庫

為了保證程序將強的移植性,數據庫采用字符串的連接方式,同時將相關代碼寫成函數放入標準模塊,保證其他窗體模塊調用方便。函數代碼如下:

Public Function OpenMDb(DataControl As Adodc,TabelName As String):Dim FileName As String:FileName=App.Path&”\teldb.mdb":DataControl.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=“&FileName&”;Jet OLEDB:Database Password=;Persist Security Info=False;":DataControl.RecordSource=TabelName:DataControl.Refresh:End Function

此段代碼用于檢測數據庫文件是否存在,避免程序發生錯誤,并將ADO控件與數據庫文件“teldb.mdb”連接。

3.3 登錄窗體(FrmLogin)

新建窗體(FrmLogin),包含對象為ComboBox控件(Combo1)、TxetBox控件(Text1)、Image控件(Image1,確定)、Image控件(Image2,取消)、ADO控件(Data1)。窗體FrmLogin是用來做登錄界面的窗體,程序將ADO控件與數據庫文件中用于存儲用戶名和密碼的表“MMk”進行連接,使用SQL中的Select命令做遍歷查詢記錄,并將數據庫記錄與控件進行綁定,然后與管理員輸入的用戶名和密碼在進行比對,具體代碼就不一一闡述。

3.4 添加學籍窗體(FrmTSL)

(1)創建窗體模塊(圖2)

①添加窗體,名稱:FrmTSL;②添加一組Label控件,名稱為“lblLabels”,Index從0到12,設置Caption屬性來顯示窗體上的文本提示,如學號,姓名等;③添加一組Label控件,名稱為“LbButton”,Index從0到7,設置Caption屬性用來顯示記錄操作向導,如上一記錄、下一記錄等;④添加一組TextBox對象,名稱為“txtFields”,Index從0到11,不包含1。DataSource屬性設置為adodc1,DataFiled屬性,根據Index從0到11(不包含1),屬性設置為Telbook中的字段值,如name、minzhu等,用于將每個TextBox控件與數據庫中相應的字段綁定;⑤添加一個Image對象,名稱為“Image1”,DataSource屬性設為adodc1,DataFiled屬性設置為“pic”,將此對象與數據庫中的以長二進制數據類型保存的字段“pic”綁定。

(2)記錄的訪問,添加和刪除等源代碼

Private Sub LbButton_Click(Index As Integer):With Data1.Recordset:On Error Resume Next:Select Case Index:Case 0:.MovePrevious:Case1:.MoveNext:Case2:.MoveFirst:Case3:.MoveLast:Case4:.AddNew:Case5:.Delete:.MoveNext:Case 6:Image1.DataChanged=True:adodc1.Recordset.Update:LbMsg="保存完畢!":Exit Sub:Case 7:Unload Me::End Select:If.BOF Then.MoveFirst:If.EOF Then.MoveLast:End With:Label1.Caption="記錄:”&Data1.Recordset.AbsolutePosition:End Sub

中間還用到了Bof和Eof屬性。進行刪除操作后,如果Bof屬性為Ture,則表示記錄指針當前位置位于首記錄之前,此時調用MoveFirst方法將指針移動到首記錄;如果Eof屬性為Ture,則表示記錄指針當前位置位于末記錄之后,此時調用MoveLast方法將指針移動到末記錄。Bof和Eof屬性,避免了刪除操作后程序出錯。

(3)檢驗數據源代碼

Function Test()As Boolean:Dim ErrMsg As String:If Not (IsNumeric(txtFields(4)) And IsNumeric(txtFields(5)) And IsNumeric(txtFields(11)))Then:MsgBox”學號、年級、電話必須為數字!",vbCritical,”出錯提示":Exit Function:End If:If IsDate(txtFields(3))=False Then:MsgBox”出生日期必須符合日期格式(2009-5-1)!", vbCritical,”出錯提示":Exit Function:End If

If txtFields(0)="“Or txtFields(2)="“Or txtFields(6)="“Or txtFields(9)="“Or txtFields(7)="“Or txtFields(8)="“Or txtFields(10)="“Then:MsgBox”相關欄目不能為空!", vbCritical,”出錯提示":Exit Function:End If:Test=True:End Function

此段代碼主要是為了檢驗數據有效性,并彈出相應的提示窗口。單擊“保存”按鈕后此段代碼將被調用,檢查學號、年級、電話是否為數字;出生日期是否符合日期格式;以及相關欄目是否為空。

(4)添加圖片源代碼

Private Sub Command1_Click():Dim oDLG:Set oDLG=CreateObject("MSComDlg.CommonDialog"):With oDLG:.DialogTitle="打開文件":.Filter="所有圖片文件|*.jpg;*.jpeg;*.bmp;*.gif|JPG文件|*.jpg;*.jpeg|BMP文件|*.bmp|GIF文件|*.gif":.FilterIndex=1:.MaxFileSize=1255:.ShowOpen:If.FileName<>""Then:Image1.Picture=LoadPicture(.FileName):End If:End With:Set oDLG=Nothing:End Sub[4]

此段代碼在單擊“瀏覽”按鈕后被調用,通過CreateObject函數引用CommonDialog控件。CommonDialog控件能提供一組標準的操作對話框,在此段代碼中用來運行打開文件的操作。然后通過代碼將圖片傳遞給控件Image1,控件Image1已通過DataSource屬性和DataFiled屬性與數據庫中表”telbook”里的”pic”字段綁定。其中:.Filter="所有圖片文件|*.jpg;*.jpeg;*.bmp;*.gif|JPG文件|*.jpg;*.jpeg|BMP文件|*.bmp|GIF文件|*.gif”這一段代碼用以約束打開文件的格式。

3.5 數據查詢窗體(FrmFind)

(1)創建窗體模塊

(1)添加窗體,名稱:FrmFind;(2)添加對象,DataGrid對象,名稱:DBGrid1”,DataSource:adodc1;Frame對象,名稱:Frame1”在Frame對象內部添加一組CheckBox對象,名稱:Check1”,Index從0到11,Caption設置為具體學生信,如姓名、性別等;兩個ComboBox對象,名稱:Combo1、Combo2,Text:姓名;兩個CommandButton對象,名稱:Command1、Command2,Caption:查詢、退出。

(2)ComboBox控件連接數據庫,獲取List

Private Sub Form_Load():Dim i As Integer:OpenMDb Data1,”telbook":SetTitle:For i=0 To Check1.UBound:Combo1.AddItem Check1(i).Caption:Combo2.AddItem Check1(i).Caption:Next:Combo1.ListIndex=0:Combo2.ListIndex=0:End Sub

此段代碼用于打開數據庫,并通過For循環使兩個ComboBox控件依次獲取添加項Check1(i)的標題,其中UBound為Check1控件數組的上界。

(3)SQL命令

Private Sub Command1_Click():Dim i As Integer,strsql As String:strsql="select”:For i=Check1.LBound To Check1.UBound:If Check1(i).Value=1 Then:strsql=strsql+"“+Check1(i).Tag &”,":End If:Next:If strsql="select”Then:strsql="select *":Else:strsql=Left(strsql, Len(strsql)-1):End If:strsql=strsql+”from telbook where”+Check1.Item(Combo2.ListIndex).Tag:If Option1(0).Value=True Then:strsql=strsql+"='":strsql=strsql+Text1.Text+"'":Else:strsql=strsql+”like*":strsql=strsql+Text1.Text+"*'":End If:strsql=strsql+”order by”+Check1.Item(Combo1.ListIndex).Tag:Data1.RecordSource=strsql:Data1.Refresh:End Sub

此段代碼用于構造SQL語句,通過For循環與IF語句的嵌套,遍歷并挑選被勾選的Check1對象,然后查詢被選中的字段,并將結果顯示出來。最后通過Call命令調用子程序約束DataGrid控件的顯示條件。有關約束DataGrid對象的顯示條件需要通過For循環與If語句的嵌套,遍歷并挑選被勾選的Check1對象,將該控件的標題傳遞給DBGrid1對象,以此約束DBGrid1對象顯示的項。同時獲取該被勾選的Check1控件的字節數,并與數據庫內對應項的字節數相比較,最終DBGrid1控件上該項的長度將取決于兩者之間較大的那一個。

4 結論(Conclusion)

Visual Basic的面向對象程序設計思想和可視化編程環境贏得了廣泛的市場應用,同時也是一個功能強大的數據庫開發平臺,為開發數據庫前臺應用程序提供了專門的控件,ACCESS是由微軟發布的關聯式數據庫管理系統,結合了Microsoft Jet Database Engine和圖形用戶界面兩項特點,兩者的結合較適合編寫中小型的數據庫管理系統[5,6]。通過本系統的開發及相關文獻的研究,證明Visual Basic+Access是中小型管理信息系統開發最優化組合。程序中五個窗體模塊,集成了整個學籍管理系統,因為模塊獨立,對特定模塊的修改不會影響系統中其他模塊的正常工作。標準模塊和數據庫的開發更是體現了“一次編程,處處使用”的面向對象編程思想,為后續的擴展和維護提供了良好的技術支持。

參考文獻(References)

[1] 張玉清.HTML5新特性安全研究綜述[J].計算機研究與發展,2016(10):2163-2172.

[2] 梁合蘭,等.基于協同進化的松弛時序約束多服務流程優化[J].計算機集成制造系統,2015(08):2213-2227.

[3] 苗東菁,等.概率數據庫中近似函數依賴挖掘算法[J].計算機研究與發展,2015(12):2857-2865.

[4] 潘春花,等.基于Android的漢字聽寫比賽系統的設計與實現[J].軟件工程,2016(07):38-39;21.

[5] 段秀娟.智能化考試狀態識別監控方法研究與仿真[J].計算機仿真,2014(01):209-210.

[6] 武懷生.基于VB&ACCESS的考試系統中生成不重復隨機試題的算法及程序設計[J].自動化與儀器儀表,2015(10):132-134.

作者簡介:

武懷生(1977-),男,碩士生,副教授.究領域:軟件工程.

李秀明(1978-),女,博士生,講師.究領域:計算機網路與遠程教育.本文通訊作者.

主站蜘蛛池模板: 亚洲AV无码一区二区三区牲色| 色老头综合网| 国产成人无码AV在线播放动漫| 国产后式a一视频| 国产精品男人的天堂| 黄色在线网| 玩两个丰满老熟女久久网| 成年看免费观看视频拍拍| 中文字幕亚洲综久久2021| 国产另类乱子伦精品免费女| 国产精品第页| 亚洲无码视频图片| 亚洲av色吊丝无码| 国产精品国产三级国产专业不| 3D动漫精品啪啪一区二区下载| 亚洲国模精品一区| 成人午夜天| 国产亚洲精品精品精品| 中文字幕丝袜一区二区| 亚洲无码高清视频在线观看| 自慰网址在线观看| 国产在线91在线电影| 久久青草视频| 国产成人精彩在线视频50| 亚洲Av激情网五月天| 天堂在线www网亚洲| 日韩东京热无码人妻| 免费av一区二区三区在线| 国产成年女人特黄特色大片免费| 看国产一级毛片| 美女无遮挡被啪啪到高潮免费| 亚洲黄色成人| 亚洲日韩高清无码| 黄色网址手机国内免费在线观看 | 亚洲成a人在线观看| 欧美黄网站免费观看| 欧美精品导航| 国产成人综合亚洲欧洲色就色| 欧美日本视频在线观看| 午夜福利视频一区| 国产91丝袜在线观看| 亚洲成年人网| 亚洲天堂视频在线播放| 视频国产精品丝袜第一页| 国产va欧美va在线观看| 国产亚洲精品91| 国产精品微拍| 国产无人区一区二区三区| 国产69精品久久久久孕妇大杂乱 | jizz国产视频| 欧美成人精品一级在线观看| 亚洲中文字幕国产av| 亚欧成人无码AV在线播放| 亚洲日韩Av中文字幕无码| 成人中文字幕在线| 91久久夜色精品| 免费a在线观看播放| 国产SUV精品一区二区6| 女人毛片a级大学毛片免费| 女人毛片a级大学毛片免费 | 国产亚洲欧美在线人成aaaa| 永久免费无码成人网站| 国产伦精品一区二区三区视频优播| 亚洲精品在线影院| 免费网站成人亚洲| 狠狠综合久久| 欧美激情综合| 色成人亚洲| 久久这里只精品热免费99| 亚洲天堂视频网站| 亚洲第一成网站| 国产人成乱码视频免费观看| 亚洲无码91视频| 国产美女在线观看| 国产AV无码专区亚洲A∨毛片| 欧美亚洲国产精品久久蜜芽| 欧美激情视频二区三区| av大片在线无码免费| 久久成人18免费| 在线观看欧美国产| 亚洲综合色在线| 国产精品第三页在线看|