企業(yè)工資管理系統(tǒng)的設(shè)計(jì)_第1頁(yè)
企業(yè)工資管理系統(tǒng)的設(shè)計(jì)_第2頁(yè)
企業(yè)工資管理系統(tǒng)的設(shè)計(jì)_第3頁(yè)
企業(yè)工資管理系統(tǒng)的設(shè)計(jì)_第4頁(yè)
企業(yè)工資管理系統(tǒng)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

#圖3—3系統(tǒng)用戶圖3—4員工考勤信息表AttendanceInfo1、職工基本檔案表t_br,其結(jié)構(gòu)如表3—1所示.保存員工的相關(guān)信息,是管理系統(tǒng)核心數(shù)據(jù),所有其它的信息都是依附與這張表而存在的。以工號(hào)作為主關(guān)鍵字,盡量減少數(shù)據(jù)的冗余,保證數(shù)據(jù)的一致性。表3-1基本檔案表t_br字段類型長(zhǎng)度必填字段工號(hào)文本6是姓名文本10是性別文本10是部門文本10是

薪金數(shù)字10是所學(xué)專業(yè)文本20是職務(wù)文本10否工資類別數(shù)字10是合同開始時(shí)間日期/時(shí)間是合同終止時(shí)間日期/時(shí)間是職工類型文本10是生日日期/時(shí)間否工齡數(shù)字10否年齡數(shù)字3是文化程度文本10否民族文本10否政治面貌文本10否身份證號(hào)文本18是籍貫文本200是聯(lián)系電話數(shù)字15否手機(jī)數(shù)字15是家庭住址文本200是健康狀況文本10是照片OLE對(duì)象否2、員工考勤信息表,其結(jié)構(gòu)如表3—2所示。保存員工考勤信息的相關(guān)信息。此表數(shù)據(jù)只保存員工的出勤情況,并不包括每日生產(chǎn)產(chǎn)量的考勤信息.表3-2員工考勤信息表Attendanceinfo字段類型長(zhǎng)度必填字段工號(hào)文本6是姓名文本10是

當(dāng)前日期文本10是出入標(biāo)志文本2是上班時(shí)間日期/時(shí)間是下班時(shí)間日期/時(shí)間是遲到次數(shù)數(shù)字10否早退次數(shù)數(shù)字10否3、Leaveinfo員工請(qǐng)假信息表淇結(jié)構(gòu)如表3-3所示。用戶所有請(qǐng)假信息保存在此表中.工資結(jié)算時(shí)根據(jù)記錄進(jìn)行扣除。表3—3員工請(qǐng)彳靈信息表Leaveinfo字段類型長(zhǎng)度必填字段工號(hào)文本5是姓名文本10是病假天數(shù)數(shù)字長(zhǎng)整型是事假天數(shù)數(shù)字長(zhǎng)整型是假期開始時(shí)間日期/時(shí)間是4、員工加班信息表,結(jié)構(gòu)如表3—4所示。為了方便系統(tǒng)的管理,員工加班信息同樣也作為一個(gè)獨(dú)立的表存儲(chǔ)。表3-4員工加班信息表OverTimeInfo字段類型長(zhǎng)度必填字段工號(hào)文本5是姓名文本10是特殊加班天數(shù)數(shù)字長(zhǎng)整型否正常加班天數(shù)數(shù)字長(zhǎng)整型否

加班日期日期/時(shí)間是5、員工工資表,結(jié)構(gòu)如表3—5所示。該表即完成每日產(chǎn)品考勤,同時(shí)也保存由系統(tǒng)自動(dòng)計(jì)算出的每天的員工工資,月底時(shí)只要匯總出這些每天的工資和即可。然后轉(zhuǎn)存到其它表作進(jìn)一步處理表3-5員工工資表salary字段類型長(zhǎng)度必填字段ID自動(dòng)編號(hào)是工號(hào)文本5是姓名文本10是工作日日期/時(shí)間是產(chǎn)品類型一文本文本否產(chǎn)品類型二文本否產(chǎn)品類型三文本否數(shù)量一數(shù)字否數(shù)量二數(shù)字否數(shù)量三數(shù)字否單價(jià)一數(shù)字否單價(jià)二數(shù)字否單價(jià)三數(shù)字否每日匯總數(shù)字是最后,設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),考慮數(shù)據(jù)庫(kù)的安全性,防止非管理人員用第三方軟件打開數(shù)jigL.ldl據(jù)庫(kù),特對(duì)數(shù)據(jù)庫(kù)文件也進(jìn)行了處理,將數(shù)據(jù)庫(kù)的擴(kuò)展名mdb替換為ldl,起到了一定的迷惑性。在改擴(kuò)展名的同時(shí)也對(duì)數(shù)據(jù)庫(kù)進(jìn)行了加密。在用ACCESS數(shù)jigL.ldl據(jù)庫(kù)打開時(shí)要求輸入打開密碼,如圖3-5所示。只有正確輸入打開密碼時(shí)才能打開數(shù)據(jù)庫(kù).為了方便記憶,本數(shù)據(jù)庫(kù)的打開密碼為:wlz。

