信息系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)職工工資管理系統(tǒng)_第1頁
信息系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)職工工資管理系統(tǒng)_第2頁
信息系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)職工工資管理系統(tǒng)_第3頁
信息系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)職工工資管理系統(tǒng)_第4頁
信息系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)職工工資管理系統(tǒng)_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、信息系統(tǒng)數(shù)據(jù)庫技術(shù)i課程設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康耐ㄟ^理論與實(shí)踐教學(xué),使學(xué)生掌握關(guān)系型數(shù)據(jù)庫的基本操作,理解關(guān)系型數(shù)據(jù)庫的有關(guān)概念,具備一定的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的能力,并能綜合運(yùn)用所學(xué)知識(shí),進(jìn)行小型數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)工作。二、實(shí)驗(yàn)環(huán)境cpu:至少pentium400以上,建議使用pentium800以上;內(nèi)存:至少128m以上,建議使用256m以上;硬盤:至少20g硬盤空間;顯示器:14顯示器;其它:鍵盤、鼠標(biāo)、打印機(jī)等。操作系統(tǒng):windows 7旗艦版(32位/directx11)開發(fā)環(huán)境:microsoft office access 2007三、實(shí)驗(yàn)內(nèi)容本職工工資管理子系統(tǒng)要完成對(duì)職員基本資料的管

2、理,包括對(duì)職員、刪除等基本管理操作,完成對(duì)職員的各種“獎(jiǎng)懲”信息的管理,包括“職員獎(jiǎng)勵(lì)管理”和“職員懲罰管理”,并且可以設(shè)置每個(gè)具體的“獎(jiǎng)懲”記錄是否“計(jì)入工資”,用于在“工資計(jì)算及發(fā)放”中使用。在工資管理發(fā)放中,通過它可以計(jì)算出職員的“獎(jiǎng)金合計(jì)”、“罰款合計(jì)”、“應(yīng)發(fā)金額合計(jì)”、“應(yīng)扣金額合計(jì)”、“個(gè)人所得稅”和“實(shí)發(fā)金額”等工資統(tǒng)計(jì)結(jié)果。完成對(duì)職員“工資發(fā)放歷史”資料的查詢,可以按“職員id”、“職員姓名”和“月份”來查詢。完成對(duì)職員“工資發(fā)放歷史”資料的處理。四、數(shù)據(jù)庫設(shè)計(jì)1數(shù)據(jù)模型的設(shè)計(jì)(e-r)模型 一個(gè)部門擁有多個(gè)職工,由人事部對(duì)職員進(jìn)行獎(jiǎng)懲的評(píng)定,由財(cái)務(wù)部給職工發(fā)放工資。獎(jiǎng)勵(lì)懲罰

3、發(fā)放工資人事部職工財(cái)務(wù)部111mmm圖4.1:er圖2基本數(shù)據(jù)表和聯(lián)系的實(shí)現(xiàn) 通過上面的分析,設(shè)計(jì)出“工資管理系統(tǒng)”流程圖,如圖:按月份查詢按姓名查詢按職員id查詢職員資料管理職員獎(jiǎng)勵(lì)管理職員懲罰管理發(fā)放職員工資打印工資條退出系統(tǒng)程序是否發(fā)放工資圖4.2:職工工資管理系統(tǒng)流程圖五、系統(tǒng)實(shí)現(xiàn) 1.數(shù)據(jù)表 本系統(tǒng)中總共有職員資料管理、職員獎(jiǎng)勵(lì)、職員懲罰和工資發(fā)放查詢四張表。表5-1:“職員資料管理”數(shù)據(jù)表字段字段名稱字段類型字段大小允許為空備注部門id文本10否關(guān)鍵字職員id文本10否姓名文本10否性別文本10否職務(wù)文本4是身份證id文本18是輸入掩碼:身份證號(hào)碼備注文本50是表5-2:“職員獎(jiǎng)勵(lì)

