數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)設(shè)計(jì)案例_第1頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)設(shè)計(jì)案例_第2頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)設(shè)計(jì)案例_第3頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)設(shè)計(jì)案例_第4頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)設(shè)計(jì)案例_第5頁(yè)
已閱讀5頁(yè),還剩76頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第11章數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)設(shè)計(jì)案例數(shù)據(jù)庫(kù)編程技術(shù)11.1圖書(shū)館管理系統(tǒng)的設(shè)計(jì)本例以圖書(shū)館管理系統(tǒng)為例說(shuō)明如何開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序。11.1.1需求分析圖書(shū)館是這樣的部門(mén),館中收藏大量圖書(shū)供讀者借閱,其中圖書(shū)可分成不同的類(lèi)別,如自然科學(xué)類(lèi),社會(huì)科學(xué)類(lèi)等;借閱者可分為老師和學(xué)生。不同的借閱者最多可借的書(shū)的數(shù)量和期限不同,如教師最多可借10本,期限為3個(gè)月,學(xué)生最多可借2本,期限為1個(gè)月,無(wú)論老師和學(xué)生借閱超期還要進(jìn)行罰款處理。11.1.2概念結(jié)構(gòu)設(shè)計(jì)圖書(shū)館管理系統(tǒng)的E-R圖讀者圖書(shū)借閱日期mnpq金額日期罰款讀者借書(shū)證號(hào)讀者姓名性別是否有超期讀者實(shí)體與其屬性讀者類(lèi)別圖書(shū)條形碼號(hào)書(shū)名作者出版社圖書(shū)實(shí)體與其屬性出版日期書(shū)的類(lèi)別圖書(shū)編號(hào)借閱狀態(tài)借閱次數(shù)11.1.3邏輯結(jié)構(gòu)設(shè)計(jì)讀者(借書(shū)證號(hào),讀者姓名,性別,讀者類(lèi)別,是否有超期)圖書(shū)(條形碼號(hào),圖書(shū)編號(hào),書(shū)名,作者,出版社,出版日期,書(shū)的類(lèi)別,借閱狀態(tài),借閱次數(shù))借閱(借書(shū)證號(hào),條形碼號(hào),借出日期,歸還日期)罰款(借書(shū)證號(hào),條形碼號(hào),處罰日期,超期天數(shù),罰款金額)另外,為了保證系統(tǒng)的安全性,采用了登錄的措施,用戶(hù)名和密碼存放在密碼表中。密碼表(用戶(hù)名,密碼)11.1.4規(guī)范化分析除[罰款]關(guān)系外,其它4個(gè)關(guān)系模式中主碼是本模式的唯一決定因素,所以這4個(gè)關(guān)系模式都屬于BCNF.但是在[罰款]關(guān)系中,罰款金額=日罰款額×超期天數(shù),所以超期天數(shù)→罰款金額,而超期天數(shù)→(借書(shū)證號(hào),條形碼號(hào),處罰日期),所以(借書(shū)證號(hào),條形碼號(hào),處罰日期)→罰款金額,存在傳遞函數(shù)依賴(lài),所以[罰款]關(guān)系屬于2NF,存在冗余現(xiàn)象。讀者往往既關(guān)心超期天數(shù),又關(guān)心罰款金額,所以“罰款金額”是必要的冗余。

11.1.5在SQLServer2000中創(chuàng)建數(shù)據(jù)庫(kù)圖書(shū)表的結(jié)構(gòu)字段名 數(shù)據(jù)類(lèi)型 長(zhǎng)度 條形碼號(hào) char 13 圖書(shū)編號(hào) char 10 書(shū)名 varchar 20 作者 varchar 20 出版社 varchar 50 出版日期 datetime 8 類(lèi)別char 10 借閱狀態(tài) char 4 借閱次數(shù) smallint 2 讀者表的結(jié)構(gòu)字段名 數(shù)據(jù)類(lèi)型 長(zhǎng)度 借書(shū)證號(hào) char 10 讀者姓名 varchar 20 性別 char 2 讀者類(lèi)別 char 1 是否有超期char 1 借閱表的結(jié)構(gòu)字段名 數(shù)據(jù)類(lèi)型 長(zhǎng)度 借書(shū)證號(hào) char 10 條形碼號(hào) char 13 借出日期 datetime 8 歸還日期 datetime 8 罰款表的結(jié)構(gòu)字段名 數(shù)據(jù)類(lèi)型 長(zhǎng)度 借書(shū)證號(hào) char 10 條形碼號(hào) char 13 處罰日期 datetime 8 超期天數(shù) int 4 罰款金額 money 8 密碼表的結(jié)構(gòu)字段名 數(shù)據(jù)類(lèi)型 長(zhǎng)度 用戶(hù)名 char 10 密碼 char 6 11.1.6用VB6.0開(kāi)發(fā)應(yīng)用程序1.圖書(shū)館管理系統(tǒng)的功能圖書(shū)館管理系統(tǒng)讀者管理圖書(shū)管理借閱管理罰款管理2.配置數(shù)據(jù)源用前面介紹的方法,利用ODBC數(shù)據(jù)源管理器配置一個(gè)連接到“圖書(shū)館”數(shù)據(jù)庫(kù)的數(shù)據(jù)源,名為“圖書(shū)管理”,