圖3-5要求輸入密碼第四章各功能的實(shí)現(xiàn)4。1、系統(tǒng)安全及權(quán)限的實(shí)現(xiàn)為了確保系統(tǒng)的安全,對(duì)數(shù)據(jù)庫(kù)進(jìn)行加密處理,采用了用戶和組管理,并記錄用戶登錄信息。擁有高級(jí)權(quán)限的用戶,可以創(chuàng)建不同的組,并可將全部或部分權(quán)限分配給創(chuàng)建用戶.為了實(shí)現(xiàn)該功能,系統(tǒng)采用了遞歸方式,使高一級(jí)別的用戶可以管理低級(jí)用戶最高權(quán)限屬于管理員.具體描述如下:4O2、登錄窗口的實(shí)現(xiàn)系統(tǒng)登陸時(shí),要求正確輸入用戶名和密碼。成功登陸后顯示如圖4—2所示工資管理系統(tǒng)主界面.用戶名分為管理員用戶和普通用戶。如圖4-1所示:.密碼身份寸..取消/版板所皆@wi◎版鎏脯?瓶]告肥丁邂大學(xué)遍麻羸援出玉霞t圖4—1登錄窗口實(shí)現(xiàn)功能的部分主要代碼:PrivateSubComok_Click()OnErrorGoToDealerrorDimstrSqlAsStringDimstrMsgAsString7OnErrorGoToDealerrorDimobjCnAsNewConnectionstrcn=CSQobjCn.ConnectionString=strcnobjCnoOpenSetobjRs=NewRecordsetSetobjRsoActiveConnection=objCnobjRsoCursorLocation=adUseClientstrSql="SELECT*FROM系統(tǒng)用戶objRs.OpenstrSqlobjRsoActiveConnection=NothingobjCn.CloseSetobjCn=NothingIfLogontimes〉=3ThenMsgBox”你已經(jīng)超過(guò)最大登陸次數(shù)!退出系統(tǒng)”,vbOKOnly+vbCritical,”系統(tǒng)登錄"EndElseobjRs。MoveFirstobjRs。Find"用戶名=’"&txtUserName&"'"IfobjRs。EOFThenMsgBox"用戶名錯(cuò)誤!”,vbOKOnly+vbCritical,”系統(tǒng)登錄"txtUserName。SetFocustxtUserName.Text=””ElseIfobjRs!口令<〉txtPasswordThenMsgBox"密碼錯(cuò)誤!請(qǐng)重新輸入!”,vbOKOnly+vbCritical,"系統(tǒng)登錄”txtPassword.SetFocustxtPassword。Text="”Else’MsgBox”歡迎使用工資管理系統(tǒng)”,vbOKCancel+vbOKOnly,"系統(tǒng)登錄"strusername=txtUserNameuserpassword=txtPasswordIfCmbStatus=”"ThenMsgBox”請(qǐng)選擇登陸身份!”,vbOKOnly+vbCritical,”系統(tǒng)登錄”CmbStatus.SetFocusElseIfCmbStatus。ListIndex=0AndobjRs!admin=TrueThenUserAdmin=1EndIfIfCmbStatus。ListIndex=0AndobjRs!admin=FalseThenX=MsgBox("你不是管理員,將以普通用戶登陸",vbOKCancel+vbOKOnly,”系統(tǒng)登錄")EndIfIfX=2ThentxtUserName。SetFocustxtUserName.Text="”txtPassword。Text=""Else’添加操作員登陸時(shí)間strSql=”insertintot_login(用戶,登錄時(shí)間)values(’”&txtUserName&"’,'"&Now&”')”SetobjRs=ExecuteSQL(strSql,strMsg)UnloadMeMDIForm1.ShowEndIfEndIfEndIfEndIfEndIfLogontimes=Logontimes+1’登陸次數(shù)ExitSubDealerror:msg="程序執(zhí)行出錯(cuò),錯(cuò)誤信息如下:"&vbCrLf&Err。DescriptionShowErrormsgEndSubDimobjRsAsRecordsetDimiAsIntegerDimLogontimesAsIntegerPrivateSubComcancle_Click()n=MsgBox("你選擇了退出系統(tǒng)登陸,退出將不能啟動(dòng)管理系統(tǒng)!”&vbCrLf&"是否真的退出?”,vbYesNo,”系統(tǒng)驗(yàn)證”)Ifn=vbYesThenUnloadMeEndIfEndSub強(qiáng),企天上吊而*加 索添工王修注 目閘岡I浜熊M詼電、況工n?:4Jt通工由■?魚龍W工詡:貨??總B&界.*qpzcM*他筱翰a等且」因x局工記累 年日3SB TWfflM 工毋左考 計(jì)M" 打死國(guó)宓 =?.iEr.*ll打開網(wǎng)叮謔電幣M色抵工且大舉計(jì)班機(jī)用¥勺擅牛王醬干 5!l]g-k4 -I口i” 邑韭工賃豈叼第齪 |:音疝百圖4-2工資管理系統(tǒng)主窗體4O3、員工基本檔案信息的實(shí)現(xiàn)員工基本檔案信息管理,在窗體中完成員工基本信息的錄入工作。根據(jù)提示在該窗體中輸入相應(yīng)的信息、,最后單擊“保存'按鈕,進(jìn)行信息的保存。如圖4-3所示網(wǎng)企?工我芒遞不境京就首速㈤昌工信電沒定?網(wǎng)企?工我芒遞不境京就首速㈤昌工信電沒定?工資小加甘理中工衽結(jié)ifir速g戢據(jù)麻皿工口⑶砧助母]鹵計(jì)算品m際己Eriaal打開網(wǎng)頁(yè)X退出樂騷因企業(yè)工我士理不stAUDI因企業(yè)工我士理不stAUDI顯示量國(guó)扇工名單職工信息登記表身母怔號(hào)于凱h3]0B15q91E6&4E:]8J文WE工質(zhì)共利|?道工費(fèi)職工典型2d所羊子業(yè)效沿面機(jī)展第電詣吉周開崢1口hi:iL^3-£3_d壽身母怔號(hào)于凱h3]0B15q91E6&4E:]8J文WE工質(zhì)共利|?道工費(fèi)職工典型2d所羊子業(yè)效沿面機(jī)展第電詣吉周開崢1口hi:iL^3-£3_d壽J3住址:白巾止時(shí)陶hi:ii:r9--1-10_11I君肥工業(yè)科計(jì)H照斗學(xué)與技術(shù)IW企業(yè)工費(fèi)官理事統(tǒng)密理員圖4—3員工基本檔案信息錄入窗口相應(yīng)部分代碼如下:’添加員工基本信息PrivateSubcmdOK_Click()DimrsAsADODB。RecordsetDimstrSqlAsStringDimstrMsgAsStringDimtmpPathAsStringDimiStmAsADODB。Stream’如果是修改(保存照片—-刪除原記錄—-保存記錄)IfblnChange=TrueThen’如果不要?jiǎng)h除IfblnDelPhoto=FalseThenstrSql="select*fromt_brwhere工號(hào)='”&txtGH.Text&Setrs=ExecuteSQL(strSql,strMsg)’保存到文件tmpPath=App。path&"\temp。jpg"IfNotIsNull(rs。Fields(”照片”)。Value)ThenSetiStm=NewADODB.StreamWithiStm.Mode=adModeReadWrite。Type=adTypeBinary。Open。Writers.Fields("照片”)。Value。SaveToFiletmpPathblnDel=TrueEndWithstrFileName=tmpPath'pic。Picture=LoadPicture(tmpPath)iStm.CloseElseblnDel=FalseEndIfrs。CloseEndIf'刪除記錄strSql="delete大fromt_brwhere工號(hào)二’"&txtGH。Text&Setrs=ExecuteSQL(strSql,strMsg)ElsestrSql="select大fromt_brwhere工號(hào)二’”&txtGH。Text&”’"Setrs=ExecuteSQL(strSql,strMsg)Ifrs。EOF=FalseThenMsgBox”已有相同的工號(hào),無(wú)法添加到數(shù)據(jù)庫(kù)!”,vbOKOnly+vbExclamation,警告”TextFocustxtGHExitSubEndIfrs。CloseEndIfstrSql=”select*fromt_br"Setrs=ExecuteSQL(strSql, strMsg)rs.AddNewrs.Fields("工號(hào)")=txtGH.Textrs。Fields("姓名")=txtName。TextIfcboPayStyle.Text="”Thenrs。Fields("工資類別")=NullElsers.Fields("工資類別”)=cboPayStyle。TextEndIfIfcboHealthy.Text="”Thenrs.Fields("健康狀況")=NullElsers。Fields(”健康狀況”)=cboHealthy。TextEndIfIfcboSex.Text="”Thenrs.Fields("性別")=NullElsers.Fields(”性別”)=cboSex。TextEndIfIfcboEmployeeStyle。Text=""Thenrs。Fields("職工類型")=NullElsers。Fields(”職工類型”)=cboEmployeeStyle。TextEndIfIfcboPart.Text="”Thenrs.Fields(”部門”)=NullElsers。Fields("部門")=cboPart.TextEndIfIfcboDuty.Text=”"Thenrs.Fields("職務(wù)")=NullElsers.Fields(”職務(wù)")=cboDuty。TextEndIfIfcboCulture。Text=""Thenrs。Fields("文化程度")=NullElsers。Fields(”文化程度")=cboCulture。TextEndIfIfcboNation.Text=”"Thenrs。Fields("民族”)=NullElsers。Fields("民族”)=cboNation。TextEndIf’數(shù)字型IftxtMoney.Text="”Thenrs。Fields("薪金")=0Elsers。Fields(”薪金")=txtMoney。TextEndIfIfcboSpec.Text=”"Thenrs.Fields(”所學(xué)專業(yè)")=NullElsers。Fields("所學(xué)專業(yè)”)=cboSpec.TextEndIf’年齡為數(shù)字型IftxtAge。Text=""Thenrs。Fields("年齡")=0Elsers。Fields("年齡”)=txtAge。TextEndIf’日期型rs.Fields("生日")=dtpBirthday.ValueIfcboPolity。Text=""Thenrs。Fields("政治面貌")=NullElsers。Fields(”政治面貌”)=cboPolity。TextEndIfIfcboMarry。Text=""Thenrs。Fields("婚姻狀況")=NullElsers。Fields("婚姻狀況”)=cboMarry.TextEndIfIfcboNativePlace。Text=""Thenrs.Fields("籍貫")=NullElsers。Fields(”籍貫")=cboNativePlace。TextEndIfIftxtHandset。Text=""Thenrs.Fields("手機(jī)”)=0Elsers.Fields(”手機(jī)”)=txtHandset。TextEndIfIftxtIdentity。Text="”Thenrs。Fields("身份證號(hào)")=NullElsers。Fields(”身份證號(hào)”)=txtIdentity.TextEndIfIftxtTelphone。Text=""Thenrs。Fields("聯(lián)系電話")=NullElsers.Fields(”聯(lián)系電話”)=txtTelphone。TextEndIfIftxtHomeAddress。Text=""Thenrs.Fields("家庭住址")=NullElsers。Fields(”家庭住址”)=txtHomeAddress。TextEndIf’日期型rs。Fields(”合同開始時(shí)間”)=dtpBBargain。Valuers。Fields(”合同終止時(shí)間”)=dtpEBargain.ValueIftxtLong。Text=""Thenrs。Fields("工齡”)=0Elsers。Fields("工齡")=txtLong。TextEndIf’添加照片SetiStm=NewADODB.StreamIfLen(strFileName)〉0ThenWithiStm.Type=adTypeBinary’二進(jìn)制模式.Open。LoadFromFilestrFileNameEndWithrs。Fields(”照片”)=iStm.Readrs。UpdateiStm。CloseElsers。UpdateEndIf

rsoCloseSetrs=NothingcmdDeLEnabled=TrueCallDisabledControlcmdNewoEnabled=TrueMsgBox”添加成功”IfblnDelThenIftmpPath〈〉”"ThenKilltmpPathEndIfEndIfCallRefreshGridEndSub4。4、員工考勤信息的實(shí)現(xiàn)4.4O1、設(shè)置員工上下班時(shí)間在該窗體中輸入相應(yīng)的上下班信息,具體如圖4-4所示,相應(yīng)部分代碼如下:陽(yáng)設(shè)置上下班時(shí)間陽(yáng)設(shè)置上下班時(shí)間設(shè)置上下班時(shí)間上午上下既時(shí)間下午上下班時(shí)間上班時(shí)間:7:00:00上班時(shí)間:113:00:00-p下班時(shí)間:|11:00:00工下班時(shí)間:117:00:00工確定返回確定圖4-4設(shè)置上下班時(shí)間

'設(shè)置上下班時(shí)間'設(shè)置上下班時(shí)間DimsqlAsStringDimrsAsNewADODB。RecordsetDimstrMsgAsStringsql="delete*fromTimeSetting”Setrs=ExecuteSQL(sql,strMsg)’查找數(shù)據(jù)庫(kù),讀取記錄IfdtpBT。Value〉=DTPickerl。ValueThen’判斷下班時(shí)間大于上班時(shí)間MsgBox”請(qǐng)正確的輸入時(shí)間”,vbOKOnly+vbExclamation,”警告!”Me.dtpBT。SetFocus ’設(shè)置焦點(diǎn)ExitSubEndIfIfdtpBT2.Value>=DTPicker2。ValueOrdtpBT2。Value〈=DTPicker1。ValueOrdtpBT2。Value〈二dtpBT。ValueThen '判斷下班時(shí)間大于上班時(shí)間MsgBox”請(qǐng)正確的輸入時(shí)間”,vbOKOnly+vbExclamation,"警告!"Me。dtpBT2。SetFocus ’設(shè)置焦點(diǎn)ExitSubEndIfsql=”select*fromTimeSetting”Setrs=ExecuteSQL(sql, strMsg)rs.AddNewrs.Fields(”上午上班時(shí)間”)=CDate(dtpBT.Hour&”:”&dtpBT.Minute&”:”&dtpBT。Second)rs.Fields(”上午下班時(shí)間")=CDate(DTPicker1。Hour&":"&DTPicker1。Minute&":"&DTPicker1.Second)rs.Fields(”下午上班時(shí)間”)=CDate(dtpBT2。Hour&”:”&dtpBT2。Minute&”:”&dtpBT2。Second)rs。Fields(”下午下班時(shí)間”)=CDate(DTPicker2.Hour&”:”&DTPicker2.Minute&”:"&DTPicker2。Second)rs。Updaters。CloseMsgBox”時(shí)間已經(jīng)設(shè)置",vbOKOnly+vbInformation,”設(shè)置結(jié)果!”UnloadMeEndSubPrivateSubForm_Load()DimsqlAsStringDimrsAsNewADODB。RecordsetDimstrMsgAsStringsql="select*fromTimeSetting55Setrs=ExecutesQL(sql,strMsg)IfrsoEOFThenExitSubdtpBT.Value=rsoFields("上午上班時(shí)間”)DTPickerl.Value=rs。Fields(“上午下班時(shí)間”)dtpBT2oValue=rsoFields(”下午上班時(shí)間”)DTPicker2.Value=rs。Fields(”下午下班時(shí)間”)EndSub4。4。2、添加員工考勤信息1、添加上下班信息窗體如圖4-5所示,填入相應(yīng)的信息,部分代碼如下:圖4—5添加員工考勤信息添加上下班信息PrivateSubcmdOK_Click()DimsqlAsStringDimsql2AsStringDimrsAsNewADODB.RecordsetDimstrMsgAsStringDimstrmsg2AsStringDimrsTimeAsNewADODB。RecordsetDimtmsetswsb,tmsetswxb,tmsetxwsb,tmsetxwxbAsDateDimtmsb1,tmxb1AsDatesql=”select*fromAttendanceInfoorderbyIDdesc”sql2=”select*fromTimeSetting"Setrs=ExecuteSQL(sql,strMsg)SetrsTime=ExecuteSQL(sql2,strmsg2)IfInFlag=FalseAndOutFlag=FalseThenMsgBox"請(qǐng)選擇上下班",vbOKOnly+vbExclamation,”警告!”EndIf’添加上班信息IfInFlag=TrueThenIftxtID。Text=""OrtxtName。Text=""ThenMsgBox”要添加上班信息,員工編號(hào)與姓名不能為空,請(qǐng)輸入",vbOKOnly,提示"ExitSubEndIf'判斷上下午上班時(shí)間是否遲到tmsb1=dtpBT.Valueh=Hour(tmsb1)m=Minute(tmsb1)s=Second(tmsb1)tmsb1=CDate(h&”:"&m&”:”&s)tmsetswsb=CDate(rsTime.Fields("上午上班時(shí)間"))tmsetswxb=CDate(rsTime。Fields(”上午下班時(shí)間"))tmsetxwsb=CDate(rsTime。Fields(”下午上班時(shí)間”))’判斷上午上班時(shí)間是否遲到Iftmsb1<tmsetswxbThenIftmsb1>tmsetswsbThenilate=1MsgBox”遲到”Elseilate=0MsgBox”正常上班"EndIf’判斷下午上班時(shí)間是否遲到ElseIftmsb1〉tmsetxwsbThenilate=1MsgBox”遲到"Elseilate=0MsgBox"正常上班”EndIfEndIfaflag=”入"rs。AddNewrs.Fields(“工號(hào)”)=txtID.Textrs.Fields("姓名")=txtName。Textrs。Fields("當(dāng)前日期")=dtpET。Valuers.Fields(”上班時(shí)間”)=dtpBT。Hour&”:”&dtpBT。Minute&":"&dtpBT。Secondrs.Fields("出入標(biāo)志")=aflagrs。Fields("遲到次數(shù)")=ilaters。Updaters。CloseMsgBox”已完成添加上班信息”,vbOKOnly+vbInformation,”添加結(jié)果!"UnloadMeExitSubEndIf'添加下班信息IfOutFlag=TrueThenIftxtID。Text=""OrtxtName.Text=""ThenMsgBox"要添加下班信息,員工編號(hào)與姓名不能為空,請(qǐng)輸入”,vbOKOnly+vbExclamation, "警告”ExitSubEndIf'判斷上下午下班時(shí)間是否早退tmxb1=DTPicker1.Valueh=Hour(tmxb1)m=Minute(tmxb1)=Second(tmxb1)tmxb1=CDate(h&":”&m&":”&s)tmsetxwsb=CDate(rsTime。Fields(”下午上班時(shí)間"))tmsetswxb=CDate(rsTime。Fields(”上午下班時(shí)間"))tmsetxwxb=CDate(rsTime。Fields(”下午下班時(shí)間”))'判斷上午下班時(shí)間Iftmxb1〈tmsetxwsbThenIftmxb1<tmsetswxbTheniearly=1MsgBox”早退”Elseiearly=0MsgBox"正常下班”EndIf’判斷下午下班時(shí)間ElseIftmxb1〈tmsetxwxbTheniearly=1MsgBox"早退”Elseiearly=0MsgBox”正常下班"EndIfEndIfaflag="出"rs.AddNewrs。Fields(“工號(hào)”)=txtID.Textrs。Fields("姓名")=txtName.Textrs。Fields("當(dāng)前日期")=dtpET。Valuers。Fields(”下班時(shí)間")=DTPickerl.Hour&”:”&DTPickerl.Minute&”:”DTPicker1.Second

rsoFields—出入標(biāo)志")=aflagrs.Fields("早退次數(shù)")=iearlyrsoUpdatersoCloseMsgBox”已完成添加下班信息”,vbOKOnly+vblnformation,"添加結(jié)果!"UnloadMeExitSubEndIfEndSubPrivateSubForm_Load()dtpEToValue=Date'初始化為當(dāng)天時(shí)間EndSub2、設(shè)置員工每日產(chǎn)量考勤在該窗體中輸入相應(yīng)的信息,完成每日產(chǎn)量考勤具體如圖4—6所示,相應(yīng)部分代碼如下:國(guó)企費(fèi)工痛E百魏 VtSAi王根智 ,,5版1因才安尊臉am..一首x工擊純復(fù) 工行查尋 計(jì)置髓JT齊麗車SenAEr.4il打開網(wǎng)五 通日系蛇單 ?b?b 1因才安尊臉am..一首x工擊純復(fù) 工行查尋 計(jì)置髓JT齊麗車SenAEr.4il打開網(wǎng)五 通日系蛇單 ?b?b T 江工曲an T 月—出ADJ1產(chǎn)品英型1任己工l£&l£場(chǎng)5%1= 3H產(chǎn)品蜓工二fditfdj.iL 丁]|iqq里市記萬(wàn)廣E類工三甯髭|ke單,正5 二J麥崗E息舌嗇lags■…二 用號(hào)皿 姓右心--I囚靖 V]史勢(shì)[ 三]工行英知1件工法三;■■|;;pT v 手禮, 職工舍#htta ~?證件左勃■符時(shí)與,葉 ? ITCOM-J-|1L:QOIMIZJ I I上則ra w后取說(shuō)Is 型I卜,):始不_"一"二:學(xué)用? "記件匚斷|];ib^lbU5£加的?小時(shí) p—V]持啷 田時(shí)工即 啟吉肥工崢學(xué)計(jì)苒凱科學(xué)與捻f:壬溟占 :-<-.-i 。21主業(yè)H史甘電瓦眈SffiE圖4—6員工每日產(chǎn)量考勤“保存”按鈕代碼如下:PrivateSubcmdOK_Click()DimrsAsADODB。RecordsetDimstrSqlAsStringDimstrMsgAsString根據(jù)需要進(jìn)行字段限制IfChkBoxJJ。Value=TrueThenIfCombo1。Text=""ThenMsgBox”產(chǎn)品類型不能為空”TextFocusCombo1ExitSubEndIfIfChkBoxCP。Value=TrueThenIfCombo2.Text="”ThenMsgBox"產(chǎn)品類型二不能為空"TextFocusCombo2ExitSubEndIfIfTxt3。Text=0ThenMsgBox”數(shù)量不能為空"TextFocusTxt3ExitSubEndIfEndIfIfChkBoxCR。Value=TrueThenIfCombo3。Text=""ThenMsgBox”產(chǎn)品類型三不能為空"TextFocusCombo3ExitSubEndIfIfTxt5。Text=0ThenMsgBox"數(shù)量不能為空”TextFocusTxt5ExitSubEndIfEndIfEndIfstrSql=”select*fromcheckinfowhere工號(hào)=’"&txtGH1&"’”Setrs=ExecuteSQL(strSql,strMsg)Ifrs。EOF=FalseThenMsgBox”已有相同的記錄,無(wú)法添加到數(shù)據(jù)庫(kù)!",vbOKOnlyvbExclamation,”警告"TextFocustxtGH1rs。CloseIfChkBoxJJ。Value=TrueThenstrSql=”select*fromsalary”Setrs=ExecuteSQL(strSql,strMsg)rs。AddNewrs.Fields("工號(hào)")=txtGH1。Textrs.Fields(”姓名”)=txtName.Textrs.Fields("工作日”)=dtpBirthday.Valuers。Fields("產(chǎn)品類型一")=Combo1。Textrs.Fields("產(chǎn)品類型二")=Combo2.Textrs。Fields("產(chǎn)品類型三”)=Combo3。TextIfTxt1。Text=""Thenrs。Fields("數(shù)量一”)=0Elsers。Fields(”數(shù)量一")=TxtLTextEndIfIfTxt3。Text=""Thenrs。Fields(”數(shù)量二")=0Elsers.Fields("數(shù)量二")=Txt3。TextEndIfIfTxt5.Text="”Thenrs。Fields("數(shù)量三")=0Elsers。Fields("數(shù)量三")=Txt5。TextEndIfIftxt2.Text="”Thenrs。Fields(”單價(jià)一")=0Elsers。Fields(”單價(jià)一")=txt2。TextEndIfIftxt4。Text=""Thenrs。Fields("單價(jià)二")=0Elsers.Fields(”單價(jià)二")=txt4。TextEndIfIftxt6。Text=""Thenrs。Fields("單價(jià)三")=0Elsers.Fields(”單價(jià)三”)=txt6。TextEndIfrs.Fields("每日匯總")=Txt7。Textrs.Updaters。CloseSetrs=NothingEndIfIfChkBoxJS。Value=TrueThenstrSql=”select*fromtimekaoqin"Setrs=ExecuteSQL(strSql,strMsg)rs.AddNewrs。Fields("工號(hào)”)=txtGHI。Textrs.Fields(”工作日”)=dtpBirthday。Valuers。Fields("上班時(shí)間")=dtpBT(0)。Valuers。Fields(”下班時(shí)間”)=DTPicker1(0)。Valuers.Fields("PM上班時(shí)間”)=dtpBT(1)。Valuers。Fields("PM下班時(shí)間”)=DTPicker1(1)。Valuers.Fields(”單價(jià)”)=MoTxt。Textrs。Fields(”工作小時(shí)數(shù)")=Timetxt6.Textrs.Fields("加班時(shí)間”)=Combo4.Textrs。Fields(”加班單價(jià)”)=Text12。Textrs。Fields(“記時(shí)匯總”)=MoTxt8。Textrsrs。Updaters.CloseSetrs=NothingEndIfIfChkBoxJJ.Value=TrueOrChkBoxJS。Value=TrueThenMsgBox”添加成功"ElseMsgBox”添加失敗”same=2:same2=4EndIfIfsame=2Andsame2=4ThenExitSubElsestrSql="select*fromcheckinfo”Setrs=ExecuteSQL(strSql,strMsg)rs。AddNewrs。Fields("工號(hào)")=txtGHLTextrs。Fields("工作日”)=dtpBirthday。Valuers。UpdateEndIf’CallRefreshGrid

EndIfEndSub4O5、員工月工資結(jié)算、產(chǎn)量匯總、綜合處理在該窗體中輸入相應(yīng)的信息,完成月工資結(jié)算、產(chǎn)量匯總、綜合處理具體如圖4-7所示,相應(yīng)部分代碼如下:圖4-7月工資結(jié)算、產(chǎn)量匯總、綜合處理相應(yīng)部分代碼如下:DimstrSqlAsStringDimstrMsgAsStringDimrsAsADODB。RecordsetDimdj1AsIntegerDimdj2AsIntegerDimdj3AsInteger

’記件統(tǒng)計(jì)strSql="select*fromsalarywhere工號(hào)='”&gh&"’"Setrs=ExecuteSQL(strSql,strMsg)Ifrs.EOF=FalseThenTextNO.Text=rs.Fields(“工號(hào)”)。ValueTextNAMe。Text=rs.Fields(”姓名”).ValueCombod。Value=rs。Fields(”工作日")。ValueTextlx(0).Text=rs.Fields("產(chǎn)品類型一”)。Valuedj1=rs。Fields(”單價(jià)一”).Valuedj2=rs.Fields("單價(jià)二”)。Valuedj3=rs。Fields(”單價(jià)三”)。ValueTextlx(1).Text=rs。Fieldsf產(chǎn)品類型二”)。ValueTextlx(2).Text=rs。Fieldsf產(chǎn)品類型三")。Valuers.Closesum(數(shù)量三)+Val(TextzjstrSql=”selectsum(數(shù)量一)as數(shù)量一,sum(數(shù)量二)as數(shù)量二,as數(shù)量三,sum(每日匯總)as每日匯總fromsalarygroupbysum(數(shù)量三)+Val(TextzjTextsl(0).Text=rs。Fields("數(shù)量一”)。ValueTextsl(1)。Text=rs。Fields(”數(shù)量二")。ValueTextsl(2)。Text=rs.Fields(”數(shù)量三”).ValueTextzj(0)。Text=Val(Textsl(0).Text)*dj1Textzj(1)。Text=Val(Textsl(1)。Text)*dj2Textzj(2)。Text=Val(Textsl(2).Text)*dj3Txtgj.Text=Val(Textzj(0).Text)+Val(Textzj(1)。Text)(2).Text)'獎(jiǎng)金福利結(jié)算rs。ClosestrSql=”select*fromSar_otherwhere工號(hào)='”&TextNO&”’Setrs=ExecuteSQL(strSql,strMsg)Text(0)。Text=rs.Fields(”獎(jiǎng)金").ValueText(1).Text=rs。Fields("津貼”).ValueText(2)。Text=rs.Fields("福利”)。ValueText(3)。Text=rs.Fields(”其他項(xiàng)目“).Value'扣除rs。ClosestrSql=”select*fromkouchuwhere工號(hào)='"&TextNO&”’Setrs=ExecuteSQL(strSql,strMsg)Tet(0)。Text=rs.Fields("住宿費(fèi)")Tet(1)。Text=rs.Fields("火食費(fèi)”)Tet(2).Text=rs。Fields("公基金”)Tet(3).Text=rs.Fields("垃圾處理費(fèi)”)Tet(4)。Text=rs.Fields("醫(yī)療保險(xiǎn)費(fèi)”)Tet(5)。Text=rs。Fields("其它”)ElseMsgBox”數(shù)據(jù)庫(kù)還沒有此工號(hào)的工資記錄”,vbOKOnly+vbExclamation, ”提示"ChkBoxJJ.Value=FalseChkBoxCP。Value=FalseChkBoxCR.Value=FalseChkBoxJS.Value=FalseExitSubEndIf'記時(shí)統(tǒng)計(jì)rs.ClosestrSql="selectsum(加班時(shí)間)as加班總時(shí)間,sum(工作小時(shí)數(shù))as工作小時(shí)數(shù),sum(記時(shí)匯總)as記時(shí)匯總fromtimekaoqingroupby工號(hào)='”&gh&”’”Setrs=ExecuteSQL(strSql,strMsg)Txt(0).Text=rs。Fields(”工作小時(shí)數(shù)")。ValueTxt(2).Text=rs。Fields(”加班總時(shí)間”).ValueTextgj.Text=rs.Fields(”記時(shí)匯總”)。ValuestrSql=”select單價(jià),加班單價(jià)fromtimekaoqinwhere工號(hào)='"&gh&”’”Setrs=ExecuteSQL(strSql,strMsg)Txt(1)。Text=rs。Fields(”單價(jià)").Value