4、”數(shù)據(jù)表字段字段名稱字段類型字段大小允許為空備注獎(jiǎng)勵(lì)id自動(dòng)編號(hào)否關(guān)鍵字職員id文本10否部門id文本10否獎(jiǎng)勵(lì)原因文本30否獎(jiǎng)勵(lì)金額數(shù)字單精度型否默認(rèn)值:0獎(jiǎng)勵(lì)日期日期/時(shí)間否默認(rèn)值:=date是否計(jì)入工資是/否否默認(rèn)值:=true備注文本50表5-3:“職員懲罰”數(shù)據(jù)表字段字段名稱字段類型字段大小允許為空備注懲罰id自動(dòng)編號(hào)否關(guān)鍵字職員id文本10否部門id文本10否懲罰原因文本30否懲罰金額數(shù)字單精度型否默認(rèn)值:0懲罰日期日期/時(shí)間否默認(rèn)值:=date是否計(jì)入工資是/否否默認(rèn)值:=true備注文本50表5-4:“工資發(fā)放查詢”數(shù)據(jù)表字段字段名稱字段類型字段大小允許為空備注發(fā)放id自動(dòng)編號(hào)

5、否關(guān)鍵字部門id文本10否職員id文本10否姓名文本10否發(fā)放日期日期/時(shí)間否輸入掩碼:短日期月份數(shù)字整型是默認(rèn)值:0基本工資數(shù)字單精度型是默認(rèn)值:0浮動(dòng)工資數(shù)字單精度型是默認(rèn)值:0房補(bǔ)數(shù)字單精度型是默認(rèn)值:0餐補(bǔ)數(shù)字單精度型是默認(rèn)值:0職務(wù)工資數(shù)字單精度型是默認(rèn)值:0工齡工資數(shù)字單精度型是默認(rèn)值:0獎(jiǎng)金合計(jì)數(shù)字單精度型否默認(rèn)值:0應(yīng)發(fā)金額合計(jì)數(shù)字單精度型是默認(rèn)值:0請(qǐng)假扣款數(shù)字單精度型是默認(rèn)值:0考勤扣款數(shù)字單精度型是默認(rèn)值:0罰款合計(jì)數(shù)字單精度型否默認(rèn)值:0住房公積金數(shù)字單精度型是默認(rèn)值:0醫(yī)療保險(xiǎn)數(shù)字單精度型是默認(rèn)值:0養(yǎng)老保險(xiǎn)數(shù)字單精度型是默認(rèn)值:0失業(yè)保險(xiǎn)數(shù)字單精度型是默認(rèn)值:0生育

6、保險(xiǎn)數(shù)字單精度型是默認(rèn)值:0應(yīng)扣金額合計(jì)數(shù)字單精度型否默認(rèn)值:0工資合計(jì)數(shù)字單精度型否默認(rèn)值:0個(gè)人所得稅數(shù)字單精度型否默認(rèn)值:0實(shí)發(fā)金額數(shù)字單精度型否默認(rèn)值:0是否發(fā)放是/否否默認(rèn)值:=ture備注文本50是 2.“實(shí)際工資發(fā)放查詢”查詢表代碼select 工資發(fā)放查詢.職員id, 工資發(fā)放查詢.姓名, 工資發(fā)放查詢.月份, 工資發(fā)放查詢.獎(jiǎng)金合計(jì), 工資發(fā)放查詢.罰款合計(jì), 工資發(fā)放查詢.應(yīng)發(fā)金額合計(jì), 工資發(fā)放查詢.應(yīng)扣金額合計(jì), 工資發(fā)放查詢.工資合計(jì), 工資發(fā)放查詢.個(gè)人所得稅, 工資發(fā)放查詢.實(shí)發(fā)金額, 工資發(fā)放查詢.是否發(fā)放, 工資發(fā)放查詢.備注from 工資發(fā)放查詢where

