![數(shù)據(jù)庫(kù)課程設(shè)計(jì)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/9ac5bd58-1789-472d-ab1f-e926db6a5045/9ac5bd58-1789-472d-ab1f-e926db6a50451.gif)
![數(shù)據(jù)庫(kù)課程設(shè)計(jì)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/9ac5bd58-1789-472d-ab1f-e926db6a5045/9ac5bd58-1789-472d-ab1f-e926db6a50452.gif)
![數(shù)據(jù)庫(kù)課程設(shè)計(jì)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/9ac5bd58-1789-472d-ab1f-e926db6a5045/9ac5bd58-1789-472d-ab1f-e926db6a50453.gif)
![數(shù)據(jù)庫(kù)課程設(shè)計(jì)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/9ac5bd58-1789-472d-ab1f-e926db6a5045/9ac5bd58-1789-472d-ab1f-e926db6a50454.gif)
![數(shù)據(jù)庫(kù)課程設(shè)計(jì)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/9ac5bd58-1789-472d-ab1f-e926db6a5045/9ac5bd58-1789-472d-ab1f-e926db6a50455.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目 錄 第1章 概論3第2章 需求分析32.1 總體需求分析32.1.1 信息需求3 2.1.2 處理需求32.2 數(shù)據(jù)流圖描述4 2.3 數(shù)據(jù)字典4 2.3.1 數(shù)據(jù)項(xiàng)42.3.2 數(shù)據(jù)結(jié)構(gòu)52.3.3 數(shù)據(jù)流7第3章 概念設(shè)計(jì)73.1 確定實(shí)體集、聯(lián)系及屬性73.2 局部ER模型83.3 全局ER模型9 第4章 邏輯設(shè)計(jì)10 4.1 ER圖轉(zhuǎn)換為關(guān)系模型10 4.2 模式分解11 4.3 完整性與用戶(hù)子模式設(shè)計(jì)11 第5章 物理設(shè)計(jì)11第6章 數(shù)據(jù)庫(kù)實(shí)施及維護(hù)11 6.1 建立數(shù)據(jù)庫(kù)結(jié)構(gòu)12 6.2 數(shù)據(jù)加載126.3 編寫(xiě)和調(diào)試應(yīng)用程序12 6.3.1 窗體和報(bào)表的設(shè)計(jì)126.3.2 功
2、能代碼編寫(xiě)與程序調(diào)試19第7章 結(jié)束語(yǔ)24參考文獻(xiàn)261 概論 醫(yī)務(wù)管理系統(tǒng)是當(dāng)今各個(gè)醫(yī)院登記醫(yī)務(wù)人員及病人信息所必須擁有的,一個(gè)良好的醫(yī)務(wù)管理系統(tǒng)可以為一個(gè)醫(yī)務(wù)室提供便利及方便,應(yīng)能使得醫(yī)務(wù)管理工作簡(jiǎn)單、高效且須擁有友好的用戶(hù)使用界面。出于這個(gè)目的,我本次的數(shù)據(jù)庫(kù)課程設(shè)計(jì)的內(nèi)容為設(shè)計(jì)一個(gè)基于小型的醫(yī)務(wù)診所規(guī)模的醫(yī)務(wù)管理系統(tǒng)。這個(gè)系統(tǒng)將選用Access2007為數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)。主要是面向華中科技大學(xué)校醫(yī)院的工作人員及其病人,為他們提供相關(guān)服務(wù)。數(shù)據(jù)庫(kù)已成為現(xiàn)代信息系統(tǒng)的計(jì)算機(jī)系統(tǒng)的基礎(chǔ)與核心部分。數(shù)據(jù)庫(kù)設(shè)計(jì)的好壞直接影響著整個(gè)系統(tǒng)的效率和質(zhì)量。然而,由于數(shù)據(jù)庫(kù)系統(tǒng)的復(fù)雜性和它與環(huán)境
3、的密切聯(lián)系,數(shù)據(jù)庫(kù)設(shè)計(jì)變得比較復(fù)雜和費(fèi)時(shí)。所以,本次數(shù)據(jù)庫(kù)技術(shù)課程設(shè)計(jì)應(yīng)有一顆冷靜沉著的心態(tài)。2 需求分析2.1 總體需求分析 醫(yī)務(wù)管理系統(tǒng)是實(shí)現(xiàn)醫(yī)務(wù)信息存儲(chǔ)、添加、修改及查詢(xún)的窗口,它管理的信息包括科室信息、病房信息、病人信息以及醫(yī)生信息。其中不同的群體對(duì)數(shù)據(jù)有著不同的需求和權(quán)限,數(shù)據(jù)庫(kù)管理員或醫(yī)務(wù)處相關(guān)人員應(yīng)該擁有所有的管理權(quán)限;醫(yī)生需要了解醫(yī)務(wù)任務(wù)及病人的基本信息,且應(yīng)具有錄入病人病歷號(hào),病人診斷身體狀況信息以及無(wú)修改的權(quán)限;病人主要需要知道自己病房號(hào)、床位號(hào)以及主治醫(yī)生且無(wú)修改的權(quán)限。因此,該醫(yī)務(wù)管理系統(tǒng)應(yīng)提供不同的類(lèi)型入口,通過(guò)身份驗(yàn)證來(lái)決定訪(fǎng)問(wèn)權(quán)限,從而滿(mǎn)足不同類(lèi)型的人的需求。 具
4、體地說(shuō),由于主要面對(duì)醫(yī)生和相應(yīng)的病人,本醫(yī)務(wù)管理系統(tǒng)應(yīng)能方便的滿(mǎn)足以下需求:21.1 信息需求對(duì)于病人,信息需求為病人個(gè)人信息、個(gè)人病房信息、病人診治信息;對(duì)于醫(yī)生,信息需求為病人個(gè)人信息、醫(yī)生個(gè)人信息、醫(yī)生所屬科室信息。因此,數(shù)據(jù)庫(kù)中應(yīng)該存儲(chǔ)以下數(shù)據(jù):病人和醫(yī)生個(gè)人信息數(shù)據(jù),醫(yī)院各科室信息數(shù)據(jù)以及醫(yī)院安排事務(wù)數(shù)據(jù)。2.1.2 處理需求總的來(lái)說(shuō),處理需求主要分成以下兩項(xiàng):(1)各種數(shù)據(jù)的添加和修改;(2)相關(guān)行數(shù)據(jù)的統(tǒng)計(jì)與查詢(xún); 由于不同用戶(hù)的訪(fǎng)問(wèn)權(quán)限不同,所以需要設(shè)計(jì)不同的用戶(hù)界面和用戶(hù)操作規(guī)則來(lái)保證系統(tǒng)的正常運(yùn)行。其實(shí)由于權(quán)限的顯著差別,醫(yī)生和病人的界面不會(huì)有較大的差別。醫(yī)生應(yīng) 能查詢(xún)其個(gè)
5、人信息,所有病人的個(gè)人信息以及病人診治身體狀況信息,完整的醫(yī)務(wù)任務(wù)分配信息;病人只能查詢(xún)病人個(gè)人信息,病房及病床號(hào)信息以及診治時(shí)間信息,但不能查詢(xún)其他人的信息。另外,醫(yī)生可以修改和輸入病人診治時(shí)間以及病人的身體狀況信息。醫(yī)務(wù)管理員可以修改和輸入醫(yī)院安排事務(wù)數(shù)據(jù),而病人可以有輸入和修改個(gè)人信息的權(quán)限。2.2 數(shù)據(jù)流圖描述根據(jù)系統(tǒng)對(duì)象和功能可分成兩步畫(huà)出數(shù)據(jù)流圖,其中第一層將整個(gè)系統(tǒng)當(dāng)成一個(gè)整體,且不考慮數(shù)據(jù)存儲(chǔ),并將輸入和輸出分開(kāi),如圖1所示: 病人醫(yī)務(wù)編排人員醫(yī)務(wù)管理系統(tǒng) 醫(yī)務(wù)安排病人個(gè)人信息查詢(xún) 已診治信息查詢(xún)所需診治信息病人所需診治信息診治時(shí)間查詢(xún)醫(yī)務(wù)管理人員 醫(yī)生病人個(gè)人信息 醫(yī)生醫(yī)生個(gè)
6、人信息醫(yī)生個(gè)人信息查詢(xún)已診治信息已診治信息醫(yī)務(wù)安排事務(wù)查詢(xún) 圖1 醫(yī)務(wù)管理系統(tǒng)第一層數(shù)據(jù)庫(kù)第二層將整個(gè)系統(tǒng)功能細(xì)化且引入數(shù)據(jù)存儲(chǔ),并將輸入和輸出實(shí)體合并為數(shù)據(jù)流圖的處理對(duì)象,如圖2所示(因排版需求,圖2見(jiàn)第4頁(yè)) 2.3 數(shù)據(jù)字典2.3.1 數(shù)據(jù)項(xiàng)表1 數(shù)據(jù)項(xiàng)列表數(shù)據(jù)項(xiàng)名 數(shù)據(jù)類(lèi)型 長(zhǎng)度取值范圍 備注姓名 字符型 20 病歷號(hào)字符型10 性別字符型2 “男”,“女”政治面貌字符型4“黨員”,“群眾”,“團(tuán)員”出生年月日期型8格式為yyyy-ww-zz電話(huà)號(hào)碼字符型11病房號(hào)字符型3病床號(hào)字符型2診治時(shí)間日期型8格式為yyyy-ww-zz醫(yī)生證號(hào)字符型3身體狀況字符型1“A”,“B”,“C”,“
7、D”科室編號(hào)字符型3科室地址字符型40醫(yī)生年齡字符型20,150醫(yī)生職稱(chēng)字符型8科室名稱(chēng)字符型20科室電話(huà)字符型11 數(shù)據(jù)結(jié)構(gòu) 表2 數(shù)據(jù)結(jié)構(gòu)列表數(shù)據(jù)結(jié)構(gòu)名稱(chēng)醫(yī)生表描述對(duì)象醫(yī)生組成姓名,性別,職稱(chēng),所屬科室編號(hào),年齡,工作編號(hào)病房表病房病房號(hào),病床號(hào),所屬科室編號(hào)科室表科室科室名,科室編號(hào),科室地址,科電話(huà)住宿表病人住處病歷號(hào),病房號(hào),病床號(hào)屬于表病房所屬科室病房號(hào),科室編號(hào)主管表醫(yī)生醫(yī)治病人病歷號(hào),工作證號(hào),診治時(shí)間,身體狀況工作表醫(yī)生工作地工作證號(hào),科室編號(hào)病人表病人姓名,性別,年齡,病歷號(hào),政治面貌,診斷,主治醫(yī)生,病房號(hào)診治信息管理醫(yī)務(wù)信息數(shù)據(jù)庫(kù)個(gè)人信息數(shù)據(jù)庫(kù)診治信息數(shù)據(jù)庫(kù)注冊(cè)信息管理
8、醫(yī)務(wù)管理醫(yī)務(wù)編排人員病人醫(yī)生醫(yī)務(wù)管理人員醫(yī)務(wù)編排醫(yī)務(wù)信息查詢(xún)已診治結(jié)果醫(yī)務(wù)安排信息所需診治信息 診治安排查詢(xún)結(jié)果診治信息病人個(gè)人信息病人個(gè)人信息查詢(xún)個(gè)人注冊(cè)信息醫(yī)生個(gè)人信息查詢(xún)個(gè)人基本信息醫(yī)生個(gè)人信息已診治信息查詢(xún)已診治信息已診治信息已診治信息圖2 醫(yī)務(wù)管理系統(tǒng)第二層數(shù)據(jù)流圖2.3.3 數(shù)據(jù)流數(shù)據(jù)流名:已診治信息結(jié)果說(shuō)明: 提供病人已被診治后的身體狀況信息,診治費(fèi)用,診治項(xiàng)目,診治醫(yī)生以及診治所花時(shí)間來(lái)源: 診治信息管理子系統(tǒng)去向: 病人數(shù)據(jù)結(jié)構(gòu):病歷號(hào) 所需診治項(xiàng)目 診治費(fèi)用 診治醫(yī)生、 已診治后的身體狀況等級(jí)數(shù)據(jù)流名:醫(yī)務(wù)安排診治信息說(shuō)明: 提供給所有用戶(hù)有關(guān)醫(yī)務(wù)安排的信息來(lái)源: 醫(yī)務(wù)管理
9、子系統(tǒng)去向: 所有用戶(hù)數(shù)據(jù)結(jié)構(gòu):所需診治項(xiàng)目 診治醫(yī)生 診治時(shí)間 診治地點(diǎn) 診治前的身體狀況等級(jí) 因?yàn)閿?shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告(參考材料)中對(duì)教學(xué)管理的數(shù)據(jù)字典都沒(méi)有含有數(shù)據(jù)存儲(chǔ)及處理過(guò)程的相關(guān)描述,在加上這兩個(gè)過(guò)程與數(shù)據(jù)流的描述相差無(wú)幾,故在此不再贅述。3 概念設(shè)計(jì)3.1 確定實(shí)體集、聯(lián)系及屬性 結(jié)合數(shù)字字典可得實(shí)體、聯(lián)系及其屬性如下:病人(姓名,性別,年齡,病歷號(hào),政治面貌,診斷,主治醫(yī)生,病房號(hào))醫(yī)生(姓名,性別,年齡,工作證號(hào),所屬科室編號(hào),職稱(chēng))病房(病房號(hào),病床號(hào),所屬科室號(hào))科室(科室名,科室編號(hào),科室地址,科電話(huà))住宿(病歷號(hào),病床號(hào),病房號(hào))屬于(病房號(hào),科室編號(hào))工作(工作證號(hào),
10、科室編號(hào))主管(病歷號(hào),工作證號(hào),診治時(shí)間,身體狀況) 對(duì)于實(shí)體之間的聯(lián)系,考慮到一個(gè)科室有多個(gè)醫(yī)生,一個(gè)病房只能屬于一個(gè)科室,一個(gè)醫(yī)生只屬于一個(gè)科室,但可以負(fù)責(zé)多個(gè)病人的診治,一個(gè)病人的主治醫(yī)生只能有一個(gè)。因此,住宿的類(lèi)型為1:n,屬于的類(lèi)型為1:n,工作的類(lèi)型為1:n,主管的類(lèi)型為1:n。根據(jù)以分析,可以畫(huà)出如下所示的ER圖。3.2 局部ER模型主管 醫(yī)生 病人 以屬于、住宿、主管和工作4個(gè)聯(lián)系作為基礎(chǔ),可畫(huà)出4個(gè)局部ER圖。診治時(shí)間姓名職稱(chēng)性別病歷號(hào)性別年齡年齡身體狀況工作證號(hào)診斷姓名N 1 圖3 局部ER圖主管 性別病歷號(hào)病房號(hào)住宿診斷 年齡 姓名 病床號(hào) 病人 病房N1 圖4 局部E
11、R圖住宿職稱(chēng)科室編號(hào)工作證號(hào) 工作科電話(huà)科室地址科室名姓名性別科室 醫(yī)生N1年齡圖5 局部ER圖工作 科電話(huà) 科室地址科室編號(hào)科室名 病房 病床號(hào)病房號(hào)屬于 科室 N1圖6 局部ER圖屬于3.3 全局ER模型由以上局部模型很容易確定4種之間的公共實(shí)體分別為病房、病人、醫(yī)生、科室。所以合并公共實(shí)體即可得到全局ER圖,且無(wú)冗余和沖突。如下圖所示, 病房號(hào)病床號(hào) 病房政治面貌姓名性別 病歷號(hào)年齡身體狀況診治時(shí)間職稱(chēng) 年齡性別工作證號(hào)科室名字科室編號(hào)科電話(huà)科室地址住宿屬于主管工作病人 醫(yī)生 科室N11 N1 N 姓名N1圖7 全局ER圖 4 邏輯設(shè)計(jì)4.1 ER圖轉(zhuǎn)換為關(guān)系模式根據(jù)ER圖,應(yīng)用以下規(guī)則
12、將ER模式轉(zhuǎn)化為關(guān)系模式:(1)、實(shí)體之間的轉(zhuǎn)換:將每個(gè)試題類(lèi)型轉(zhuǎn)換為一個(gè)關(guān)系模式,實(shí)體的屬性即為關(guān)系模式的的屬性,實(shí)體標(biāo)識(shí)符即為關(guān)系模式的鍵。(2)、聯(lián)系類(lèi)型的轉(zhuǎn)換:將聯(lián)系為1:N和M:N的聯(lián)系類(lèi)型轉(zhuǎn)換為單獨(dú)的關(guān)系模式,其鍵為兩端實(shí)體鍵的組合。 這樣,可得關(guān)系模式如下:病人(病歷號(hào),姓名,性別,政治面貌,年齡)醫(yī)生(工作證號(hào),姓名,性別,年齡,職稱(chēng))病房(病房號(hào),病床號(hào))科室(科室編號(hào),科電話(huà),科室地址,科室名稱(chēng))工作(工作證號(hào),科室編號(hào))住宿(病房號(hào),病歷號(hào))主管(工作證號(hào),病歷號(hào),身體狀況,診治時(shí)間)屬于(病房號(hào),科室編號(hào))4.2 模式分解 為了得到以滿(mǎn)足第三范式(3NF)的關(guān)系模型,首
13、先要找出上述關(guān)系模式的函數(shù)依賴(lài)(DF)。本數(shù)據(jù)表結(jié)構(gòu)比較簡(jiǎn)單,所有函數(shù)依賴(lài)都集中在非主屬性和主鍵之間,不存在局部依賴(lài)和傳遞依賴(lài),故可以直接判斷以上所得關(guān)系模式滿(mǎn)足3NF。4.3 完整性與用戶(hù)子模式設(shè)計(jì)為了滿(mǎn)足醫(yī)生和病人的不同要求,符合他們對(duì)數(shù)據(jù)庫(kù)操作的不同權(quán)限,并保證數(shù)據(jù)庫(kù)的安全性,對(duì)他們所對(duì)應(yīng)的視圖要進(jìn)行有區(qū)別的設(shè)計(jì)。醫(yī)生視圖主要包括以下功能板塊:(1)、通過(guò)輸入各種不同條件,來(lái)查詢(xún)病人的個(gè)人信息和病人的身體狀況,所有的病人以上信息對(duì)醫(yī)生都是公開(kāi)的,但醫(yī)生無(wú)法對(duì)其信息進(jìn)行任何的修改;(2)、查看自己的醫(yī)務(wù)安排,診治對(duì)象,診治地點(diǎn),診治時(shí)間等等;(3)、查看和更新自己的個(gè)人信息以及修改自己的登
14、錄系統(tǒng)密碼,其中醫(yī)生工作證號(hào)不能有醫(yī)生本人自由的更改;(4)、錄入其診治病人的身體狀況,恢復(fù)注意事項(xiàng)等等。 病人視圖主要包括以下功能板塊:(1)、查看和更新自己的個(gè)人信息以及修改登錄密碼,其中病歷號(hào)不能被修改;(2)、查看自己的診治安排以及自己的身體狀況;(3)、輸入自己所需的診治項(xiàng)目。 5 物理設(shè)計(jì)由于不清楚該醫(yī)院的具體資源,且本數(shù)據(jù)庫(kù)數(shù)據(jù)量較少,物理設(shè)計(jì)不是主要考慮問(wèn)題,故在此省略。 6 數(shù)據(jù)庫(kù)實(shí)施與維護(hù)6.1 建立數(shù)據(jù)結(jié)構(gòu) 新建access數(shù)據(jù)庫(kù)文件,依據(jù)邏輯設(shè)計(jì)所得關(guān)系模式在其中創(chuàng)建病人、醫(yī)生、科室、屬于、病房、住宿、工作、主管8個(gè)表,字段屬性和完整性規(guī)則以數(shù)據(jù)字典為依據(jù),并且通過(guò)主鍵
15、建立表之間的聯(lián)系,其中關(guān)系模型參考ER圖中聯(lián)系類(lèi)型。6.2 數(shù)據(jù)加載 由于未能收集到校醫(yī)院的相關(guān)信息,且考慮到將已經(jīng)準(zhǔn)備好的數(shù)據(jù)輸入數(shù)據(jù)的加載主要目的是為應(yīng)用程序的編寫(xiě)提供方便以及對(duì)系統(tǒng)的功能和性能進(jìn)行試驗(yàn),故我輸入了一些虛擬的數(shù)據(jù),具體的虛擬規(guī)則和數(shù)據(jù)可參見(jiàn)數(shù)據(jù)表到基本表中。6.3 編寫(xiě)和調(diào)試應(yīng)用程序6.3.1 窗體和報(bào)表的設(shè)計(jì)鑒于Access 數(shù)據(jù)庫(kù)系統(tǒng)強(qiáng)大的窗體和報(bào)表等可視化設(shè)計(jì)功能,在編寫(xiě)相關(guān)功能代碼前先進(jìn)行窗體和報(bào)表的設(shè)計(jì)。其中窗體又分為作為人機(jī)交互界面的用戶(hù)界面窗體和作為數(shù)據(jù)呈現(xiàn)方式的數(shù)據(jù)窗體。前者涉及到系統(tǒng)的整體功能和服務(wù)質(zhì)量,故需最先設(shè)計(jì)出來(lái);后者涉及到數(shù)據(jù)的查詢(xún)和表現(xiàn),為設(shè)計(jì)
16、方便,需先設(shè)計(jì)出與之相關(guān)的查詢(xún)。報(bào)表則是數(shù)據(jù)呈現(xiàn)的主要方式,同樣應(yīng)先設(shè)計(jì)出相關(guān)查詢(xún),并實(shí)現(xiàn)合理的統(tǒng)計(jì)功能。 首先設(shè)計(jì)出不同用戶(hù)的用戶(hù)界面,如下圖所示:該窗體為醫(yī)生和病人進(jìn)入醫(yī)務(wù)管理系統(tǒng)的接口,該界面有兩個(gè)用戶(hù)登錄,避免了設(shè)計(jì)兩個(gè)登錄窗口的麻煩性,同一個(gè)用戶(hù)窗體的設(shè)計(jì)節(jié)省了計(jì)算機(jī)的內(nèi)存。 如下圖所示,為用戶(hù)登錄界面。該模式主要實(shí)現(xiàn)用戶(hù)登錄功能,分為醫(yī)生和病人兩個(gè)子界面。圖8 登陸界面窗體圖9 醫(yī)生界面窗體視圖1 該模式為醫(yī)生界面窗體,該模式主要實(shí)現(xiàn)病人身體狀況以及個(gè)人信息的查詢(xún),并顯示醫(yī)生個(gè)人的診治安排功能。圖10 醫(yī)生界面窗體視圖2 該模式為醫(yī)生界面窗體,該模式主要實(shí)現(xiàn)教師個(gè)人信息和登錄密碼的
17、查詢(xún)和修改功能。圖11 醫(yī)生界面窗體視圖3 該模式為醫(yī)生界面窗體,該模式實(shí)現(xiàn)登錄醫(yī)生所診治的學(xué)生的診治項(xiàng)目的身體狀況的錄入。圖12 病人界面窗體視圖1 該模式為病人界面窗體,該模式實(shí)現(xiàn)了病人個(gè)人信息維護(hù)以及個(gè)人身體狀況和診治項(xiàng)目的查詢(xún)功能。圖13 病人界面窗體視圖2 該模式為病人界面窗體,該模式實(shí)現(xiàn)病人對(duì)診治項(xiàng)目的選擇功能。據(jù)此,可設(shè)計(jì)出如下數(shù)據(jù)窗體和報(bào)表診斷查詢(xún)(診治項(xiàng)目,病人姓名,病歷號(hào),醫(yī)生姓名,工作證號(hào)) 診治時(shí)間查詢(xún)(診治項(xiàng)目,診治時(shí)間,工作證號(hào),醫(yī)生姓名,病歷號(hào),病人姓名) 選修課程(身體狀況,診治項(xiàng)目,病人姓名,病歷號(hào),工作證號(hào),醫(yī)生姓名)圖14 病人個(gè)人信息窗體圖15 身體狀況
18、查詢(xún)報(bào)表圖16 診斷查詢(xún)報(bào)表另外,還有嵌入用戶(hù)界面窗體中的子窗體,如診斷查詢(xún)子窗體,醫(yī)生查詢(xún)子窗體以及病人查詢(xún)子窗體。由于設(shè)計(jì)簡(jiǎn)單,在用戶(hù)界面窗體設(shè)計(jì)時(shí)可直接插入(見(jiàn)用戶(hù)界面窗體),故子窗體在此不再單獨(dú)列出。6.3.2 功能代碼編寫(xiě)與程序調(diào)試 窗體和報(bào)表的設(shè)計(jì)大大的減少了編寫(xiě)代碼的難度和負(fù)擔(dān),但是要更為完整和復(fù)雜的功能。相關(guān)的代碼仍然是不可避免的。下面以圖9的醫(yī)生界面窗體所涉及的相關(guān)代碼進(jìn)行詳細(xì)的說(shuō)明。對(duì)于如圖9所示的醫(yī)生界面,其上半部分顯示的是固定信息工作證號(hào)、姓名、診治項(xiàng)目是通過(guò)該窗體的From_Load事件自動(dòng)添加上去的。再加上文本框是被鎖定的,它的內(nèi)容是不可能被修改的。工作證號(hào)是引用登
19、陸界面的登錄醫(yī)生工作證號(hào),其余兩條信息是通過(guò)調(diào)用DLookUp()函數(shù)來(lái)在基本表中查找,以姓名舉例,調(diào)用格式為: DLookUp(”姓名”, “醫(yī)生”,”工作證號(hào)=”&”&Me.Text2&”)將函數(shù)返回值賦值給相應(yīng)的文本框,在將該文本框Locked屬性設(shè)置為T(mén)rue即可。 對(duì)于醫(yī)生窗體的下半部分窗體主要是實(shí)現(xiàn)三個(gè)部分的不同功能,其分別為病人個(gè)人信息的管理和病人個(gè)人診治信息的選擇,醫(yī)生個(gè)人信息的維護(hù)以及醫(yī)生對(duì)病人身體狀況信息的輸入與更新。首先設(shè)置出醫(yī)生下半窗體進(jìn)行分頁(yè)的醫(yī)生界面,醫(yī)生通過(guò)自身的需求選擇性的進(jìn)入其中一個(gè)頁(yè)面獲取、輸入或更改所需要的信息。所以醫(yī)生窗體的代碼設(shè)計(jì)成了如下所示:(1)此
20、段為醫(yī)生的個(gè)人信息:Private Sub Form_Current()初始化醫(yī)生界面的個(gè)人信息Me.Text2 = Forms!登錄界面!工作證號(hào)根據(jù)登錄工作證號(hào)從醫(yī)生數(shù)據(jù)表中查找其他信息并顯示Me.Text5 = DLookup(醫(yī)生姓名, 醫(yī)生, 工作證號(hào)= & & Me.Text2 & )Me.Text8 = DLookup(診治項(xiàng)目, 診斷, 工作證號(hào)= & & Me.Text2 & )Me.Text2.Locked = True 將不能修改的工作證號(hào)文本框鎖定Me.Text5.Locked = TrueMe.Text8.Locked = TrueMe.醫(yī)生姓名 = Me.Text2
21、Me.性別 = DLookup(性別, 醫(yī)生, 工作證號(hào)= & & Me.Text2 & )Me.職稱(chēng) = DLookup(職稱(chēng), 醫(yī)生, 工作證號(hào)= & & Me.Text2 & )Me.年齡 = DLookup(年齡, 醫(yī)生, 工作證號(hào)= & & Me.Text2 & )Me.登錄密碼 = DLookup(登錄密碼, 醫(yī)生, 工作證號(hào)= & & Me.Text2 & )End SubPrivate Sub 保存信息_Click()將醫(yī)生個(gè)人信息的更改保存到醫(yī)生數(shù)據(jù)表Dim sql As String定義并執(zhí)行更新查詢(xún)sql = update 醫(yī)生 set 姓名 = + + Nz(Me.姓名
22、) + ,性別= + + Nz(Me.性別) + ,職稱(chēng)= + + Nz(Me.職稱(chēng)) + , & _ 年齡= + + Nz(Me.年齡) + ,登錄密碼= + + Nz(Me.登錄密碼) + where 工作證號(hào) = + + Me.Text2 + ;CurrentProject.Connection.Execute sqlMsgBox 信息修改成功!請(qǐng)務(wù)必記好密碼!, vbOKOnly, 提示End Sub(2)此段為醫(yī)生將病人的身體狀況信息的錄入:Private Sub 確定_Click()將當(dāng)前登錄醫(yī)生所輸入的其選擇該診治項(xiàng)目的病人身體狀況保存到身體狀況數(shù)據(jù)表中Dim sql As St
23、ring定義并執(zhí)行更新查詢(xún)If IsNull(DLookup(病歷號(hào), 病人, 病歷號(hào)= + Me.Text63 + ) = False Then sql = update 診斷 set 身體狀況= + Me.身體狀況 + where 病歷號(hào)= + Me.Text63 + and 診治項(xiàng)目= + Me.Text2 + ; CurrentProject.Connection.Execute sql Me.RequeryElse MsgBox 病歷號(hào)錯(cuò)誤,請(qǐng)重新輸入!, vbOKOnly, 提示End IfEnd SubPrivate Sub 退出登錄_Click()退出醫(yī)生界面并重新進(jìn)入登錄界面
24、DoCmd.CloseForms!登錄界面.Visible = True將登錄界面信息清空Forms!登錄界面!工作證號(hào) = NullForms!登錄界面!醫(yī)生密碼 = NullEnd SubPrivate Sub 病人身體狀況信息_Click()按給定條件查找病人身體狀況信息Dim sql As StringDim s(5) As StringDim i, j As Integer給字符串變量賦初值,避免運(yùn)算中出現(xiàn)NULL值sql = For i = 0 To 4s(i) = Next i將各個(gè)文本框所輸入的查詢(xún)條件分別賦值給數(shù)組元素If IsNull(Me.病歷號(hào)) = False The
25、ns(0) = 身體狀況查詢(xún).病歷號(hào) = + Me.病歷號(hào) + End IfIf IsNull(Me.病人姓名) = False Thens(1) = 身體狀況查詢(xún).病人姓名 = + Me.病人姓名 + End IfIf IsNull(Me.工作證號(hào)) = False Thens(2) = 身體狀況查詢(xún).工作證號(hào) = + Me.工作證號(hào) + End IfIf IsNull(Me.醫(yī)生姓名) = False Thens(3) = 身體狀況查詢(xún).醫(yī)生姓名 = + Me.醫(yī)生姓名 + End IfIf IsNull(Me.診治項(xiàng)目) = False Thens(4) = 身體狀況查詢(xún).診治項(xiàng)目 =
26、+ Me.診治項(xiàng)目 + End If在除第一個(gè)非空條件的其他非空條件前加上 and 字符串For i = 0 To 4 If s(i) Then For j = i + 1 To 4 If s(j) Then s(j) = and + s(j) End If Next j Exit For End IfNext i將各個(gè)條件合起來(lái)賦值給字符串變量sql,作為打開(kāi)報(bào)表的篩選條件For i = 0 To 4 sql = sql + s(i)Next i按條件打開(kāi)身體狀況查詢(xún)報(bào)表DoCmd.OpenReport 身體狀況查詢(xún), acViewReport, , sqlEnd Sub(3)此段為病人信息
27、的維護(hù):Private Sub 病人個(gè)人信息_Click()按給定條件查找病人個(gè)人信息Dim sql As StringDim s(2) As StringDim i, j As Integer給字符串變量賦初值,避免運(yùn)算中出現(xiàn)NULL值sql = For i = 0 To 1s(i) = Next i將各個(gè)文本框所輸入的查詢(xún)條件分別賦值給數(shù)組元素If IsNull(Me.病歷號(hào)) = False Thens(0) = 病人.病歷號(hào) = + Me.病歷號(hào) + End IfIf IsNull(Me.病人姓名) = False Thens(1) = 病人.姓名 = + Me.病人姓名 + End
28、If在除第一個(gè)非空條件的其他非空條件前加上 and 字符串For i = 0 To 1 If s(i) Then For j = i + 1 To 1 If s(j) Then s(j) = and + s(j) End If Next j Exit For End IfNext i將各個(gè)條件合起來(lái)賦值給字符串變量sql,作為打開(kāi)報(bào)表的篩選條件For i = 0 To 1 sql = sql + s(i)Next i按條件打開(kāi)身體狀況查詢(xún)報(bào)表DoCmd.OpenForm 病人 查詢(xún), , , sqlEnd Sub 比如在病人信息維護(hù)的編寫(xiě)代碼中,多次使用了For循環(huán)語(yǔ)句和IfThen條件語(yǔ)句,
29、首先定義兩個(gè)字符串并對(duì)他們賦予初始值,然后將各個(gè)文本框所輸入的查詢(xún)條件分別賦值給數(shù)組元素 ,通過(guò)If條件語(yǔ)句依次判斷每個(gè)文本框中是否為空,如果為空,則相應(yīng)的字符串維持原值,否則則將條件賦予給相應(yīng)字符串變量,這樣就將用戶(hù)所輸入的四個(gè)條件分別存儲(chǔ)在了字符串?dāng)?shù)組的四個(gè)變量當(dāng)中。最后調(diào)用DoCmd對(duì)象的OpenForm的方法來(lái)打開(kāi)已設(shè)計(jì)好的“身體狀況查詢(xún)”報(bào)表。 上述類(lèi)似的用法在醫(yī)生將病人的身體狀況信息的錄入部分也有應(yīng)用,這個(gè)部分最后是調(diào)用DoCmd對(duì)象的OpenReport的方法來(lái)打開(kāi)已設(shè)計(jì)好的“身體狀況查詢(xún)”報(bào)表。這樣,當(dāng)在醫(yī)生窗體之中,點(diǎn)擊診治信息當(dāng)中病人信息管理中的病人診治信息或者是醫(yī)生身體狀
30、況信息的錄入中的病人查詢(xún),這樣即可以執(zhí)行事件過(guò)程中的編寫(xiě)代碼,即可直接進(jìn)入到“身體狀況查詢(xún)”報(bào)表中,獲取自身所需的信息,得到滿(mǎn)足條件的結(jié)果。 對(duì)于病人窗體中的代碼較多且繁瑣,在此就不再多余的述說(shuō)。 兩者之中的視圖中或多或少的均含有子窗體,如圖13中病人界面窗體視圖2中的診治頁(yè)中所含有的診治項(xiàng)目列表診斷查詢(xún)子窗體,子窗體的插入并沒(méi)有太多的技術(shù)含量,只需要在插入子窗體向?qū)е兄付ㄋ璧淖侄危缓笤賹傩员碇性O(shè)置主/子窗體的鏈接字段即可。所以無(wú)需贅述。7 結(jié)束語(yǔ) 這次做這個(gè)數(shù)據(jù)庫(kù)醫(yī)務(wù)管理管理系統(tǒng)課程設(shè)計(jì)所用的時(shí)間都是比較散的,基本上每天都有做一點(diǎn),但是每天花的時(shí)間都不是非常的多。所以這次的課程設(shè)計(jì)作業(yè)做
31、的歷時(shí)較長(zhǎng),直到快開(kāi)學(xué)的的前幾天才能夠完成。在剛開(kāi)始做的時(shí)候,根本對(duì)這個(gè)課設(shè)沒(méi)有什么概念,但是看過(guò)數(shù)據(jù)庫(kù)課程設(shè)計(jì)(參考報(bào)告)之后,我才知道應(yīng)該怎樣開(kāi)始。根據(jù)下發(fā)的教務(wù)管理系統(tǒng)參考材料以及數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用課程設(shè)計(jì)規(guī)范化相關(guān)材料,我做完了概論以及需求分析當(dāng)中的總體需求分析。但是下一步需求分析當(dāng)中的數(shù)據(jù)流圖描述和數(shù)據(jù)字典就讓我遇到了難處。我剛開(kāi)始甚至不知道數(shù)據(jù)流圖描述以及數(shù)據(jù)字典是什么概念,通過(guò)查閱才知道數(shù)據(jù)流圖(Data Flow Diagram,簡(jiǎn)記作DFD)是從“數(shù)據(jù)”和“對(duì)數(shù)據(jù)的加工”兩方面表達(dá)數(shù)據(jù)處理系統(tǒng)工作過(guò)程的一種圖形表示方法,具有直觀(guān)、易于被用戶(hù)和軟件人員雙方理解的特點(diǎn)的一種表達(dá)系統(tǒng)
32、功能的描述方式。它是在分析用戶(hù)活動(dòng)所涉及的數(shù)據(jù)的基礎(chǔ)上所產(chǎn)生的,在本數(shù)據(jù)庫(kù)醫(yī)務(wù)管理系統(tǒng)中,即主要是分析醫(yī)生和病人活動(dòng)所涉及的數(shù)據(jù),比如說(shuō)醫(yī)生個(gè)人信息,醫(yī)生與醫(yī)務(wù)管理系統(tǒng)的數(shù)據(jù)關(guān)系,病人個(gè)人信息,病人與醫(yī)務(wù)管理系統(tǒng)的數(shù)據(jù)關(guān)系等等。而數(shù)據(jù)字典主要是在分析系統(tǒng)數(shù)據(jù)的基礎(chǔ)上所產(chǎn)生的,如果只含有數(shù)據(jù)流圖并不能構(gòu)成需求說(shuō)明書(shū),它并沒(méi)有說(shuō)明每個(gè)系統(tǒng)部分中的含義。而數(shù)據(jù)字典提供對(duì)數(shù)據(jù)庫(kù)時(shí)間描述的集中管理。它主要包括數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)和處理過(guò)程共五個(gè)部分。完成了數(shù)據(jù)字典也就完成了報(bào)告部分中的需求分析,這整個(gè)部分花費(fèi)的時(shí)間并不是很多,主要是有例子的引導(dǎo)。完成需求之后,就來(lái)到了概念設(shè)計(jì)。在這個(gè)部分當(dāng)
33、中主要包含確定實(shí)體集、聯(lián)系及屬性,局部ER圖和全局ER圖。因?yàn)榻?jīng)過(guò)一大半學(xué)期的數(shù)據(jù)庫(kù)學(xué)習(xí),老師對(duì)全局ER圖和局部ER圖的教授得較多,因此我對(duì)這個(gè)部分的知識(shí)以及做法比較熟悉。這個(gè)部分主要是在畫(huà)圖方面,剛開(kāi)始我想用Microsoft Office Visio 2007這個(gè)畫(huà)圖軟件來(lái)畫(huà)的,但最終因?yàn)槊髁撕镁貌粫?huì)就直接用了word自帶的畫(huà)圖工具畫(huà)的??傊?,概念設(shè)計(jì)這個(gè)環(huán)節(jié)相對(duì)整體來(lái)說(shuō)是比較容易的。接下來(lái)就到了邏輯設(shè)計(jì)部分,這個(gè)部分的將全局ER圖轉(zhuǎn)化為關(guān)系模型并不難,只要上課聽(tīng)講了的基本上都會(huì),完整性以及范式的分解也是如此。接下的物理設(shè)計(jì)就從略了。這個(gè)部分是應(yīng)用Microsoft Office Acc
34、ess 2007建立數(shù)據(jù)庫(kù)的部分了。因?yàn)橛猩蠈W(xué)期進(jìn)行數(shù)據(jù)庫(kù)上機(jī)實(shí)踐的經(jīng)驗(yàn),所以在建立表和應(yīng)用SQL語(yǔ)言建立查詢(xún)都沒(méi)有什么太大的問(wèn)題。但是到了設(shè)計(jì)窗體和報(bào)表就有很大的問(wèn)題了,首先窗體和報(bào)表對(duì)于我來(lái)說(shuō)全部都是全新的東西,全部都要靠自己慢慢的學(xué)習(xí)。我選擇的是剛開(kāi)始就不要忙著進(jìn)行學(xué)習(xí)寫(xiě)相關(guān)的代碼,先學(xué)會(huì)設(shè)計(jì)有關(guān)窗體和報(bào)表界面的設(shè)計(jì)。通過(guò)查詢(xún)Visual Basic程序設(shè)計(jì)教程,我認(rèn)識(shí)了有關(guān)的控件:文本框(Text)、標(biāo)簽(Label)命令按鈕(CommandButton)、子窗體/子報(bào)表按鈕、列表框(List Box)、組合框(ComboBox)、選項(xiàng)按鈕以及選項(xiàng)卡控件等等,還知道了這些按鈕的相關(guān)功能和類(lèi)型,如文本框是一個(gè)文本編輯區(qū)域,用戶(hù)可以在該區(qū)域輸入、編輯、修改和顯示正文內(nèi)容,即用戶(hù)可以創(chuàng)建一個(gè)文本編輯器。但是對(duì)于標(biāo)簽就不行了,它是不允許其內(nèi)容被更改的,他在設(shè)計(jì)的時(shí)候必須要有內(nèi)容。而文本框之中的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年石英玻璃材料及制品合作協(xié)議書(shū)
- 2025年多媒體集成合作協(xié)議書(shū)
- 《基礎(chǔ)會(huì)計(jì)》繼續(xù)教育考試題及答案
- 2025年代保管檔案協(xié)議參考模板(三篇)
- 2025年二年級(jí)期末工作總結(jié)模版(二篇)
- 2025年中間人傭金協(xié)議(2篇)
- 2025年產(chǎn)品租賃協(xié)議標(biāo)準(zhǔn)樣本(2篇)
- 2025年二手車(chē)市場(chǎng)汽車(chē)買(mǎi)賣(mài)協(xié)議(三篇)
- 2025年中外來(lái)件裝配合同標(biāo)準(zhǔn)樣本(2篇)
- 2025年五年級(jí)下學(xué)期語(yǔ)文教學(xué)工作總結(jié)(2篇)
- 走新型城鎮(zhèn)化道路-實(shí)現(xiàn)湘潭城鄉(xiāng)一體化發(fā)展
- 江蘇中國(guó)中煤能源集團(tuán)有限公司江蘇分公司2025屆高校畢業(yè)生第二次招聘6人筆試歷年參考題庫(kù)附帶答案詳解
- 北郵工程數(shù)學(xué)試卷
- 2024版冷水機(jī)組安裝合同
- 北師版七年級(jí)數(shù)學(xué)下冊(cè)第二章測(cè)試題及答案
- GB/T 21369-2024火力發(fā)電企業(yè)能源計(jì)量器具配備和管理要求
- 2025年全體員工安全意識(shí)及安全知識(shí)培訓(xùn)
- 2025警察公安派出所年終總結(jié)工作匯報(bào)
- 年新增1萬(wàn)噸SQ-06Li鋰吸附材料技改擴(kuò)能項(xiàng)目環(huán)評(píng)資料環(huán)境影響
- 機(jī)動(dòng)車(chē)檢測(cè)站新?lián)Q版20241124質(zhì)量管理手冊(cè)
- 智研咨詢(xún)發(fā)布-2025年中國(guó)少兒編程行業(yè)市場(chǎng)競(jìng)爭(zhēng)格局、行業(yè)政策及需求規(guī)模預(yù)測(cè)報(bào)告
評(píng)論
0/150
提交評(píng)論