林桂明
(湛江財貿學校,廣東 湛江 524094)
用VB開發(fā)中職學校國家助學金管理軟件
林桂明
(湛江財貿學校,廣東 湛江 524094)
基于實際應用的需求,通過VB6.0開發(fā)平臺,利用ADO對象訪問ACCESS數據庫技術,開發(fā)中職學校國家助學金管理軟件。該軟件具有三大功能模塊:一是導入導出excel表格數據模塊;二是數據維護與查詢模塊;三是統(tǒng)計模塊。該軟件可在Windows操作平臺下獨立運行。軟件界面友好,操作方便,運行可靠穩(wěn)定。
VB6.0;ADO對象;ACCESS數據庫;excel數據;國家助學金
筆者就職于一所國家級重點普通中專學校,學校規(guī)模較大,在校生人數較多,達7200多人。符合國家助學金資助條件的學生比例也較大,06-09年受助學生總人數分別為949、1303、2370、3155,呈上升趨勢。08年以前都是用excel表格來管理受助學生的信息和助學金的發(fā)放,雖然excel表格管理比以往紙質資料管理有了很大的進步,但是由于受助學生人數較多且逐年增加,而且每學期都要發(fā)放幾次助學金,造成助學金發(fā)放的統(tǒng)計和查詢的難度大大增加;另外,學生丟失銀行卡或退學等情況發(fā)生時,都要不斷地修改數據,而相關的excel表格較多時,經常是改了這個忘了改另一個,管理起來很不方便;因此,在實際應用中,excel表格在數據安全、數據查詢、智能分析、數據維護等方面顯得功能不足,許多繁瑣的工作在不斷地重復,造成大量人力、物力的浪費。為了提高國家助學金發(fā)放和管理工作的效率,筆者利用VB平臺和ACCESS數據庫管理系統(tǒng)開發(fā)了一套適合中職學校國家助學金管理的軟件,也作為VB數據庫程序設計教學的完整案例。下面介紹該管理軟件的設計思路、代碼實現及運行界面。
學生國家助學金申請成功后,接著就是助學金的發(fā)放工作了,大概每學期都有兩次助學金發(fā)放,發(fā)放工作過程是:打印學生簽領表,學生簽領后將表交回來,根據學生簽領的情況(有些學生銀行卡丟失了或有的學生請假了等等)修改數據,進行發(fā)放處理,然后導出發(fā)放表excel電子文檔和打印紙質發(fā)放表送給財務室,財務室根據發(fā)放表到銀行發(fā)放助學金,最后等銀行發(fā)放無誤后進行發(fā)放匯總。根據發(fā)放流程,設計出該軟件的功能模塊圖如下。

圖1.國家助學金管理軟件功能模塊
目前,發(fā)開數據庫應用軟件使用的數據庫管理系統(tǒng)有很多,如Oracle、SQL Server、Sybase、Access等等,由于Access適合開發(fā)小型數據庫應用軟件,數據庫功能比較齊全,是Office辦公軟件包的一個組成部份,大多數電腦都安裝有Office軟件,這樣軟件發(fā)布時不用額外安裝其他的數據庫管理軟件,因此該軟件采用Access數據庫既可以滿足數據量的要求,又有運行平臺普及的優(yōu)勢。首先設計該軟件的數據庫“助學金.mdb”,根據該軟件數據需要,數據庫包含4個基本數據表,分別是:年級、班級、匯總表、發(fā)放表,其中匯總表和發(fā)放表根據年級的增加而生成新的表,如增加2009年級,就通過復制“匯總表”和“發(fā)放表”分別生成“2009級匯總表”和“2009級發(fā)放表”,這樣每一年級的匯總表和發(fā)放表數據分開存放,方便管理數據。
VB提供了多種鏈接Access數據庫的方法,該軟件利用面向對象的ADO技術實現對數據庫的訪問。ADO(ActiveX Data Object)是ActiveX數據對象,是Microsoft公司開發(fā)數據庫應用程序面向對象的新接口。
首先在工程中引用“Microsoft ActiveX DataObjects 2.1 Library”。然后在窗體的通用聲明部分分別定義一個
Connection對象和RecordSet對象:
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
接著在窗體的Form_Load()事件中新建一個Connection對象的實例并將它賦給conn數據源,新建一個Recordset對象的實例并使用Recordset對象的Open方法打開數據庫助學
金.mdb的年級表,此時"select * from 班級"查詢結果便是記錄集rs的數據源,要訪問不同的數據表,只需更改查詢字符串"select * from 班級"即可。
Private Sub Form_Load()
Set cnn = New ADODB.Connection Set rs = New ADODB.Recordset cnn.ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
App.Path & "助學金.mdb;Persist Security Info=False"
cnn.CursorLocation = adUseClient
cnn.Open
rs.Open "select * from 班級", cnn, adOpenDynamic, adLockPessimistic
End Sub
由于學生信息數據“匯總表”是每班的班主任整理好并錄入到excel電子文檔發(fā)來的,如果還要將學生信息一個個錄入到軟件中就重復工作,費時費力,所以將excel數據表一次導入到數據庫中的數據表“匯總表“是很好的處理方法。由于要鏈接excel表,必須先在工程中引用excel對象庫(采用Microsoft Excel 11.0 Object Library)。然后編寫connection對象字符串為 "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" & xname & ";extended properties=excel 8.0;persist security info=false",Recordset對象字符串為 "select * from [excel 8.0;database=" & xname & "].[sheet1$]"。最后使用SQL的insert into語句將excel數據一條條地插入數據表中。
另外,要將“匯總表”和“發(fā)放表”保存成excel文件方便以后數據共享和分析,所以要導出數據到excel文件。由于“匯總表”表頭較復雜,所以不直接用VB代碼編寫表頭,而是將“匯總表”的excel表頭保存為模板(excel文件),這樣每次導出匯總表時,先復制表頭模板,然后再一條條記錄地寫到表頭下面,省去不少代碼。而“發(fā)放表”的表頭較簡單,就直接用VB代碼編寫。