7、(工資發(fā)放查詢.職員id)=forms!工資發(fā)放查!職員id) and (工資發(fā)放查詢.姓名)=forms!工資發(fā)放查詢!姓名) and (工資發(fā)放查詢.月份)=forms!工資發(fā)放查詢!月份) or (forms!工資發(fā)放查!職員id is null) and (forms!工資發(fā)放查詢!姓名 is null) and (forms!工資發(fā)放查詢!月份 is null) or (工資發(fā)放查詢.職員id)=forms!工資發(fā)放查!職員id) or (工資發(fā)放查詢.姓名)=forms!工資發(fā)放查詢!姓名) or (工資發(fā)放查詢.月份)=forms!工資發(fā)放查詢!月份) or (instr(工資發(fā)

8、放查詢.職員id,forms!工資發(fā)放查!職員id)>0) or (instr(工資發(fā)放查詢.姓名,forms!工資發(fā)放查詢!姓名)>0)order by 工資發(fā)放查詢.職員id; 3.數(shù)據(jù)表關(guān)系設(shè)計(jì)圖5-1:數(shù)據(jù)表關(guān)系圖 4.窗體設(shè)計(jì) (1)職員資料管理窗體圖5-2:職員資料管理窗體圖 (2)職員獎(jiǎng)勵(lì)管理窗體圖5-3:職員獎(jiǎng)勵(lì)管理窗體圖 (3)職員懲罰管理窗體圖5-4:職員懲罰管理窗體圖 (4)工資發(fā)放管理窗體圖5-5:工資發(fā)放管理窗體圖(5)工資發(fā)放查詢窗體圖5-6:工資發(fā)放查詢窗體圖 (6)工資發(fā)放報(bào)表圖5-7:工資發(fā)放報(bào)表圖六、程序運(yùn)行、調(diào)試和結(jié)果分析1程序運(yùn)行中出現(xiàn)的問題

9、及調(diào)試手段在運(yùn)行中主要出現(xiàn)兩大錯(cuò)誤一是拼寫錯(cuò)誤,比如:將adodb.recordcount拼寫成adodb.recordset;二是未引用microsoft activex data objects 2.1 library。第一類錯(cuò)誤通過系統(tǒng)檢查更正,第二類錯(cuò)誤由于設(shè)計(jì)程序使用的是microsoft office access 2007,系統(tǒng)沒有默認(rèn)引用microsoft activex data objects 2.1 library,在查閱相關(guān)書籍后,引用microsoft activex data objects 2.1 library,問題解決。2程序運(yùn)行結(jié)果分析以職員資料管理修改職員

10、為例:在職員id和部門id中輸入a001與a,后系統(tǒng)直接在各信息框和子窗體中顯示相關(guān)信息。圖6-1:運(yùn)行結(jié)果分析1 在職務(wù)一欄輸入“客戶總監(jiān)”,在備注中輸入“無”,單擊修改職員??梢娙鐖D:圖6-2:運(yùn)行結(jié)果分析2在職員資料管理數(shù)據(jù)表中可見如圖:圖6-3:運(yùn)行結(jié)果分析3 可見,程序運(yùn)行無誤。七、實(shí)驗(yàn)總結(jié)系統(tǒng)的開發(fā)工作到目前已告一段落了,已基本達(dá)到了既定的系統(tǒng)開發(fā)目標(biāo)和實(shí)現(xiàn)了設(shè)計(jì)功能。但由于開發(fā)時(shí)間較短加上本身技術(shù)水平的局限,本系統(tǒng)還有許多需要完善和擴(kuò)展的部分。具體表現(xiàn)在如下幾個(gè)方面:(1)劃分系統(tǒng)登錄用戶的具體權(quán)限在該系統(tǒng)中,并沒有設(shè)置系統(tǒng)登錄用戶的權(quán)限??梢詾槊總€(gè)用戶設(shè)定具體可操作的功能權(quán)限。