1)設(shè)計(jì)MDI主窗體。

3.設(shè)計(jì)各個(gè)窗體其中菜單的結(jié)構(gòu)如下表所示 標(biāo)題及位置名稱(chēng)標(biāo)題及位置名稱(chēng)系統(tǒng)管理m_system圖書(shū)流通m_flow…注冊(cè)新用戶(hù)m_rigister…借閱管理m_lend…退出系統(tǒng)m_exit…罰款管理m_punish基本信息m_basi報(bào)表m_report…讀者信息管理m_reader…圖書(shū)借閱排行m_lendp…讀者信息瀏覽m_readerscan…借閱報(bào)表m_lend_report…讀者信息查詢(xún)m_readerquery…罰款報(bào)表m_punish_report…圖書(shū)信息管理m_book關(guān)于m_about…圖書(shū)信息查詢(xún)m_bookquery2)設(shè)計(jì)登錄窗體DimmiCountAsInteger'用于記錄輸入密碼次數(shù)DimstrAsStringstr="select密碼from密碼表where用戶(hù)名='"&Text1.Text&"'"Adodc1.RecordSource=strAdodc1.RefreshIfAdodc1.Recordset.EOF=TrueThenMsgBox"用戶(hù)名錯(cuò)誤,請(qǐng)重新輸入",vbExlamation,"警告"Text1.Text=""Text1.SetFocusElseIfAdodc1.Recordset.Fields("密碼")=Text2.TextThenMDIForm1.ShowUnloadMeElseMsgBox"密碼錯(cuò)誤,請(qǐng)重新輸入",vbExlamation,"警告"Text2.Text=""Text2.SetFocusEndIfEndIfmiCount=miCount+1IfmiCount>=3ThenUnloadMe3)設(shè)計(jì)讀者管理窗體(1)設(shè)計(jì)界面PrivateSubForm_Load()CmdFirst.Enabled=FalseCmdPre.Enabled=FalseCmdNext.Enabled=TrueCmdLast.Enabled=TrueCmdAdd.Enabled=TrueCmdDel.Enabled=TrueCmdOk.Enabled=FalseCmdCancel.Enabled=FalseEndSubPrivateSubCmdAdd_Click()Adodc1.Recordset.AddNewCmdAdd.Enabled=FalseCmdDel.Enabled=FalseCmdOk.Enabled=TrueCmdCancel.Enabled=TrueEndSubPrivateSubCmdOk_Click()Adodc1.Recordset.UpdateCmdAdd.Enabled=TrueCmdDel.Enabled=TrueCmdOk.Enabled=FalseCmdCancel.Enabled=FalseEndSubPrivateSubCmdDel_Click()x=MsgBox("確實(shí)要?jiǎng)h除當(dāng)前記錄嗎?",vbYesNo+vbQuestion)Ifx=vbYesThenAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIfAdodc1.Recordset.EOF=TrueThenAdodc1.Recordset.MoveLastEndIfElseAdodc1.RefreshEndIfEndSubPrivateSubCmdCancel_Click()Adodc1.RefreshCmdAdd.Enabled=TrueCmdDel.Enabled=TrueCmdOk.Enabled=FalseCmdCancel.Enabled=FalseEndSubPrivateSubCmdFirst_Click()Adodc1.Recordset.MoveFirstCmdFirst.Enabled=FalseCmdPre.Enabled=FalseCmdNext.Enabled=TrueCmdLast.Enabled=TrueEndSubPrivateSubCmdPre_Click()Adodc1.Recordset.MovePreviousCmdNext.Enabled=TrueCmdLast.Enabled=TrueIfAdodc1.Recordset.BOF=TrueThenAdodc1.Recordset.MoveFirstCmdFirst.Enabled=FalseCmdPre.Enabled=FalseEndIfEndSubPrivateSubCmdNext_Click()Adodc1.Recordset.MoveNextCmdFirst.Enabled=TrueCmdPre.Enabled=TrueIfAdodc1.Recordset.EOF=TrueThenAdodc1.Recordset.MoveLastCmdLast.Enabled=FalseCmdNext.Enabled=FalseEndIfEndSubPrivateSubCmdLast_Click()Adodc1.Recordset.MoveLastCmdFirst.Enabled=TrueCmdPre.Enabled=TrueCmdNext.Enabled=FalseCmdLast.Enabled=FalseEndSub4)設(shè)計(jì)讀者查詢(xún)窗體(1)設(shè)計(jì)界面其中Adodc1連接到讀者表,在“記錄源”選項(xiàng)卡中,選擇命令類(lèi)型。1-adCmdText,在“命令文本”文本框中輸入SQL語(yǔ)句select*from讀者表。(2)編寫(xiě)代碼PrivateSubForm_Load()'窗體裝載代碼Combo1.AddItem"借書(shū)證號(hào)"Combo1.AddItem"讀者姓名"Combo1.AddItem"是否有超期"Combo1.Text="借書(shū)證號(hào)"Text1.Text=""EndSubPrivateSubCommand1_Click()'“查詢(xún)”按鈕代碼DimstrAsStringstr="select*from讀者表where讀者表."&Combo1.Text&"like'"&Text1.Text&"%'“Adodc1.RecordSource=strAdodc1.RefreshEndSub'“返回”按鈕代碼PrivateSubCommand2_Click()UnloadMeEndSub5)設(shè)計(jì)圖書(shū)管理窗體、圖書(shū)查詢(xún)窗體圖書(shū)管理與查詢(xún)窗體與讀者管理與查詢(xún)窗體功能類(lèi)似。不再贅述6)設(shè)計(jì)借閱管理窗體(1)設(shè)計(jì)界面借書(shū)時(shí)需輸入讀者的借書(shū)證號(hào)及書(shū)的條形碼號(hào),然后單擊“借書(shū)”按鈕,實(shí)現(xiàn)借書(shū)功能;還書(shū)時(shí)單擊“還書(shū)”按鈕,實(shí)現(xiàn)還書(shū)功能。借書(shū)時(shí)首先看讀者是否有超期書(shū),如果有則不允許再借書(shū),然后根據(jù)讀者是學(xué)生還是教師,判斷所借書(shū)數(shù)是否達(dá)到最多,如果已達(dá)到最多,給出提示:“借書(shū)數(shù)量達(dá)到最多,不能再借!”,兩個(gè)條件都允許,則可以借書(shū),借書(shū)時(shí)先在圖書(shū)表中根據(jù)條形碼號(hào)寫(xiě)入該書(shū)的借閱狀態(tài)值為“借出”,同時(shí)將“借閱次數(shù)”加1,然后在借閱表中添加借閱記錄。單擊“還書(shū)”銨鈕,先還書(shū),再判斷是否超期。還書(shū)時(shí),在借閱表中寫(xiě)上“歸還日期”,同時(shí)在圖書(shū)表中把該書(shū)的“借閱狀態(tài)”值改為“在庫(kù)”。如果超期,則顯示罰款窗口,進(jìn)行罰款處理。(2)代碼參考教材:7)設(shè)計(jì)罰款管理窗體(1)設(shè)計(jì)窗體(2)代碼參考教材8)設(shè)計(jì)圖書(shū)借閱排行報(bào)表首先,在數(shù)據(jù)環(huán)境設(shè)計(jì)器中添加一個(gè)連接“圖書(shū)管理”.然后添加三個(gè)命令對(duì)象“借閱管理”“罰款管理”“圖書(shū)借閱排行”。設(shè)置“借閱管理”命令對(duì)象的SQL語(yǔ)句如下:SELECT讀者表.借書(shū)證號(hào),讀者表.讀者姓名,圖書(shū)表.書(shū)名,借閱表.借出日期,借閱表.歸還日期FROM讀者表INNERJOIN借閱表ON讀者表.借書(shū)證號(hào)=借閱表.借書(shū)證號(hào)INNERJOIN圖書(shū)表ON借閱表.條形碼號(hào)=圖書(shū)表.條形碼號(hào)設(shè)置“罰款管理”命令對(duì)象的SQL語(yǔ)句如下:SELECT讀者表.借書(shū)證號(hào),讀者表.讀者姓名,圖書(shū)表.書(shū)名,罰款表.超期天數(shù),罰款表.罰款金額,罰款表.處罰日期FROM讀者表INNERJOIN罰款表ON讀者表.借書(shū)證號(hào)=罰款表.借書(shū)證號(hào)INNERJOIN圖書(shū)表ON罰款表.條形碼號(hào)=圖書(shū)表.條形碼號(hào)。設(shè)置“圖書(shū)借閱排行”語(yǔ)句如下:SELECT圖書(shū)編號(hào),書(shū)名,SUM(借閱次數(shù))AS次數(shù)FROM圖書(shū)表GROUPBY圖書(shū)編號(hào),書(shū)名ORDERBY次數(shù)DESC“圖書(shū)借閱排行”報(bào)表運(yùn)行結(jié)果11.2招聘管理系統(tǒng)的設(shè)計(jì)本例以招聘管理系統(tǒng)為例說(shuō)明如何用ADO對(duì)象編寫(xiě)應(yīng)用程序。11.2.1需求分析招聘管理用于管理企業(yè)招聘新員工的全過(guò)程,主要功能包括應(yīng)聘人員登記、應(yīng)聘人員初選、應(yīng)聘人員面試和應(yīng)聘人員錄用。11.2.2概念結(jié)構(gòu)設(shè)計(jì)經(jīng)分析,此系統(tǒng)涉及到的主體只有應(yīng)聘人員和評(píng)委兩個(gè)實(shí)體集之間存在初選、面試和錄用的聯(lián)系,據(jù)此可畫(huà)出此系統(tǒng)的E-R圖1面試地點(diǎn)應(yīng)聘人員初選錄用是否錄用開(kāi)始錄用日期m1p面試r1錄用情況綜合考核分業(yè)務(wù)能力評(píng)委綜合評(píng)分初選狀態(tài)外表形象領(lǐng)悟反應(yīng)能力綜合評(píng)分其中應(yīng)聘人員與其屬性關(guān)系如圖所示應(yīng)聘人員編號(hào)姓名性別外語(yǔ)水平電話應(yīng)聘人員評(píng)委與其屬性關(guān)系如圖所示評(píng)委評(píng)委編號(hào)部門(mén)姓名11.2.3邏輯結(jié)構(gòu)設(shè)計(jì)登記表(應(yīng)聘人編號(hào),姓名,性別,電話,外語(yǔ)水平)評(píng)委表(評(píng)委編號(hào),評(píng)委姓名,部門(mén))初選表(應(yīng)聘人編號(hào),計(jì)算機(jī)能力,業(yè)務(wù)能力,綜合評(píng)分,初選狀態(tài)),根據(jù)實(shí)際情況,去掉了評(píng)委編號(hào)屬性。面試表(應(yīng)聘人編號(hào),初選評(píng)分,外表形象,領(lǐng)悟反應(yīng)能力,綜合評(píng)分,面試地點(diǎn),面試人號(hào),錄用情況).面試時(shí),往往要參考應(yīng)聘人的初選評(píng)分,所以增加了一個(gè)“初選評(píng)分”屬性。錄用表(應(yīng)聘人編號(hào),面試分,筆試分,綜合考核分,開(kāi)始錄用日期,是否錄用)

