周萍 劉衛(wèi)芳 王洪 夏翃 周震 首都醫(yī)科大學(xué)
數(shù)據(jù)庫技術(shù)在社會(huì)工作生活的各個(gè)領(lǐng)域都有著廣泛的應(yīng)用,尤其是在醫(yī)療衛(wèi)生領(lǐng)域所起的作用更不能低估,如醫(yī)院信息管理系統(tǒng)、醫(yī)學(xué)專家系統(tǒng)、數(shù)字人體分析等大量的醫(yī)學(xué)數(shù)據(jù)分析管理都是以數(shù)據(jù)庫系統(tǒng)為基礎(chǔ)的。
首都醫(yī)科大學(xué)針對全校臨床醫(yī)學(xué)專業(yè)長學(xué)制學(xué)生開設(shè)了“數(shù)據(jù)庫語言”課程,該課程是基于微軟的Access軟件的數(shù)據(jù)庫實(shí)用技術(shù)課程。開設(shè)此課程是希望學(xué)生通過該課程的學(xué)習(xí),能夠掌握數(shù)據(jù)庫技術(shù)的基本概念、基本原理和基本方法,并具有利用數(shù)據(jù)庫解決實(shí)際問題的能力。由于授課對象為非計(jì)算機(jī)專業(yè)的本碩連讀醫(yī)科學(xué)生,所以本課程教學(xué)目標(biāo)設(shè)計(jì)時(shí)突出以下內(nèi)容:一是要求學(xué)生掌握數(shù)據(jù)庫在醫(yī)學(xué)領(lǐng)域中的常用技術(shù);二是培養(yǎng)學(xué)生挖掘數(shù)據(jù)庫技術(shù)與醫(yī)學(xué)領(lǐng)域在實(shí)踐中結(jié)合的能力;三是希望通過本課程的學(xué)習(xí),引導(dǎo)學(xué)生認(rèn)識(shí)到跨學(xué)科思維對提高本專業(yè)創(chuàng)新能力的重要性。
Access軟件是微軟Office產(chǎn)品的一個(gè)組件,提供了單機(jī)數(shù)據(jù)庫處理功能,對于簡單的桌面應(yīng)用程序和個(gè)人數(shù)據(jù)庫應(yīng)用可以提供數(shù)據(jù)庫支持。由于Access軟件是面向?qū)ο缶幊碳夹g(shù),并具有良好的可視化設(shè)計(jì)效果,所以它適合非計(jì)算機(jī)專業(yè)學(xué)生學(xué)習(xí),但使用Access軟件時(shí),如果不會(huì)用VBA,那么就只能局限于Access的表、查詢、窗體、報(bào)表和宏的簡單應(yīng)用,不能實(shí)現(xiàn)較復(fù)雜的功能,所以這就需要用Visual Basic for Application進(jìn)行編程來完成。[1]
VBA(Visual Basic for Applications)是微軟開發(fā)的Visual Basic的一種宏語言,是在桌面應(yīng)用程序中通用的自動(dòng)化編程語言,可以用來擴(kuò)展Windows的應(yīng)用程序功能,特別是Microsoft Office軟件。由于微軟Office軟件的普及,人們常見的辦公軟件Office軟件中的Word、Excel、Access、PowerPoint都可以利用VBA使這些軟件的應(yīng)用效率更高。[2]
本課程的教學(xué)內(nèi)容主要分為兩大部分:一是Access軟件可視化的單機(jī)數(shù)據(jù)庫處理功能,如表、查詢、窗體和報(bào)表等;二是基于VBA+Access的組合,設(shè)計(jì)實(shí)現(xiàn)復(fù)雜功能的數(shù)據(jù)庫應(yīng)用系統(tǒng),這部分內(nèi)容可以實(shí)現(xiàn)基于醫(yī)學(xué)應(yīng)用系統(tǒng)的一些特定需求。
圖1 計(jì)算BMI指數(shù)窗體
圖2 BMI指數(shù)窗體的設(shè)計(jì)視圖
圖3 BMI指數(shù)窗體的VBA窗口
由于醫(yī)學(xué)生的編程基礎(chǔ)相對欠缺,語法知識(shí)相對比較抽象,學(xué)生對VBA編程部分的學(xué)習(xí)興趣低。所以,教師在教學(xué)實(shí)踐中,不能為了教VBA,而一味地教VB的語法規(guī)則,而應(yīng)突出面向應(yīng)用的案例教學(xué),通過案例把VB語法與前期學(xué)的ACCESS結(jié)合起來,這樣學(xué)生的課堂參與度較之枯燥的理論教學(xué)能有明顯提高。
以計(jì)算每位患者的BMI指數(shù)為教學(xué)案例,本案例要根據(jù)每位患者的身高體重利用系統(tǒng)算出BMI指數(shù),并給出一般性評(píng)價(jià)。雖然窗體的文本框控件可以直接算出對應(yīng)的數(shù)值,但為了讓學(xué)生了解窗體事件觸發(fā)來啟動(dòng)VBA功能,筆者特意在窗體中設(shè)計(jì)了一個(gè)按鈕,并通過點(diǎn)擊來進(jìn)行事件觸發(fā)從而實(shí)現(xiàn)相應(yīng)功能(如圖1)。
為了讓學(xué)生能看清楚窗體實(shí)現(xiàn)的設(shè)計(jì)視圖,筆者將窗體中對應(yīng)的控件類型及名稱標(biāo)出,以方便學(xué)生進(jìn)行窗體設(shè)計(jì)(如圖2)。
對于窗體上的兩個(gè)按鈕功能,用VBA實(shí)現(xiàn)的具體代碼通過箭頭指示,讓學(xué)生清楚知道事件對應(yīng)代碼部分(如圖3)。通過這個(gè)VBA代碼部分,學(xué)生可以學(xué)到單分支語句(IF)、多分支語句(CASE),同時(shí)復(fù)習(xí)前期學(xué)習(xí)過的星期函數(shù)(Weekday)、格式轉(zhuǎn)換函數(shù)(CDate)等知識(shí)點(diǎn)。這樣可以在學(xué)習(xí)新知識(shí)的同時(shí),復(fù)習(xí)已學(xué)過的內(nèi)容,達(dá)到鞏固知識(shí)的目的。
案例教學(xué)可以更好地提高學(xué)生的編程能力[3-4],通過選取與醫(yī)學(xué)相關(guān)的案例,可以讓醫(yī)學(xué)生直觀地了解用VBA編程可以實(shí)現(xiàn)窗體的復(fù)雜功能。總之,從醫(yī)學(xué)實(shí)際問題出發(fā),選取典型的教學(xué)案例,以案例教學(xué)為向?qū)?,改變傳統(tǒng)的編程語言授課模式,可以提高學(xué)生的興趣,使其在較短時(shí)間內(nèi)掌握相應(yīng)的知識(shí)要點(diǎn),從而更快更好地掌握課程內(nèi)容,提高理論與實(shí)踐能力。