11、(2)美化窗體該系統(tǒng)的各個(gè)窗體界面設(shè)計(jì)不是很美觀,可以把窗體的界面設(shè)計(jì)得更加美觀、人性化。(3)擴(kuò)展系統(tǒng)的功能該系統(tǒng)借助其內(nèi)置的vba 編程, 可以滿足更高級(jí)用戶的管理需求, 進(jìn)行更加復(fù)雜的操作。附:部分核心代碼(1)職員資料管理新建職員代碼設(shè)計(jì)如下:private sub 新建職員_click()on error goto err_新建職員_click '把窗體中所有控件都置空 me!職員id = null me!部門id = null me!姓名 = null me!性別 = null me!職務(wù) = null me!身份證id = null me!備注 = nullexit_新建

12、職員_click: exit suberr_新建職員_click: msgbox err.description resume exit_新建職員_clickend sub(2)職員資料管理修改職員代碼設(shè)計(jì)如下:private sub 修改職員_click()on error goto err_修改職員_click'定義用于循環(huán)的整形變量dim i as integer'定義字符型變量dim stemp as string'定義數(shù)據(jù)集變量dim rs as adodb.recordset'為定義的數(shù)據(jù)集變量分配空間set rs = new adodb.recor

13、dset'為打開數(shù)據(jù)表“查詢語句”字符變量賦值stemp = "select * from 職員資料管理"'打開“職員資料管理”數(shù)據(jù)表rs.open stemp, currentproject.connection, adopenkeyset, adlockoptimistic '判斷“職員id”等文本框是否為空 if isnull(me!職員id) = true then '彈出提示“職員id”文本框不可以為空信息 msgbox "請(qǐng)輸入“職員id”,它不可以為空!", vbokonly, "輸入“職員id”&

14、quot; '把光標(biāo)至于“職員id”文本框內(nèi) me!職員id.setfocus elseif isnull(me!部門id) = true then msgbox "請(qǐng)輸入“部門id”,它不可以為空!", vbokonly, "輸入“部門id”" me!部門id.setfocus elseif isnull(me!姓名) = true then msgbox "請(qǐng)輸入“姓名”,它不可以為空!", vbokonly, "輸入“姓名”" me!姓名.setfocus elseif isnull(me!性別) =

15、 true then msgbox "請(qǐng)輸入“性別”,它不可以為空!", vbokonly, "輸入“性別”" me!性別.setfocus elseif isnull(me!職務(wù)) = true then msgbox "請(qǐng)輸入“職務(wù)”,它不可以為空!", vbokonly, "輸入“職務(wù)”" me!職務(wù).setfocus elseif isnull(me!身份證id) = true then msgbox "請(qǐng)輸入“身份證id”,它不可以為空!", vbokonly, "輸入“身份

16、證id”" me!身份證id.setfocus elseif isnull(me!備注) = true then msgbox "請(qǐng)輸入“備注”,它不可以為空!", vbokonly, "輸入“備注”" me!備注.setfocus else rs.movefirst '把數(shù)據(jù)集指針指向第一記錄 '使用for.next循環(huán)在數(shù)據(jù)集中搜索相同“職員id”的記錄 for i = 1 to rs.recordset if rs("職員id") = me!職員id then '修改“職員資料”數(shù)據(jù)表字段值 r

17、s("部門id") = me!部門id rs("姓名") = me!姓名 rs("性別") = me!性別 rs("職務(wù)") = me!職務(wù) rs("身份證id") = me!身份證id rs("備注") = me!備注 '使用記錄集的update方法來刷新記錄集 rs.update '彈出“修改完成”的提示信息 msgbox "職員檔案記錄已經(jīng)修改完成!", vbokonly, "修改完成" exit sub '

18、;退出子過程 else rs.movenext '把記錄指針移到下一條記錄 end if next i end if '刷新“職員資料管理 子窗體”子窗體 me!職員資料管理 子窗體.requery '釋放系統(tǒng)為rs數(shù)據(jù)集分配的空間 set rs = nothingexit_修改職員_click: exit suberr_修改職員_click: msgbox err.description resume exit_修改職員_clickend sub(3)職員資料管理 子窗體代碼private sub form_current()on error goto err_for