為了保證系統(tǒng)的安全性,采用了登錄的措施,用戶(hù)名和密碼存放在系統(tǒng)表中。系統(tǒng)表(姓名,密碼)11.2.4規(guī)范化分析其中的“登記表”、“評(píng)委表”和“系統(tǒng)表”三個(gè)關(guān)系模式中的主碼是本模式的唯一決定因素,所以這三個(gè)關(guān)系模式都屬于BCNF;但在“初選表”中,綜合評(píng)分=(計(jì)算機(jī)能力+業(yè)務(wù)能力)/2,“初選狀態(tài)”也由“綜合評(píng)分”來(lái)定,與“圖書(shū)館管理系統(tǒng)”案例中的分析類(lèi)似?!俺踹x表”屬于2NF,其中的“綜合評(píng)分”和“初選狀態(tài)”兩個(gè)屬性值是冗余數(shù)據(jù),但評(píng)委往往既關(guān)心“計(jì)算機(jī)能力”和“業(yè)務(wù)能力”,又關(guān)心“綜合評(píng)分”和“初選狀態(tài)”,所以“綜合評(píng)分”和“初選狀態(tài)”是必要的冗余。在“面試表”和“錄用表”中也有類(lèi)似的情況。

11.2.5在SQLServer2000中創(chuàng)建數(shù)據(jù)庫(kù)各表格的結(jié)構(gòu)如下:字段名