為了實現修改數據和刪除數據,必須先選擇記錄,但MSHFlexGrid控件沒有自含的CheckBox復選框選項,為了界面友好操作,在第一列的所有單元中顯示沒有選中的復選框小圖片,當用戶用鼠標單擊該單元時,就在該單元格中顯示“√”,表示選中狀態(tài)來模擬CheckBox復選框,具體代碼實現如下:

該軟件數據查詢部分采用SQL(結構化查詢語言)中的select語句編寫查詢代碼,支持多條件組合查詢,支持模糊查詢,查詢速度快且準。

flexdata '調用過程,在MSFlexGrid控件中顯示rs記錄集數據。
Label2.Caption = "人數:" & rs.RecordCount & "人" Label2.Visible = True
End Sub
根據統(tǒng)計條件查詢出記錄集rs,并將數據顯示在MSHFlexGrid中,最后調用過程Sumdata()將總人數和每次發(fā)放的總金額統(tǒng)計出來顯示在MSHFlexGrid表格下面。由于發(fā)放次數是不確定的,動態(tài)增加的,一般一個學期最多發(fā)放兩次,總共有4個學期,所以一個學生在兩年內大概有8次左右的助學金發(fā)放,做統(tǒng)計時,必須將每一次的發(fā)放總人數和總金額都統(tǒng)計出來,所以用兩個數組b(10)和a(10)根據發(fā)放次數分別存放每次的發(fā)放總人數和總金額。界面和代碼如下:



該軟件很好地利用了原有的excel表格數據,實現了與excel表格數據的雙向便捷交換,同時提供了較強的數據維護、查詢與統(tǒng)計功能;而且可在Windows操作平臺下獨立運行,軟件界面友好,操作方便,運行可靠穩(wěn)定。實踐證明,比用excel處理國家助學金數據方便快捷,數據查詢統(tǒng)計又準又快,大大提高了工作效率。在教學方面,該軟件也為中職學校VB數據庫程序設計教學提供了一個完整案例。
[1]高春艷,李艷,谷偉東.數據庫開發(fā)關鍵技術與實例應用[M].北京:人民郵電出版社,2004:115-122.
[2]陳虹頤,何春.VB6.0中利用ADO對象實現數據庫編程[J].甘肅科技,2007,(4).
[3]艾寧,周歡懷.用Visual Basic 6.0語言開發(fā)氣體溶解度計算軟件[J].浙江化工,2004,(3):24-26.
(責任編校:燕廉奚)
G718.3
A
1673-2219(2010)08-0068-04
2010-03-20
林桂明(1971-),女,廣東湛江遂溪人,湛江財貿學校講師,從事研究方向為計算機教學。