19、m_current '把子窗體中當(dāng)前記錄值賦予主窗體對(duì)應(yīng)的文本框內(nèi) forms!職員資料管理!職員id = me!職員id forms!職員資料管理!部門id = me!部門id forms!職員資料管理!姓名 = me!姓名 forms!職員資料管理!性別 = me!性別 forms!職員資料管理!身份證id = me!身份證id forms!職員資料管理!備注 = me!備注exit_form_current: exit suberr_form_current: msgbox err.description resume exit_form_currentend sub(4)職員獎(jiǎng)

20、勵(lì)管理新建記錄代碼private sub 新建記錄_click()on error goto err_新建記錄_click '把窗體中所有控件都置空 me!獎(jiǎng)勵(lì)id = null me!職員id = null me!部門id = null me!獎(jiǎng)勵(lì)原因 = null me!獎(jiǎng)勵(lì)金額 = null me!獎(jiǎng)勵(lì)日期 = null me!備注 = nullexit_新建記錄_click: exit suberr_新建記錄_click: msgbox err.description resume exit_新建記錄_clickend sub(5)職員獎(jiǎng)勵(lì)管理修改記錄代碼private sub

21、 修改記錄_click()on error goto err_修改記錄_click'定義用于循環(huán)的整形變量dim i as integer'定義字符型變量dim stemp as string'定義數(shù)據(jù)集變量dim rs as adodb.recordset'為定義的數(shù)據(jù)集變量分配空間set rs = new adodb.recordset'為打開數(shù)據(jù)表“查詢語句”字符變量賦值stemp = "select * from 職員獎(jiǎng)勵(lì)"'打開“職員資料管理”數(shù)據(jù)表rs.open stemp, currentproject.conn

22、ection, adopenkeyset, adlockoptimistic '判斷“職員id”等文本框是否為空 if isnull(me!獎(jiǎng)勵(lì)id) = true then '彈出提示“職員id”文本框不可以為空信息 msgbox "請(qǐng)輸入“獎(jiǎng)勵(lì)id”,它不可以為空!", vbokonly, "輸入“獎(jiǎng)勵(lì)id”" '把光標(biāo)至于“職員id”文本框內(nèi) me!獎(jiǎng)勵(lì)id.setfocus elseif isnull(me!職員id) = true then msgbox "請(qǐng)輸入“職員id”,它不可以為空!", vb

23、okonly, "輸入“職員id”" me!職員id.setfocus elseif isnull(me!部門id) = true then msgbox "請(qǐng)輸入“部門id”,它不可以為空!", vbokonly, "輸入“部門id”" me!部門id.setfocus elseif isnull(me!獎(jiǎng)勵(lì)原因) = true then msgbox "請(qǐng)輸入“獎(jiǎng)勵(lì)原因”,它不可以為空!", vbokonly, "輸入“獎(jiǎng)勵(lì)原因”" me!獎(jiǎng)勵(lì)原因.setfocus elseif isnul

24、l(me!獎(jiǎng)勵(lì)金額) = true then msgbox "請(qǐng)輸入“獎(jiǎng)勵(lì)金額”,它不可以為空!", vbokonly, "輸入“獎(jiǎng)勵(lì)金額”" me!獎(jiǎng)勵(lì)金額.setfocus elseif isnull(me!獎(jiǎng)勵(lì)日期) = true then msgbox "請(qǐng)輸入“獎(jiǎng)勵(lì)日期”,它不可以為空!", vbokonly, "輸入“獎(jiǎng)勵(lì)日期”" me!獎(jiǎng)勵(lì)日期.setfocus elseif isnull(me!備注) = true then msgbox "請(qǐng)輸入“備注”,它不可以為空!", v