數(shù)據(jù)類(lèi)型長(zhǎng)度

姓名

char 10 密碼

char 6 字段名

數(shù)據(jù)類(lèi)型

長(zhǎng)度

評(píng)委編號(hào)

char

4 評(píng)委姓名

varchar

20

部門(mén)

varcha

20 字段名

數(shù)據(jù)類(lèi)型

長(zhǎng)度

應(yīng)聘人編號(hào)char

3 姓名

varchar

20 性別

char

2 電話

varcha

12 外語(yǔ)水平

char

4 評(píng)委表的結(jié)構(gòu)字段名

數(shù)據(jù)類(lèi)型

長(zhǎng)度

應(yīng)聘人編號(hào)

char

3 計(jì)算機(jī)能力

char

10 業(yè)務(wù)能力

smallint

2 綜合評(píng)分

smallint

2 初選狀態(tài)

char 6初選表的結(jié)構(gòu)字段名

數(shù)據(jù)類(lèi)型

長(zhǎng)度

應(yīng)聘人編號(hào)char

3初選評(píng)分

smallint

2 外表形象

smallint

2 領(lǐng)悟反應(yīng)能力smallint

2 綜合評(píng)分

smallint

2 面試地點(diǎn)

varchar

20 面試人號(hào)

char

4 錄用情況

