【正文】
eport, , sql End Sub ( 3)此段為病人信息的維護(hù): Private Sub 病人個(gè)人信息 _Click() 39。按給定條件查找病人個(gè)人信息 華中科技大學(xué)電氣與電子工程學(xué)院數(shù)據(jù)庫(kù)及應(yīng)用課程設(shè)計(jì) 23 23 Dim sql As String Dim s(2) As String Dim i, j As Integer 39。給字符串變量賦初值,避免運(yùn)算中出現(xiàn) NULL 值 sql = For i = 0 To 1 s(i) = Next i 39。將各個(gè)文本框所輸入的查詢條件分別賦值給數(shù)組元素 If IsNull( ) = False Then s(0) = 病人 .病歷號(hào) = + + End If If IsNull( ) = False Then s(1) = 病人 .姓名 = + + End If 39。在除第一個(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 If Next i 39。將各個(gè)條件合起來(lái)賦值給字符串變量 sql,作為打開(kāi)報(bào)表的篩選條件 For i = 0 To 1 sql = sql + s(i) Next i 39。按條件打開(kāi)身體狀況查詢報(bào)表 病人 查詢 , , , sql End Sub 比如在病人信息維護(hù) 的編寫代碼中,多次使用了 For循環(huán)語(yǔ)句和 If? Then條件語(yǔ)句,首24 醫(yī)務(wù)管理數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng) 24 先定義兩個(gè)字符串并對(duì)他們賦予初始值,然后將各個(gè)文本框所輸入的查詢條件分別賦值給數(shù)組元素 ,通過(guò) If條件語(yǔ)句依次判斷每個(gè)文本框中是否為空,如果為空,則相應(yīng)的字符串維持原值,否則 則將 條件賦予給相應(yīng)字符串變量,這樣就將用戶所輸入的四個(gè)條件分別存儲(chǔ)在了字符串?dāng)?shù)組的四個(gè)變量當(dāng)中。最后調(diào)用 DoCmd對(duì)象的 OpenForm的方法來(lái)打開(kāi)已設(shè)計(jì)好的“身體狀況查詢”報(bào)表。 上述類似的用法在醫(yī)生將病人的身體狀況信息的錄入部分也有應(yīng)用,這個(gè)部分最后是調(diào)用DoCmd對(duì)象的 OpenReport的方法來(lái)打開(kāi)已設(shè)計(jì)好的“身體狀況查詢”報(bào)表。這樣,當(dāng)在醫(yī)生窗體之中,點(diǎn)擊診治信息當(dāng)中病人信息管理中的病人診治信息或者是醫(yī)生身體 狀況信息的錄入中的病人查詢,這樣即可以執(zhí)行事件過(guò)程中的編寫代碼,即可直接進(jìn)入到“身體狀況查詢”報(bào)表中,獲取自身所需的信息,得到滿足條件的結(jié)果。 對(duì)于病人窗體中的代碼較多且繁瑣,在此就不再多余的述說(shuō)。 兩者之中的視圖中或多或少的均含有子窗體,如圖 13 中病人界面窗體 —— 視圖 2中的診治頁(yè)中所含有的診治項(xiàng)目列表診斷查詢子窗體,子窗體的插入并沒(méi)有太多的技術(shù)含量,只需要在插入子窗體向?qū)е兄付ㄋ璧淖侄?,然后再屬性表中設(shè)置主 /子窗體的鏈接字段即可。所以無(wú)需贅述。 7 結(jié)束語(yǔ) 這次做這個(gè)數(shù)據(jù)庫(kù)醫(yī)務(wù)管理管 理系統(tǒng)課程設(shè)計(jì)所用的時(shí)間都是比較散的,基本上每天都有做一點(diǎn),但是每天花的時(shí)間都不是非常的多。所以這次的課程設(shè)計(jì)作業(yè)做的歷時(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ò)程的一種圖形表示方法,具有直觀、易于被用戶和軟件人員雙方理解的特點(diǎn)的一種表達(dá)系統(tǒng)功能的描述方式。它是在分析用戶活動(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)中主要包含確定實(shí)體集、聯(lián)系及屬性, 華中科技大學(xué)電氣與電子工程學(xué)院數(shù)據(jù)庫(kù)及應(yīng)用課程設(shè)計(jì) 25 25 局部 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 2021這個(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 Access 2021建立數(shù)據(jù)庫(kù)的部分了。因?yàn)橛猩蠈W(xué)期進(jìn)行數(shù)據(jù)庫(kù)上機(jī)實(shí)踐的經(jīng)驗(yàn),所以在建立表和應(yīng)用 SQL語(yǔ)言建立查詢都沒(méi)有什么太大的問(wèn)題。但是到了設(shè)計(jì)窗體和報(bào)表就有很大的問(wèn)題了,首先窗體和報(bào)表對(duì)于我來(lái)說(shuō)全部都是全新的東西,全部都要靠自己慢慢的學(xué)習(xí)。我選擇的是剛開(kāi)始就不要忙著進(jìn)行學(xué)習(xí) 寫相關(guān) 的代碼,先學(xué)會(huì)設(shè)計(jì)有關(guān)窗體和報(bào)表界面的設(shè)計(jì)。通過(guò)查詢 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)功能和類型,如文本框是一個(gè)文本編輯區(qū)域,用戶可以在該區(qū)域輸入、編輯、修改和顯示正文內(nèi)容,即用戶可以創(chuàng)建一個(gè)文本編輯器。但是對(duì)于標(biāo)簽就不行了,它是不允許其內(nèi)容被更改的,他在設(shè)計(jì)的時(shí)候必須要有內(nèi)容。而文本框之中的內(nèi)容是可有可無(wú)的。再設(shè)計(jì)報(bào)表的時(shí)候由于出現(xiàn)的設(shè)計(jì)界面與設(shè)計(jì)窗體的時(shí)候的設(shè)計(jì)界面都一樣,就讓人感覺(jué)有一點(diǎn)無(wú)從下手了。它需要點(diǎn)擊“分組和排序按鈕”來(lái)增加頁(yè)面頁(yè)眉和所需頁(yè)眉。還有報(bào)表要設(shè)計(jì)成單個(gè)窗口的時(shí)候就感覺(jué)有一點(diǎn)麻煩了,費(fèi)了我不少的時(shí)間。 至此,窗體和報(bào)表的設(shè)計(jì)就完成了。 接下來(lái)就到了最難的部分 —— 寫相關(guān) 的代碼了。由于我是在 Access 2021當(dāng)中建立的數(shù)據(jù)庫(kù),我就直接在 Access當(dāng)中建立了工程,即事件過(guò)程代碼的編寫直接在與 Access 2021相關(guān)聯(lián)的代碼窗口中進(jìn)行編寫的。雖然報(bào)表和窗體的設(shè)計(jì)大大地減輕了編寫代碼的負(fù)擔(dān),但是編寫代碼的困難性仍然比想象中的復(fù)雜很多。我在圖書(shū)館中查了不少的資料,甚至買了幾本 VB的書(shū)都難以弄清。我至今都不太知道有些代碼的編寫,只知道一些較為簡(jiǎn)單的代碼編寫,比如有關(guān) If條件語(yǔ)句的編寫和 For循環(huán)語(yǔ)句的編寫,這些 還是源于之前有 C++的基礎(chǔ)才弄明白的。 VB事件過(guò)程的形式: Sub 對(duì)象名 _事件名( [參數(shù)列表 ]) ? 事件過(guò)程代碼 End Sub ,其中一些控件的編寫就可以靠這種形式進(jìn)行編寫。但這只是比較簡(jiǎn)單的部分。還有一些事件處理代碼,及那些用來(lái)解決相關(guān)算法、指定處理事件的程序就比較難了。運(yùn)行時(shí)它還要注意相關(guān)代碼所編寫的環(huán)境。所以在編寫代碼的環(huán)節(jié)當(dāng)中,我請(qǐng)教過(guò)不少的人,也借鑒了不少下發(fā)的教學(xué)管理數(shù)據(jù)庫(kù)中所編寫的代碼。才勉強(qiáng)的將這部分做過(guò)去 。 總之,我覺(jué)得這次的 課設(shè)主要 的困難有很大一部分就在此處。這 次課設(shè)的 代碼編寫還用到了嵌入式 SQL語(yǔ)句的執(zhí)行與應(yīng)用,但這個(gè)部分上課時(shí)卻完全沒(méi) 有涉及,所以這個(gè)方面也十分讓人苦惱,也需要自己進(jìn)行多次查書(shū)。 26 醫(yī)務(wù)管理數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng) 26 這次的課程設(shè)計(jì)讓我苦惱了很多,但是也讓我收獲了不少。這其中涉及到很多數(shù)據(jù)庫(kù)和VB當(dāng)中我所不知道的知識(shí),許多東西都需要自己慢慢的摸索,自己慢慢的查書(shū)弄懂許多。其中包括表、查詢、窗體、報(bào)表(有時(shí)候還會(huì)涉及 一點(diǎn)宏 的設(shè)計(jì))、 VB等等從來(lái)沒(méi)有學(xué)過(guò)的東西。但是這次的課程設(shè)計(jì)是我第一次進(jìn)行的一次課程設(shè)計(jì)。雖然,問(wèn)過(guò)不少人,結(jié)果也不是相當(dāng)?shù)暮?。但我還是有一點(diǎn)小小的滿足感。這次課程設(shè)計(jì)確實(shí)是對(duì)我的一次很好的鍛煉。它教會(huì)我更多的是知識(shí)以外的東西,做 這份課設(shè)要有 一顆勇 于迎接困難,接受挑戰(zhàn)的心態(tài),還要一種特殊的自信心以及堅(jiān)持的毅力。沒(méi)有這些,這次課程設(shè)計(jì)肯定是一個(gè)非常艱苦的過(guò)程。由此也告訴了我,任何事都不是一蹴而就的,我需要堅(jiān)定的對(duì)待每一件看似 簡(jiǎn)單實(shí)卻不然的 事情。 參考文獻(xiàn) : 董建全、丁寶康 .數(shù)據(jù)庫(kù)實(shí)用教程 .第三版 .北京 .清華大學(xué)出版社 .2021 龔沛曾、楊志強(qiáng)、陸慰民 .Visual Basic程序設(shè)計(jì)教程 .第 3版 .北京 .高等教育出版社 .2021 伍俊良 .Delphi 6課程設(shè)計(jì)案例精編 .北京 .水利水電出版社 .2021 參考網(wǎng)址: help/?CTT=97