Txt(3).Text=rsoFields("加班單價(jià)").ValueText5.Text=Vai(TxtgjoText)+Vai(Textgj.Text)+Vai(Text(O)oText)_+Val(Text(1)。Text)+Vai(Text(2)。Text)+Val(Text(3).Text)Text3.Text=Val(TxtgjoText)—Vai(Tet(0)oText)—Val(Tet(1)。Text)_—Vai(Tet(2).Text)—Vai(Tet(3).Text)—Vai(Tet(4)。Text)-Vai(Tet(5).Text)EndSub4O6、系統(tǒng)工具一聊天室的實(shí)現(xiàn)本系統(tǒng)為了給企業(yè)提供一個(gè)更好的、方便的服務(wù),有效而快速的進(jìn)行網(wǎng)內(nèi)各部門之間的通信,更好的協(xié)同工作,特增加了系統(tǒng)內(nèi)部的聊天模塊.詳見圖4—8、圖4-9所示返回「對(duì)時(shí)返回「對(duì)時(shí)圖4—8服務(wù)器端圖4—9客戶端服務(wù)器端相應(yīng)代碼:Constmaxn=200,最大同時(shí)連接本機(jī)的客戶數(shù)Dimuser(maxn)AsBooleanPrivateSubCommand1_Click()Form2.HideEndSubPrivateSubCommand2_Click()LoadForm1Form1.ShowEndSubPrivateSubForm_Load()Dimstr1AsStringnowuser=0Form2.Caption="管理系統(tǒng)通信軟件”’注釋:winsock控件a作為服務(wù)器程序監(jiān)聽a。LocalPort=3000a.ListenEndSubPrivateSuba_ConnectionRequest(ByValrequestIDAsLong)DimiAsLongFori=1Tomaxn’當(dāng)一客戶請(qǐng)求時(shí)給啟動(dòng)一Winsock控件標(biāo)志號(hào)IfNotuser(i)Thenuser(i)=TrueExitForEndIfNextiIfi〉maxnThenExitSubEndIfLoadb(i)’當(dāng)一客戶請(qǐng)求時(shí)啟動(dòng)一Winsock控件b(i)。AcceptrequestID'注釋:實(shí)際建立連接IfText1。Text=""Then’注釋:發(fā)送數(shù)據(jù)b(i)。SendDataChr(0)Elseb(i)。SendDataTextLTextEndIfForm2.ShowEndSubPrivateSubs_Close(IndexAsInteger)b(Index).Close’注釋:關(guān)閉連接Unloadb(Index)'注釋:卸載一個(gè)WinSock控件user(Index)=FalseEndSubPrivateSubb_DataArrival(IndexAsInteger,ByValbytesTotalAsLong)DimstrAsStringDimiAsLongDimnAsIntegerOnErrorResumeNext’忽略已斷開的主機(jī)b(Index).GetDatastrTextl。Text=Textl。Text+strFori=1TomaxnIfuser(i)Thenb(i)。SendDatastrEndIfNextiEndSub4。7、系統(tǒng)測(cè)試性能測(cè)試與分析這個(gè)階段的關(guān)鍵任務(wù)是通過(guò)各種類型的測(cè)試及相應(yīng)的調(diào)試,使軟件達(dá)到預(yù)定的的要求,根據(jù)分工本人負(fù)責(zé)整個(gè)程序運(yùn)行以及整個(gè)程序調(diào)試。1、測(cè)試環(huán)境測(cè)試環(huán)境為:操作系統(tǒng):Windows2000及以上數(shù)據(jù)庫(kù)系統(tǒng):Access2000。2、系統(tǒng)測(cè)試需求分析科技成果管理系統(tǒng)作為信息管理系統(tǒng)應(yīng)用程序,應(yīng)具有設(shè)計(jì)文件所規(guī)定的功能,各個(gè)功能模塊都能完成相應(yīng)的任務(wù),保證用戶所輸入數(shù)據(jù)的正確性和安全性。程序設(shè)計(jì)及相關(guān)功能是否符合要求,只有通過(guò)嚴(yán)密的測(cè)試才能發(fā)現(xiàn)問(wèn)題,盡可能減少錯(cuò)誤的發(fā)生。所以,必須對(duì)系統(tǒng)進(jìn)行測(cè)試,達(dá)到糾錯(cuò)改錯(cuò)的目的。測(cè)試方法軟件測(cè)試主要分靜態(tài)和動(dòng)態(tài)分析方法,動(dòng)態(tài)法有白盒和黑盒法,本系統(tǒng)主要采用黑盒法進(jìn)行測(cè)試對(duì)程序功能進(jìn)行測(cè)試。3、系統(tǒng)測(cè)試策略說(shuō)明?整個(gè)系統(tǒng)界面窗口的測(cè)試項(xiàng)目1、相關(guān)輸入或輸出命令能否正常打開?2、頁(yè)面顯示是否正常,讀數(shù)據(jù)庫(kù)時(shí)是否出錯(cuò)?3、業(yè)務(wù)流程是否合理,是否適合用戶操作??數(shù)據(jù)項(xiàng)測(cè)試項(xiàng)目能否識(shí)別輸入數(shù)據(jù)的類型和長(zhǎng)度?異常處理能否保證系統(tǒng)在不正確的操作下運(yùn)行,能否識(shí)別非法數(shù)據(jù)?數(shù)據(jù)庫(kù)在大量的數(shù)據(jù)輸入輸出時(shí)能否正常運(yùn)行?數(shù)據(jù)寫入數(shù)據(jù)庫(kù)時(shí)能否寫入到對(duì)應(yīng)的字段?4、系統(tǒng)測(cè)試方案設(shè)計(jì)功能測(cè)試采用黑盒測(cè)試法,數(shù)據(jù)設(shè)計(jì)如下:測(cè)試報(bào)告見系統(tǒng)管理模塊測(cè)試用例:4。1。1設(shè)置操作員、密碼、權(quán)限設(shè)計(jì)測(cè)試用例,如表(表4。1.1):表4.1.1操作員編號(hào)操作員姓名操作員類別用戶密碼01wlz系統(tǒng)管理員wlz02wanglingzhing普通用戶wlz4。1.2設(shè)置快捷鍵用戶和登陸密碼-測(cè)試用例設(shè)計(jì)如下表第一次測(cè)試用例(設(shè)計(jì)兩組相同數(shù)據(jù))第二次測(cè)試用例(兩次密碼輸入不同)用戶名用戶密碼確認(rèn)密碼用戶名用戶密碼確認(rèn)密碼11111111111第一次輸入與預(yù)期結(jié)果一致、第二次不一致與預(yù)期結(jié)果不一致第五章結(jié)束語(yǔ)此次畢業(yè)設(shè)計(jì),不盡鞏固了所學(xué)知識(shí),而且在這基礎(chǔ)上也提高了自己,使我明白需求分析、合理設(shè)計(jì)數(shù)據(jù)庫(kù),編寫代碼對(duì)軟件設(shè)計(jì)的好壞起了非常重要的作用。由于本身能力的局限性,所以做編寫的代碼,即使經(jīng)過(guò)反復(fù)檢查也難免出錯(cuò)所以在本階段力求使用有限的時(shí)間找出盡可能多的錯(cuò)誤,力求系統(tǒng)盡量正確。我們?cè)诒鞠到y(tǒng)的測(cè)試中使用了黑盒法(即不關(guān)心程序內(nèi)部的邏輯結(jié)構(gòu),而是根據(jù)程序的功能來(lái)設(shè)計(jì)是檢測(cè))請(qǐng)一位不熟悉本系統(tǒng)的人來(lái)進(jìn)行隨意性的操作,打破習(xí)慣的操作順序,從中發(fā)現(xiàn)錯(cuò)誤,在此階段系統(tǒng)的大量錯(cuò)誤得到了改正。本系統(tǒng)能夠順利完成,非常感謝唐昊老師和周雷老師的精心指導(dǎo),同時(shí)也很感謝二年來(lái)各位老師對(duì)我的栽培。對(duì)于本人來(lái)說(shuō),這次的畢業(yè)設(shè)計(jì),是對(duì)自己在這二年學(xué)習(xí)的一個(gè)檢驗(yàn)和平時(shí)學(xué)習(xí)的一種積累.從中也使我學(xué)到了不少東西.希望以后有足夠的時(shí)間更深入的了解,做好需求分析,為使自己能設(shè)計(jì)出更好的軟件.參考文獻(xiàn)[1]孫越,VisualBasic數(shù)據(jù)庫(kù)開發(fā)自學(xué)教程,人民郵電出版社,2003[2]龔沛曾,面向?qū)ο蟪绦蛟O(shè)計(jì)系列教材,高等教育出版社,2004[3]潭浩,學(xué)用VisualBasic編程,西安電子科技大學(xué)出版社,2000[4]劉萌,VisualBasic6。0數(shù)據(jù)庫(kù)開發(fā)與實(shí)例導(dǎo)航,人民郵電出版社,2004湯發(fā)良,我國(guó)企業(yè)內(nèi)部沖突狀態(tài)的評(píng)價(jià)測(cè)度模型,1999VisualBasic6.0數(shù)據(jù)庫(kù)精講100例,電子工業(yè)出版社,2003VisualBasic6。0程序設(shè)計(jì)實(shí)驗(yàn),中央廣播電視大學(xué)出版社,2006http:〃vb開發(fā)技術(shù)論壇附錄添加用戶窗體代碼如下:PrivateSubcmdCancel_Click()UnloadMeExitSubEndSubPrivateSubcmdOK_Click()DimsqlAsStringDimrsAsADODB。RecordsetIfTrim(username。Text)=”“ThenMsgBox"請(qǐng)輸入用戶名稱",vbOKOnly+vbExclamation,”警告”’ExitSubusername.SetFocusElsesql=”select*from系統(tǒng)用戶where用戶名=’”&username&”'”Setre=getrs(sql,”gzgl”)Ifre。EOF=FalseThenMsgBox”這個(gè)用戶已經(jīng)存在,請(qǐng)重新輸入用戶名",vbOKOnly+vbExclamation,"警告"username.SetFocususername.Text=”"password.Text="”confirmpwd。Text=""ExitSubElseIfTrim(password。Text) 〈〉Trim(confirmpwd。Text)ThenMsgBox"兩次輸入密碼不一致,請(qǐng)重新輸入密碼",vbOKOnly+vbExclamation,”警告”passwordoText="”confirmpwd。Text=”"password.SetFocusExitSubElseIfTrim(password.Text)="”ThenMsgBox”密碼不能為空",vbOKOnly+vbExclamation,”警告"password.Text=”"confirmpwd=””password.SetFocusElseIfAdminCheck=FalseThensql="insertinto系統(tǒng)用戶(用戶名,口令)valuessql=sql&”','"&password&"’)"Calltransactsql(sql,”gzgl”)Elsesql="insertinto系統(tǒng)用戶(用戶名,口令,admin)sql=sql&”’,’"&passwordsql=sql&”’,’"&UserAdmin&"’)”EndIfCalltransactsql(sql,”gzgl")MsgBox”添加成功”,vbOKOnly+vbExclamation,username。Text=”"password。Text="”confirmpwd。Text="”username.SetFocusIfCheck1=FalseThenUnloadMeEndIfEndIfEndIfEndIfEndSubPrivateSubForm_Load()Me。Left=ReadIni("添加用戶","left”)Me。Top=ReadIni("添加用戶","top")EndSub(’"&usernamevalues('”&username"添加結(jié)果”PrivateSubForm_Unload(CancelAsInteger)CallWritelni("添加用戶","left",Me。Left)CallWritelni("添加用戶","top",Me.Top)EndSub修改密碼窗體代碼如下:PrivateSubcmdCancel_Click()UnloadMeExitSubEndSubPrivateSubcmdOK_Click()DimsqlAsStringDimrsAsADODB。RecordsetIfTrim(oldpwd.Text)=””ThenMsgBox”請(qǐng)輸入舊密碼”,vbOKOnly+vbExclamation,”提示"oldpwd。SetFocusExitSubElseIfTrim(oldpwd。Text)〈>Trim(userpassword)ThenMsgBox”舊密碼與登錄的密碼不同,請(qǐng)重新輸入!”,vbOKOnly+vbExclamation,示”oldpwd。Text=""oldpwd。SetFocusElseIfTrim(newpwd。Text)=""ThenMsgBox"請(qǐng)輸入新密碼”,vbOKOnly+vbExclamation,"提示”newpwd.SetFocusExitSubElseIfTrim(newpwd。Text)<>Trim(confirmpwd。Text)ThenMsgBox"兩次密碼不同”,vbOKOnly+vbExclamation, "警告”newpwd。Text="”confirmpwd.Text=””newpwd.SetFocusElse,,,userpassword=newpwd,,,sql=”update系統(tǒng)用戶set口令='"&newpwd&”'where用戶名='”&strusername&Calltransactsql(sql,”gzgl”)

MsgBox”密碼已經(jīng)修改",vbOKOnly+vbExclamation,”修改結(jié)果UnloadMeEndIfEndIfEndSubPrivateSubForm_Load()Me。Left=ReadIni("修改密碼","left”)Me。Top=ReadIni("修改密碼","top”)EndSubPrivateSubForm_Unload(CancelAsInteger)CallWritelni("修改密碼","left”,Me。Left)CallWritelni("修改密碼","top",Me.Top)EndSub數(shù)據(jù)導(dǎo)出:DimoutTypeAsInteger'導(dǎo)出類型DimoutPathAsStringpathAsString)pathAsString)PrivateFunctionoutToExcel(ByValstrSqlAsString,ByValWorksheeNameAsString,AsBooleanOnErrorGoToerr_outToExcel’聲明excelDimobjExcelAsExcel。ApplicationDimobjWorkbookAsWorkbookDimobjWorksheetAsWorksheetSetobjExcel=CreateObject("Excel。Application")SetobjWorkbook=objExcel.Workbooks.AddSetobjWorksheet=objWorkbook。Worksheets("sheetl”)objWorksheet。Name=WorksheeName聲明adodbDimrsAsADODB。RecordsetDimstrMsgAsStringSetrs=ExecuteSQL(strSql, strMsg)i=1rs.MoveFirstDoWhileNotrs。EOFForj=1Tors.Fields。CountobjExcel。Cells(i,j)=rs。Fields(j-1)Nexti=i+1rs.MoveNextLoopobjWorkbook。SaveAspathobjWorkbook。CloseobjExcel。QuitSetobjWorksheet=NothingSetobjWorkbook=NothingSetobjExcel=NothingoutToExcel=TrueExitFunction'錯(cuò)誤處理err_outToExcel:MsgBoxErr。DescriptionOnErrorResumeNextobjWorkbook。CloseobjExcel。QuitSetobjWorksheet=NothingSetobjWorkbook=NothingSetobjExcel=NothingoutToExcel=FalseEndFunctionPrivateSubcmdOut_Click()SelectCaseoutType'導(dǎo)出到ExcelIfoutToExcel(outSql,”s1",outPath)=TrueThenMsgBox”導(dǎo)出成功"ElseMsgBox"導(dǎo)出失敗”EndIfIfoutToWord(outSql,outPath)=TrueThenMsgBox”導(dǎo)出成功”ElseMsgBox"導(dǎo)出失敗”EndIfIfoutToText(outSql,outPath)=TrueThenMsgBox"導(dǎo)出成功”ElseMsgBox”導(dǎo)出失敗”EndIfEndSelectEndSubPrivateSubcmdPath_Click()SelectCaseoutTypecdgPath。Filter=”Excel文件(*.xls)I*。xls”cdgPath.Filter="Word文件(*。doc)l*。doc”cdgPath。Filter="記事本(*。txt)|*.txt"EndSelectcdgPath.ShowSavetxtPath.Text=cdgPath.FileNameEndSubPrivateSubcmdPre_Click()SSTab1.Tab=1EndSubPrivateSubcmdSelNext_Click()IfoptExcel。Value=TrueThenoutType=1txtMessage。Text=”導(dǎo)出至UExcel"&vbCrLftxtPath=App.path&"\DBBackup\1。xls”ElseIfoptWord。Value=TrueThentxtMessage。Text=”導(dǎo)出到Word”&vbCrLfoutType=2txtPath=App。path&"\DBBackup\1.doc”ElsetxtMessage。Text=”導(dǎo)出到記事本"&vbCrLfoutType=3txtPath=App.path&”\DBBackup\1。txt"EndIftxtSql="select工號(hào),姓名,性別,薪金,所學(xué)專業(yè),職務(wù),工資類別,合同開始時(shí)間,合同終止時(shí)間,職工類型,工齡,生日,年齡,文化程度,民族,婚姻狀況,政治面貌,身份證號(hào),籍貫,聯(lián)系電話,手機(jī),家庭住址,健康狀況fromt_br"SSTab1。Tab=1EndSubPrivateSubcmdSetNext_Click()txtMessage。Text="”IfoptExcel.Value=TrueThentxtMessage。Text="導(dǎo)出到Excel"&vbCrLfElselfoptWord。Value=TrueThentxtMessage。Text=”導(dǎo)出至UWord"&vbCrLfElsetxtMessage.Text=”導(dǎo)出到記事本”&vbCrLfEndIfoutPath=Trim(txtPath。Text)outSql=txtSql。TexttxtMessage。Text=txtMessage.Text&vbCrLf&"導(dǎo)出路徑為:”&outPathtxtMessage.Text=txtMessage。Text&vbCrLf&"查詢語(yǔ)句為:”&outSqlSSTab1。Tab=2EndSubPrivateSubcmdSetPre_Click()SSTab1.Tab=0EndSubPrivateFunctionoutToWord(ByValstrSqlAsString,ByValpathAsString)AsBooleanOnErrorGoToerr_outToWordDimwRowAsIntegerDimwColAsInteger’聲明AdodbDimrsAsADODB。RecordsetDimstrMsgAsStringSetrs=ExecuteSQL(strSql,strMsg)wRow=rs。RecordCountwCol=rs。Fields.Count'聲明Word對(duì)象DimobjWordAsWord。ApplicationSetobjWord=CreateObject(”word.application”)DimobjDocumentAsNewDocumentSetobjDocument=objWord.Documents.AddobjDocument。Tables。AddRange:=objWord.Selection.Range,NumRows:=wRow,NumColumns:=wColrs。MoveFirstj=1DoWhileNotrs。EOFFori=1TowColobjDocument.Tables(1)。Cell(j,i)。SelectobjWord。Selection。Range。Text=rs。Fields(i—1).ValueNextj=j+1rs。MoveNextLoopobjDocument。SaveAsFileName:=pathobjDocument.CloseSetobjDocument=NothingobjWord.QuitSetobjWord=NothingoutToWord=TrueExitFunction’錯(cuò)誤處理err_outToWord:MsgBoxErr.DescriptionOnErrorResumeNextobjDocument.CloseSetobjDocument=NothingobjWord。QuitSetobjWord=NothingoutToWord=FalseEndFunctionPrivateFunctionoutToText(ByValstrSqlAsString,ByValpathAsString)AsBooleanOnErrorGoToerr_outToTextDimrsAsADODB.RecordsetDimstrMsgAsStringDimfield_with()AsIntegerSetrs=ExecuteSQL(strSql,strMsg)Dimf1f1=FreeFileOpenpathForOutputAsf1ReDimfield_width(rs.Fields。Count—1)rs。MoveFirstDoWhileNotrs。EOFFori=0Tors.Fields。Count-1field_width(i)=rs.Fields(i).DefinedSizeIffield_width(i)〈Len(rs。Fields(i).Name)Thenfield_width(i)=Len(rs.Fields(i)。Name)EndIfPrint#f1,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論