李邐
摘要: Excel是微軟公司開發(fā)的電子表格軟件,具有強(qiáng)大的制表、繪圖和分析功能,并可以通過VBA來實(shí)現(xiàn)數(shù)據(jù)的程序化管理,在管理信息系統(tǒng)(MIS)的構(gòu)建過程中應(yīng)用越來越多,該文以住房公積金管理信息系統(tǒng)為例說明Excel構(gòu)建MIS的過程。
關(guān)鍵詞:Excel;MIS;公積金管理信息系統(tǒng)
中圖分類號(hào):TP316 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)13-0007-02
管理信息系統(tǒng)(Management Information Systems簡稱MIS),是一個(gè)不斷發(fā)展的新型學(xué)科,目前普遍認(rèn)為管理信息系統(tǒng)MIS是由人和計(jì)算機(jī)設(shè)備或其他信息處理手段、組成并用于管理信息的系統(tǒng)。一個(gè)完整的MIS系統(tǒng)主要由三部分組成:信息輸入、信息處理和信息輸出。在使用Excel開發(fā)管理信息系統(tǒng)中,主要的模塊不僅包括信息輸入、信息處理、信息輸出三個(gè)部分,此外還可以包括系統(tǒng)安全設(shè)置, 錯(cuò)誤檢測(cè)設(shè)置等內(nèi)容。
Excel是辦公軟件Office中主要進(jìn)行電子表格處理的軟件,表格的功能強(qiáng)大,既可以通過表格顯示、分析用戶數(shù)據(jù),也可以通過VBA功能管理數(shù)據(jù),用戶可以根據(jù)需求在Excel 中定制自己的表格,并輸出打印。由此可見,Excel不僅可以簡化程序設(shè)計(jì)過程,而且可以滿足了不同用戶的要求。本文主要設(shè)計(jì)一個(gè)公積金管理信息系統(tǒng),由于公積金屬于員工個(gè)人繳納,職務(wù)不同繳納比例不同,在設(shè)計(jì)應(yīng)用系統(tǒng)時(shí),要考慮到不同的用戶的需求,保證系統(tǒng)功能可以適用于每一個(gè)用戶。
1 界面設(shè)計(jì)和功能分析
本系統(tǒng)主要包括對(duì)員工個(gè)人繳納的公積金按比例進(jìn)行計(jì)算,員工信息管理,打印個(gè)人憑證等功能。設(shè)計(jì)的模塊包括公積金繳納、公積金調(diào)整、記賬憑證、用戶管理(修改密碼、更改用戶)等。其中,Excel中四個(gè)主要工作表及按鈕功能設(shè)定如下:
(1)主表單(如圖1所示)
主表單中主要包括六個(gè)按鈕:修改密碼、更改用戶、退出、打印記賬憑證、公積金調(diào)整、公積金繳納。由于該系統(tǒng)為個(gè)人公積金管理信息系統(tǒng),涉及財(cái)務(wù)信息,為了保證工作簿有充分的安全性,啟動(dòng)時(shí)可以設(shè)計(jì)進(jìn)入口令。
個(gè)人公積金調(diào)整:切換到公積金調(diào)整工作表。
個(gè)人公積金繳納:切換到公積金繳納工作表。
打印記賬憑證:切換到記賬憑證工作表。
修改密碼:對(duì)已經(jīng)存在的用戶的密碼進(jìn)行重新設(shè)置。
更改用戶:可以重新定義已經(jīng)存在用戶。
退出:關(guān)閉工作簿,退出系統(tǒng)。
(2)公積金調(diào)整表(如圖2所示)
該工作表包括員工個(gè)人信息、工資信息及應(yīng)繳公積金金額,并設(shè)置三個(gè)按鈕,分別完成如下功能:添加新員工(為公司新進(jìn)員工建立檔案以及收取公積金)、刪除員工(刪除離職員工并注銷他的公積金交納檔案)、查找員工(查找到符合條件的員工的基本公積金交納資料)。
(3)個(gè)人公積金繳納(如圖3所示)
該工作表記錄從2014年1月至目前員工公積繳納情況,設(shè)置三個(gè)按鈕,分別完成如下功能:查找員工(查找符合條件的員工,并自動(dòng)計(jì)算出他的繳納總額和目前需要繳納的月公積金)、統(tǒng)計(jì)總額(計(jì)算出目前所有的公積金總額)、刪除員工(主要實(shí)現(xiàn)在個(gè)人公積金調(diào)整表和個(gè)人公積金繳納表中的同時(shí)刪除,當(dāng)一個(gè)表文件中刪除某個(gè)員工信息,另一個(gè)表自動(dòng)刪除相應(yīng)員工信息)。
(4)記賬憑證(如圖4所示)
該工作表主要完成個(gè)人記賬憑證的打印操作,包括一個(gè)打印憑證按鈕。
2 代碼
由于篇幅有限,本文中只給出主表單中相關(guān)控件及登錄口令部分的代碼。
(1)登錄口令代碼
Option Explicit
Dim NameStr As String
Dim TempCount As Integer
Sub auto_open()
Dim TempInt As Integer
Dim CodeStr As String
Dim FoundNameFlag As Boolean
NameStr = InputBox("請(qǐng)輸入您的姓名:", "輸入")
TempInt = 3
FoundNameFlag = False
Do While Not (IsEmpty(Sheets("用戶表").Cells(TempInt, 1).Value))
TempInt = TempInt + 1
Loop
For TempCount = 3 To (TempInt - 1)
If (NameStr = Sheets("用戶表").Cells(TempCount, 1)) Then
FoundNameFlag = True
Exit For
End If
Next TempCount
If (FoundNameFlag = False) Then
MsgBox "非系統(tǒng)操作員,請(qǐng)與系統(tǒng)管理員聯(lián)系", vbOKOnly, "錯(cuò)誤登錄"
Workbooks.Close
End If
CodeStr = InputBox("請(qǐng)輸入你的密碼")
If (CodeStr = Sheets("用戶表").Cells(TempCount, 2)) Then
MsgBox "歡迎" & NameStr & "登錄本系統(tǒng)", vbOKOnly, "歡迎"
ActiveWorkbook.Unprotect Password:="vba"
Sheets("主菜單").Select
End If
End Sub
Sub auto_close()
MsgBox "謝謝" & NameStr & "使用本系統(tǒng)"
Sheets("主表單").Select
ActiveWorkbook.Protect Password:="vba", structure:=True, Windows:=True
Workbooks.Close
End Sub
(2)公積金調(diào)整按鈕代碼,切換至公積金調(diào)整工作表
Private Sub CommandButton1_Click()
Sheets("公積金調(diào)整").Select
End Sub
(3)公積金繳納按鈕代碼,切換至公積金繳納工作表
Private Sub CommandButton2_Click()
Sheets("公積金繳納").Select
End Sub
(4)打印記賬憑證按鈕代碼(切換至記賬憑證工作表)
Private Sub CommandButton3_Click()
Sheets("打印記賬憑證").Select
End Sub
(5)修改密碼按鈕代碼
Private Sub CommandButton4_Click()
Dim TempStr As String
TempStr = InputBox("請(qǐng)輸入新的密碼", "密碼更改")
If TempStr = InputBox("請(qǐng)?jiān)佥斎胍淮涡碌拿艽a", "密碼更改") Then
Sheets("用戶表").Cells(TempCount, 2).Value = TempStr
MsgBox "密碼已經(jīng)更改", vbOKOnly, "密碼更改成功"
Else
MsgBox "兩次輸入不一致,請(qǐng)檢查", vbOKOnly, "密碼更改出錯(cuò)"
End If
Sheets("主表單").Select
End Sub
(6)更改用戶按鈕代碼
Private Sub CommandButton5_Click()
Dim TempInt As Integer
Dim CodeStr As String
Dim FoundNameFlag As Boolean
NameStr = InputBox("請(qǐng)輸入您的姓名", "輸入")
TempInt = 3
FoundNameFlag = False
Do While Not (IsEmpty(Sheets("用戶表").Cells(TempInt, 1).Value))
TempInt = TempInt + 1
Loop
For TempCount = 3 To (TempInt - 1)
If (NameStr = Sheets("用戶表").Cells(TempCount, 1)) Then
FoundNameFlag = True
Exit For
End If
Next TempCount
If (FoundNameFlag = False) Then
MsgBox "非系統(tǒng)操作員,請(qǐng)與系統(tǒng)管理員聯(lián)系", vbOKOnly, "錯(cuò)誤登錄"
Workbooks.Close
End If
CodeStr = InputBox("請(qǐng)輸入你的密碼")
If (CodeStr = Sheets("用戶表").Cells(TempCount, 2)) Then
MsgBox "歡迎" & NameStr & "登錄本系統(tǒng)", vbOKOnly, "歡迎"
ActiveWorkbook.Unprotect Password:="vba"
Sheets("主菜單").Select
Else
MsgBox "登錄密碼錯(cuò)誤", vbOKOnly, "登錄錯(cuò)誤"
Workbooks.Close
End If
End Sub
(7)退出按鈕代碼(清除用戶名,并退出)
Private Sub CommandButton6_Click()
NameStr = ""
TempCount = 3
Workbooks.Close
End Sub
3 小結(jié)
本文以公積金管理信息系統(tǒng)的開發(fā)為例,說明Excel在開發(fā)MIS的應(yīng)用, Excel強(qiáng)大的表格功能以及軟件提供的VBA二次開發(fā)平臺(tái),為快速、便捷開發(fā)功能完善的管理信息系統(tǒng)提供有效手段。
參考文獻(xiàn):
[1]孫敬杰.Excel VBA入門與實(shí)例演練[M].中國青年電子出版社,2005.
[2]袁文華,謝晟.如何利用Excel函數(shù)建立住房公積金管理系統(tǒng)[J].中國管理信息化,2010(6).