25、bokonly, "輸入“備注”" me!備注.setfocus else rs.movefirst '把數(shù)據(jù)集指針指向第一記錄 '使用for.next循環(huán)在數(shù)據(jù)集中搜索相同“職員id”的記錄 for i = 1 to rs.recordset if rs("獎(jiǎng)勵(lì)id") = me!獎(jiǎng)勵(lì)id then '修改“職員資料”數(shù)據(jù)表字段值 rs("職員id") = me!職員id rs("部門id") = me!部門id rs("獎(jiǎng)勵(lì)原因") = me!獎(jiǎng)勵(lì)原因 rs(&quo

26、t;獎(jiǎng)勵(lì)金額") = me!獎(jiǎng)勵(lì)金額 rs("獎(jiǎng)勵(lì)日期") = me!獎(jiǎng)勵(lì)日期 rs("備注") = me!備注 '使用記錄集的update方法來刷新記錄集 rs.update '彈出“修改完成”的提示信息 msgbox "職員獎(jiǎng)勵(lì)檔案記錄已經(jīng)修改完成!", vbokonly, "修改完成" exit sub '退出子過程 else rs.movenext '把記錄指針移到下一條記錄 end if next i end if '釋放系統(tǒng)為rs數(shù)據(jù)集分配的空間 set

27、 rs = nothingexit_修改記錄_click: exit suberr_修改記錄_click: msgbox err.description resume exit_修改記錄_clickend sub(6)職員懲罰管理新建記錄代碼private sub 新建記錄_click()on error goto err_新建記錄_click '把窗體中所有控件都置空 me!懲罰id = null me!職員id = null me!部門id = null me!懲罰原因 = null me!懲罰金額 = null me!懲罰日期 = null me!備注 = null exit_新

28、建記錄_click: exit sub err_新建記錄_click: msgbox err.description resume exit_新建記錄_click end sub(7)職員懲罰管理修改記錄代碼private sub 修改記錄_click()on error goto err_修改記錄_click'定義用于循環(huán)的整形變量dim i as integer'定義字符型變量dim stemp as string'定義數(shù)據(jù)集變量dim rs as adodb.recordset'為定義的數(shù)據(jù)集變量分配空間set rs = new adodb.records

29、et'為打開數(shù)據(jù)表“查詢語句”字符變量賦值stemp = "select * from 職員獎(jiǎng)勵(lì)"'打開“職員資料管理”數(shù)據(jù)表rs.open stemp, currentproject.connection, adopenkeyset, adlockoptimistic '判斷“職員id”等文本框是否為空 if isnull(me!懲罰id) = true then '彈出提示“職員id”文本框不可以為空信息 msgbox "請(qǐng)輸入“懲罰id”,它不可以為空!", vbokonly, "輸入“懲罰id”"

30、; '把光標(biāo)至于“職員id”文本框內(nèi) me!懲罰id.setfocus elseif isnull(me!職員id) = true then msgbox "請(qǐng)輸入“職員id”,它不可以為空!", vbokonly, "輸入“職員id”" me!職員id.setfocus elseif isnull(me!部門id) = true then msgbox "請(qǐng)輸入“部門id”,它不可以為空!", vbokonly, "輸入“部門id”" me!部門id.setfocus elseif isnull(me!懲

31、罰原因) = true then msgbox "請(qǐng)輸入“懲罰原因”,它不可以為空!", vbokonly, "輸入“懲罰原因”" me!懲罰原因.setfocus elseif isnull(me!懲罰金額) = true then msgbox "請(qǐng)輸入“懲罰金額”,它不可以為空!", vbokonly, "輸入“懲罰金額”" me!懲罰金額.setfocus elseif isnull(me!懲罰日期) = true then msgbox "請(qǐng)輸入“懲罰日期”,它不可以為空!", vbo

32、konly, "輸入“懲罰日期”" me!懲罰日期.setfocus elseif isnull(me!備注) = true then msgbox "請(qǐng)輸入“備注”,它不可以為空!", vbokonly, "輸入“備注”" me!備注.setfocus else rs.movefirst '把數(shù)據(jù)集指針指向第一記錄 '使用for.next循環(huán)在數(shù)據(jù)集中搜索相同“職員id”的記錄 for i = 1 to rs.recordset if rs("懲罰id") = me!懲罰id then '