varchar

6 面試表的結(jié)構(gòu)字段名

數(shù)據(jù)類(lèi)型

長(zhǎng)度

應(yīng)聘人編號(hào)char

3 面試分

smallint

2 筆試分

smallint

2 綜合考核分smallint

2 開(kāi)始錄用日期datetime

8 是否錄用

char

2 表11.15錄用表的結(jié)構(gòu)1.招聘管理系統(tǒng)的功能模塊招聘管理系統(tǒng)系統(tǒng)管理招聘管理信息查詢(xún)打印報(bào)表2.配置數(shù)據(jù)源。利用ODBC數(shù)據(jù)源管理器配置一個(gè)連接到“招聘管理”數(shù)據(jù)庫(kù)的數(shù)據(jù)源,名為zhpgl。3.設(shè)計(jì)各個(gè)窗體。1)設(shè)計(jì)主窗體。從主窗體中可以打開(kāi)各個(gè)功能的窗口。菜單的結(jié)構(gòu)標(biāo)題及位置 名稱(chēng) 標(biāo)題及位置 名稱(chēng) 文件 m_file …面試情況 m_qmianshi …登錄 m_login …錄用情況 m_qluyong …退出 m_exitt 統(tǒng)計(jì)報(bào)表 m_baobiao 數(shù)據(jù)管理 m_data …初選名單 m_pchuxuan …招聘管理 m_zhaopin…面試通過(guò)名單m_pmianshi 查詢(xún)信息 m_chaxun…錄用名單 m_pluyong …初選情況 m_qchuxuan 2)設(shè)計(jì)登錄窗體(2)編寫(xiě)程序如下:在“通用”和“聲明”欄內(nèi),編寫(xiě)代碼如下:DimcnAsNewADODB.ConnectionDimrstAsNewADODB.RecordsetPrivateSubForm_Load()'窗體裝載代碼DimsAsStrings="DSN=zhpgl;uid=sa;pwd=sa"cn.Openscn.CursorLocation=adUseClientEndSubPrivateSubcmdOk_Click()'“確定”按鈕單擊事件的代碼rst.Open"select*from系統(tǒng)表where姓名='"&Text1&"'",cnIfrst.BOFAndrst.EOFThenMsgBox"無(wú)效用戶(hù)名,請(qǐng)重新輸入。",vbCritical,"錯(cuò)誤"Text1=""Text1.SetFocusElseIfText2=rst.Fields("密碼")ThenMsgBox"登錄成功!",vbInformationMDIzhaopin.m_zhaopin.Enabled=TrueMDIzhaopin.m_chaxun.Enabled=TrueMDIzhaopin.m_baobiao.Enabled=TrueMe.HideElseMsgBox"密碼錯(cuò)誤,請(qǐng)重新輸入",vbCritical,"錯(cuò)誤"Text2.Text=""Text2.SetFocusEndIfrst.CloseEndSub3)設(shè)計(jì)招聘管理窗體招聘管理窗體用SSTab控件實(shí)現(xiàn)登記管理、初選管理、面試管理和錄用管理4個(gè)功能,在登記管理選項(xiàng)卡中有4個(gè)命令按扭:“添加”(Cmd0Add)、“確定”(Cmd0Ok)、“刪除”(Cmd0Del)和“退出”(Cmd0Exit),分別實(shí)現(xiàn)添加記錄、存入數(shù)據(jù)庫(kù)、刪除記錄和退出本窗體的功能。在“初選”、“面試”和“錄用”選項(xiàng)卡中都有“導(dǎo)入數(shù)據(jù)”、“確定”和“退出”4個(gè)命令按鈕,分別實(shí)現(xiàn)從其他表中導(dǎo)入數(shù)據(jù)、存入數(shù)據(jù)庫(kù)和退出本窗體的功能。例如,在“初選”選項(xiàng)卡中單擊“導(dǎo)入數(shù)據(jù)”(Cmd1Import)命令按鈕就從登記表中把登記人員的編號(hào)導(dǎo)入初選表中來(lái),單擊“確定”(Cmd1Ok)命令按鈕就可以計(jì)算當(dāng)前受聘者的“綜合評(píng)分”和“初選狀態(tài)”并存入數(shù)據(jù)庫(kù)中。(2)編寫(xiě)程序在“通用”“聲明”段內(nèi),聲明如下對(duì)象變量:DimcnAsNewADODB.ConnectionDimrst0AsNewADODB.Recordset'定義用于存放登記表的記錄集Dimrst1AsNewADODB.Recordset'定義用于存放初選表的記錄集Dimrst2AsNewADODB.Recordset'定義用于存放面試表的記錄集Dimrst3AsNewADODB.Recordset'定義用于存放錄用表的記錄集PrivateSubForm_Load()cn.Open"DSN=zhpgl;uid=sa;pwd=sa"cn.CursorLocation=adUseClientrst0.LockType=adLockPessimistic'允許更新記錄集rst1.LockType=adLockPessimisticrst2.LockType=adLockPessimisticrst3.LockType=adLockPessimisticrst0.Open"select*from登記表",cnSetDataGrid1.DataSource=rst0'設(shè)置DataGrid1的數(shù)據(jù)源rst1.Open"select*from初選表",cnSetDataGrid2.DataSource=rst1Ifrst1.RecordCount<>0Then'如果初選表中有記錄,就不能從登記表中導(dǎo)入數(shù)據(jù)Cmd1Import.Enabled=FalseEndIfrst2.Open"select*from面試表",cnSetDataGrid3.DataSource=rst2Ifrst2.RecordCount<>0ThenCmd2Import.Enabled=FalseEndIf

rst3.Open"select*from錄用表",cnSetDataGrid4.DataSource=rst3Ifrst3.RecordCount<>0ThenCmd3Import.Enabled=FalseEndIfEndSubPrivateSubCmd0Add_Click()'“登記”選項(xiàng)卡中“添加”按鈕單擊事件的代碼rst0.AddNewEndSubPrivateSubCmd0Ok_Click()'“登記”選項(xiàng)卡中“確定”按鈕單擊事件的代碼rst0.Updaterst0.Sort="應(yīng)聘人編號(hào)"EndSubPrivateSubCmd0Del_Click()'“登記”選項(xiàng)卡中“刪除”按鈕單擊事件的代碼x=MsgBox("確定要?jiǎng)h除嗎?",vbYesNoCancel+vbQuestion,"確認(rèn)")Ifx=vbYesThenrst0.DeleteEndIfEndSubPrivateSubCmd1Import_Click()'“初選”選項(xiàng)卡中“導(dǎo)入數(shù)據(jù)”按鈕單擊事件的代碼'把登記表中的應(yīng)聘人編號(hào)轉(zhuǎn)到初選表中來(lái)rst0.MoveFirstFori=1Torst0.RecordCountrst1.AddNewrst1.Fields("應(yīng)聘人編號(hào)")=rst0.Fields("應(yīng)聘人編號(hào)")rst0.MoveNextrst1.MoveNextNextiCmd1Import.Enabled=False'只能導(dǎo)一次數(shù)據(jù)EndSubPrivateSubCmd1Ok_Click()'“初選”選項(xiàng)卡中“確定”按鈕單擊事件的代碼rst1.Fields("綜合評(píng)分")=(Val(rst1.Fields("計(jì)算機(jī)能力"))+rst1.Fields("業(yè)務(wù)能力"))*0.5Ifrst1.Fields("綜合評(píng)分")>=6Thenrst1.Fields("初選狀態(tài)")="通過(guò)"Elserst1.Fields("初選狀態(tài)")="未通過(guò)"EndIfrst1.Updaterst1.Sort="應(yīng)聘人編號(hào)"EndSubPrivateSubCmd2Import_Click()'“面試”選項(xiàng)卡中“導(dǎo)入數(shù)據(jù)”按鈕單擊事件的代碼'把初選表中通過(guò)的應(yīng)聘人編號(hào)、初選評(píng)分轉(zhuǎn)到面試表中來(lái)rst1.Closerst1.Open"select*from初選表where初選狀態(tài)='通過(guò)'",cnrst1.MoveFirstFori=1Torst1.RecordCountrst2.AddNewrst2.Fields("應(yīng)聘人編號(hào)")=rst1.Fields("應(yīng)聘人編號(hào)")rst2.Fields("初選評(píng)分")=rst1.Fields("綜合評(píng)分")rst1.MoveNextNextirst2.UpdateCmd2Import.Enabled=FalseEndSubPrivateSubCmd2Ok_Click()'“面試”選項(xiàng)卡中“確定”按鈕單擊事件的代碼rst2.Fields("綜合評(píng)分")=(rst2.Fields("初選評(píng)分")+rst2.Fields("外表形象")+rst2.Fields("領(lǐng)悟反應(yīng)能力"))/3Ifrst2.Fields("綜合評(píng)分")>=6Thenrst2.Fields("錄用情況")="通過(guò)"Elserst2.Fields("錄用情況")="未通過(guò)"EndIfrst2.Updaterst2.Sort="應(yīng)聘人編號(hào)"rst2.MoveLastEndSubPrivateSubCmd3Import_Click()'“錄用”選項(xiàng)卡中“導(dǎo)入數(shù)據(jù)”按鈕單擊事件的代碼'把面試表中通過(guò)的應(yīng)聘人編號(hào)、面試分轉(zhuǎn)到錄用表中來(lái)rst2.Closerst2.Open"select*from面試表where錄用情況='通過(guò)'",cnrst2.MoveFirstFori=1Torst2.RecordCountrst3.AddNewrst3.Fields("應(yīng)聘人編號(hào)")=rst2.Fields("應(yīng)聘人編號(hào)")rst3.Fields("面試分")=rst2.Fields("綜合評(píng)分")rst3.Fields("開(kāi)始錄用日期")=Daterst2.MoveNextNextiCmd3Import.Enabled=FalseEndSubPrivateSubCmd3Ok_Click()'“錄用”選項(xiàng)卡中“確定”按鈕單擊事件的代碼rst3.Fields("綜合考核分")=(rst3.Fields("面試分")+rst3.Fields("筆試分"))/2Ifrst3.Fields("綜合考核分")>=6Thenrst3.Fields("是否錄用")="是"Elserst3.Fields("是否錄用")="否"EndIfrst3.Updaterst3.Sort="應(yīng)聘人編號(hào)"rst3.MoveLastEndSub'選項(xiàng)卡的單擊事件過(guò)程代碼如下PrivateSubSSTab1_Click(PreviousTabAsInteger)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論