33、修改“職員資料”數(shù)據(jù)表字段值 rs("職員id") = me!職員id rs("部門id") = me!部門id rs("懲罰原因") = me!懲罰原因 rs("懲罰金額") = me!懲罰金額 rs("懲罰日期") = me!懲罰日期 rs("備注") = me!備注 '使用記錄集的update方法來刷新記錄集 rs.update '彈出“修改完成”的提示信息 msgbox "職員懲罰檔案記錄已經(jīng)修改完成!", vbokonly, &q

34、uot;修改完成" exit sub '退出子過程 else rs.movenext '把記錄指針移到下一條記錄 end if next i end if '釋放系統(tǒng)為rs數(shù)據(jù)集分配的空間 set rs = nothingexit_修改記錄_click: exit suberr_修改記錄_click: msgbox err.description resume exit_修改記錄_clickend sub(8)工資發(fā)放管理管理新建記錄代碼設(shè)計(jì)private sub 新建記錄_click()on error goto err_新建記錄_click '把窗

35、體中所有控件都置空 me!職員id = null me!部門id = null me!姓名 = null me!基本工資 = 0 me!浮動(dòng)工資 = 0 me!房補(bǔ) = 0 me!職務(wù)工資 = 0 me!工齡工資 = 0 me!餐補(bǔ) = 0 me!請(qǐng)假扣款 = 0 me!考勤扣款 = 0 me!醫(yī)療保險(xiǎn) = 0 me!養(yǎng)老保險(xiǎn) = 0 me!失業(yè)保險(xiǎn) = 0 me!生育保險(xiǎn) = 0 me!住房公積金 = 0 me!獎(jiǎng)金合計(jì) = 0 me!應(yīng)發(fā)金額合計(jì) = 0 me!工資合計(jì) = 0 me!罰款合計(jì) = 0 me!應(yīng)扣金額合計(jì) = 0 me!個(gè)人所得稅 = 0 me!實(shí)發(fā)金額 = 0 me!是否

36、發(fā)放.value = false me!備注 = nullexit_新建記錄_click: exit suberr_新建記錄_click: msgbox err.description resume exit_新建記錄_clickend sub(9)工資發(fā)放管理計(jì)算工資代買設(shè)計(jì)private sub 計(jì)算工資_click()on error goto err_計(jì)算工資_clickdim ss as single'定義字符型變量dim stemp as string'定義也能夠與循環(huán)的整型變量dim i as integer'定義數(shù)據(jù)集變量dim rs as adodb.

37、recordset'為定義的數(shù)據(jù)集變量分配空間set rs = new adodb.recordset '判斷“職員id”等文本框是否為空 if isnull(me!職員id) = true then '彈出提示“職員id”文本框不可以為空 msgbox "請(qǐng)輸入“職員id”,它不可以為空!", vbokonly, "輸入“職員id”" '把光標(biāo)置于“職員id”文本框內(nèi) me!職員id.setfocus elseif isnull(me!月份) = true then msgbox "請(qǐng)輸入“月份”,它不可以為為

38、空!", vbokonly, "輸入“月份”" me!月份.setfocus else'-計(jì)算“資金合計(jì)” '為打開數(shù)據(jù)表“查詢語句”字符變量賦值 stemp = "select * from 職員獎(jiǎng)勵(lì)" '打開“職員獎(jiǎng)勵(lì)”數(shù)據(jù)表 rs.open stemp, currentproject.connection, adopenkeyset, adlockoptimistic '把記錄集的指針指到第一條 rs.movefirst '使用for.next循環(huán)語句在rs數(shù)據(jù)集中循環(huán)判斷 for i = 1 to

39、 rs.recordcount '判斷記錄集中的“職員id”和“是否計(jì)入工資”字段 if rs("職員id") = me!職員id and rs("是否計(jì)入工資").value = true then if year(rs("獎(jiǎng)勵(lì)日期") = year(now() and month(rs("獎(jiǎng)勵(lì)日期") = me!月份 then me!獎(jiǎng)金合計(jì) = me!獎(jiǎng)金合計(jì) + rs("獎(jiǎng)勵(lì)金額") end if '把記錄集指針移到下一條記錄 rs.movenext else '

40、把記錄集指針移到下一條記錄 rs.movenext end if next i rs.close '關(guān)閉當(dāng)前記錄及'-計(jì)算“罰金合計(jì)” '為打開數(shù)據(jù)表“查詢語句”字符變量賦值 stemp = "select * from 職員懲罰" '打開“職員懲罰”數(shù)據(jù)表 rs.open stemp, currentproject.connection, adopenkeyset, adlockoptimistic '把記錄集的指針指到第一條 rs.movefirst '使用for.next循環(huán)語句在rs數(shù)據(jù)集中循環(huán)判斷 for i = 1

41、 to rs.recordcount '判斷記錄集中的“職員id”和“是否計(jì)入工資”字段 if rs("職員id") = me!職員id and rs("是否計(jì)入工資").value = true then if year(rs("懲罰日期") = year(now() and month(rs("懲罰日期") = me!月份 then me!罰款合計(jì) = me!罰款合計(jì) + rs("罰款金額") end if '把記錄集指針移到下一條記錄 rs.movenext else &#

42、39;把記錄集指針移到下一條記錄 rs.movenext end if next i rs.close '關(guān)閉當(dāng)前記錄集'-計(jì)算“實(shí)發(fā)金額” '計(jì)算“應(yīng)發(fā)金額合計(jì)” me!應(yīng)發(fā)金額合計(jì) = me!獎(jiǎng)金合計(jì) + me!基本工資 + me!浮動(dòng)工資 + me!房補(bǔ) + me!職務(wù)工資 + me!工齡工資 + me!餐補(bǔ) '計(jì)算“應(yīng)扣金額合計(jì)” me!應(yīng)扣金額合計(jì) = me!罰款合計(jì) + me!請(qǐng)假扣款 + me!考勤扣款 + me!醫(yī)療保險(xiǎn) + me!養(yǎng)老保險(xiǎn) + me!失業(yè)保險(xiǎn) + me!生育保險(xiǎn) + me!住房公積金 '計(jì)算“工資合計(jì)” me!工資合計(jì)

43、= me!應(yīng)發(fā)金額合計(jì) - me!應(yīng)扣金額合計(jì) '計(jì)算“個(gè)人所得稅” me!個(gè)人所得稅 = incometax(csng(me!工資合計(jì)) '計(jì)算“實(shí)發(fā)金額” me!實(shí)發(fā)金額 = me!工資合計(jì) - me!個(gè)人所得稅 '彈出提示“計(jì)算完成”信息 msgbox "各項(xiàng)工資合計(jì)已經(jīng)計(jì)算完成!", vbokonly, "計(jì)算完成" end if '釋放系統(tǒng)為rs數(shù)據(jù)集分配的空間 set rs = nothingexit_計(jì)算工資_click: exit suberr_計(jì)算工資_click: msgbox err.descript

44、ion resume exit_計(jì)算工資_clickend sub(10)工資發(fā)放管理職員id失去焦點(diǎn)事件代碼設(shè)計(jì)private sub 職員id_lostfocus()on error goto err_職員id_lostfocus'定義字符型變量dim stemp as string'定義用于循環(huán)的整型變量dim i as integer'定義數(shù)據(jù)集變量dim rs as adodb.recordset'為定義的數(shù)據(jù)集變量分配空間set rs = new adodb.recordset'為打開數(shù)據(jù)表“查詢語句”字符變量賦值stemp = "select * from 職員資料管理"'打開“職員資料”數(shù)據(jù)表rs.open stemp, currentproject.connection, adopenkeyset, adlockoptimistic '把記錄集的指針指到第一條 rs.movefirst '使用for.next循環(huán)語句在rs數(shù)據(jù)集中循環(huán)判斷 fo

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論