2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩34頁(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)介

1、<p><b>  課程設(shè)計(jì)報(bào)告書(shū)</b></p><p>  題 目 教學(xué)成績(jī)管理系統(tǒng)</p><p>  系 別 計(jì)算機(jī)工程系 </p><p>  專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)</p><p>  班 級(jí) 計(jì)本1018班 </p><p>  

2、姓 名 </p><p>  指導(dǎo)教師 </p><p><b>  圖書(shū)管理系統(tǒng)</b></p><p><b>  內(nèi)容摘要</b></p><p>  圖書(shū)管理系統(tǒng)是采用Visual Basic6.0開(kāi)發(fā)的一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)。開(kāi)發(fā)本系統(tǒng)的基本步

3、驟:需求分析、系統(tǒng)概念設(shè)計(jì)、系統(tǒng)邏輯和物理設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)和維護(hù)。在系統(tǒng)分析中先后用數(shù)據(jù)字典、數(shù)據(jù)流程、系統(tǒng)的功能結(jié)構(gòu)圖、ER圖分析了系統(tǒng)所需的各種數(shù)據(jù)。在系統(tǒng)的設(shè)計(jì)過(guò)程中,我們采用了模塊獨(dú)立設(shè)計(jì)法,比較詳細(xì)的展現(xiàn)了各個(gè)模塊的功能。在庫(kù)和表的設(shè)計(jì)當(dāng)中, 我們力求層次清晰,設(shè)計(jì)簡(jiǎn)單實(shí)用。在系統(tǒng)具體實(shí)行階段中,我們精心細(xì)致的畫(huà)出了各個(gè)窗體并給出了相應(yīng)的事件和代碼,以實(shí)現(xiàn)各個(gè)窗體的作用。</p><p>  開(kāi)發(fā)環(huán)境:為

4、方便系統(tǒng)開(kāi)發(fā),減少開(kāi)發(fā)過(guò)程的難度,本圖書(shū)管理開(kāi)發(fā)系統(tǒng)是基于以下的軟件環(huán)境。</p><p>  ·以Windows XP為操作系統(tǒng)</p><p>  ·以Visual Basic6.0為開(kāi)發(fā)工具</p><p>  ·以Access 2000作為后臺(tái)數(shù)據(jù)庫(kù)</p><p>  功能概述:該系統(tǒng)界面友好,操作簡(jiǎn)便

5、,能完成添加圖書(shū)信息,修改圖書(shū)信息,查詢圖書(shū)信息,添加讀者類別,修改讀者類別,查詢讀者信息,修改讀者信息等一系列圖書(shū)管理功能,開(kāi)發(fā)本系統(tǒng)的總體任務(wù)是實(shí)現(xiàn)圖書(shū)管理的系統(tǒng)化和自動(dòng)化,幫助管理人員更好更高效地完成圖書(shū)管理工作。本著實(shí)用性和介紹性的原則,整個(gè)系統(tǒng)由四大模塊組成,每個(gè)大的模塊又包括三至四個(gè)小的模塊。</p><p>  一、  圖書(shū)管理部分:包括圖書(shū)信息管理和類別管理,其功能是實(shí)現(xiàn)對(duì)各部分?jǐn)?shù)據(jù)內(nèi)容

6、進(jìn)行添加、修改、查詢等操作。</p><p>  二、  讀者管理部分:包括讀者信息管理和讀者類別管理,其功能是實(shí)現(xiàn)對(duì)各部分?jǐn)?shù)據(jù)內(nèi)容的添加和修改等操作。</p><p>  三、  借閱管理部分:包括借書(shū)管理和還書(shū)管理,其功能是實(shí)現(xiàn)對(duì)各部分?jǐn)?shù)據(jù)內(nèi)容的添加和查詢等操作。</p><p>  四、  系統(tǒng)管理部分:包括修改系統(tǒng)用戶密碼和增加

7、新用戶兩項(xiàng)功能。 </p><p>  系統(tǒng)具有高效、易操作、易維護(hù)等特點(diǎn),并且系統(tǒng)結(jié)構(gòu)清晰、界面友好,功能較為齊全,能有效地協(xié)助管理人員進(jìn)行圖書(shū)管工作。如果想真正把它用到圖書(shū)館的圖書(shū)自動(dòng)化管理中,還需要讀者對(duì)該系統(tǒng)進(jìn)行一步的完善工作。</p><p><b>  需求分析</b></p><p>  需求分析階段確定的系統(tǒng)邏輯模型是以后設(shè)計(jì)和

8、實(shí)現(xiàn)目標(biāo)系統(tǒng)的基礎(chǔ),因此必須準(zhǔn)確完整地體現(xiàn)用戶的要求。</p><p>  2.1.系統(tǒng)的數(shù)據(jù)字典</p><p>  本系統(tǒng)的主要數(shù)據(jù)元素的數(shù)據(jù)字典卡片:</p><p>  2.2.  數(shù)據(jù)流程圖</p><p>  數(shù)據(jù)流程圖(Data Flow DFD)是描述實(shí)際業(yè)務(wù)管理系統(tǒng)工作流程的一種圖形表示法。它描繪系統(tǒng)的邏輯模型圖,

9、其中沒(méi)有任何具體的物理元素,只是描繪信息在系統(tǒng)中流動(dòng)和處理的情況。因?yàn)閿?shù)據(jù)流圖是邏輯系統(tǒng)的圖形表示,即使不是專業(yè)的計(jì)算機(jī)技術(shù)人員也容易理解,所以是極好的通信工具。此外,設(shè)計(jì)數(shù)據(jù)流圖只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮如何具體地實(shí)現(xiàn)這些功能,所以它也是軟件設(shè)計(jì)的很好的出發(fā)點(diǎn)。《圖書(shū)管理系統(tǒng)》主要是為了對(duì)圖書(shū)、讀者基本信息等進(jìn)行計(jì)算機(jī)管理。下面就是對(duì)各個(gè)功能模塊的流程分析:</p><p>  1 圖書(shū)

10、類別管理基本信息流程圖 </p><p>  流程圖分析:圖書(shū)類別基本信息的流動(dòng)首先是以圖書(shū)類別的編號(hào)為依據(jù),來(lái)達(dá)到添加、修改、查詢圖書(shū)類別記錄。同時(shí),也對(duì)數(shù)據(jù)庫(kù)中的圖書(shū)類別表的編號(hào)進(jìn)行檢查。 </p><p>  2 圖書(shū)信息管理基本信息流程圖 </p><p>  流程圖分析:圖書(shū)基本信息的流動(dòng)首先是以圖書(shū)編號(hào)為流動(dòng)方向的依據(jù),來(lái)達(dá)到添加、修改、記錄、

11、刪除圖書(shū)記錄。為了數(shù)據(jù)的一致性,進(jìn)行這些操作的同時(shí),也對(duì)數(shù)據(jù)庫(kù)中的記錄進(jìn)行檢查,檢查是否有重復(fù)的記錄。如有則不能進(jìn)行添加。</p><p>  3 讀者類別管理基本信息流程圖</p><p>  流程圖分析:讀者類別基本信息的流動(dòng)首先是以讀者類別編號(hào)為流動(dòng)方向的依據(jù),來(lái)達(dá)到添加、修改、記錄讀者類別記錄。為了數(shù)據(jù)的一致性,進(jìn)行這些操作的同時(shí),也對(duì)數(shù)據(jù)庫(kù)中的記錄進(jìn)行檢查,檢查是否有重復(fù)的記錄。

12、如沒(méi)有則可進(jìn)行添加。</p><p>  4 讀者信息管理基本信息流程圖</p><p>  流程圖分析:讀者基本信息的流動(dòng)首先是以讀者的編號(hào)為依據(jù),來(lái)達(dá)到添加、修改、查詢、刪除讀者信息的記錄。同時(shí),也對(duì)數(shù)據(jù)庫(kù)中的讀者信息表的編號(hào)進(jìn)行檢查。 </p><p>  5借書(shū)管理基本信息流程圖</p><p>  流程圖分析:借書(shū)管理基本信息的流動(dòng)

13、首先是以借閱編號(hào)為流動(dòng)方向的依據(jù),來(lái)達(dá)到添加、查詢借書(shū)記錄。為了數(shù)據(jù)的一致性,進(jìn)行這些操作的同時(shí),也對(duì)數(shù)據(jù)庫(kù)中的記錄進(jìn)行檢查,檢查是否有重復(fù)的記錄。如沒(méi)有則可進(jìn)行添加。</p><p>  6 還書(shū)管理基本信息流程圖</p><p>  流程圖分析:借閱管理部分是實(shí)現(xiàn)對(duì)各部分?jǐn)?shù)據(jù)內(nèi)容的添加和查詢操作,在借閱信息中包括借閱編號(hào)、讀者編號(hào)、讀者姓名、書(shū)籍名稱、出借日期和還書(shū)日期。并通過(guò)添加功能

14、來(lái)達(dá)到借閱信息表的數(shù)據(jù)的更新,通過(guò)查詢可使管理員很快地了解借閱信息,從而避免書(shū)籍的丟失現(xiàn)象產(chǎn)生。</p><p>  通過(guò)上面對(duì)各個(gè)模塊流程的分析,那么我們就不難對(duì)整個(gè)系統(tǒng)的大致流程有一個(gè)全面的認(rèn)識(shí)。設(shè)計(jì)時(shí)采用了常用的自頂向下的瀑布式結(jié)構(gòu)化設(shè)計(jì)方法。各子系統(tǒng)具有獨(dú)立的數(shù)據(jù)庫(kù)結(jié)構(gòu),同時(shí)又具有相關(guān)的關(guān)鍵字,這樣系統(tǒng)做起來(lái)后就便于用戶操作。綜合上面各個(gè)模塊的流程分析,其總體流程圖如下:</p><p

15、>  2.3.系統(tǒng)的概念設(shè)計(jì)</p><p>  概念設(shè)計(jì)階段主要任務(wù)和目標(biāo)是根據(jù)需求分析的結(jié)果,包括一般聯(lián)系實(shí)體,畫(huà)出對(duì)應(yīng)的ER圖。對(duì)于復(fù)雜的系統(tǒng),通常首先要對(duì)它的各功能模進(jìn)行分析,然后再把它的功能結(jié)構(gòu)圖畫(huà)出來(lái),便是設(shè)計(jì)和優(yōu) 化。功能分析之后,再根據(jù)各個(gè)崗位、各個(gè)用戶對(duì)數(shù)據(jù)和使用權(quán)限的不同要求作出局部ER圖,然后再把各個(gè)局部ER圖綜合起來(lái)形成統(tǒng)一的整體ER圖。 </p><p

16、><b>  3.1模塊功能分析</b></p><p>  圖書(shū)管理部分:包括圖書(shū)信息管理和類別管理,其功能是實(shí)現(xiàn)對(duì)各部分?jǐn)?shù)據(jù)內(nèi)容進(jìn)行添加、修改、查詢等操作。各管理部分的明細(xì)如下:</p><p> ?。?)圖書(shū)信息管理:包括圖書(shū)信息的添加、圖書(shū)信息的修改、圖書(shū)信息的查詢和圖書(shū)的信息刪除4部分。其中,圖書(shū)信息包括圖書(shū)編號(hào)、書(shū)名、圖書(shū)類別、作者、出版社、出版日期

17、、登記日期以及是否已被借出。</p><p> ?。?)圖書(shū)類別管理:包括圖書(shū)類別的添加、圖書(shū)類別的修改、圖書(shū)類別的刪除3部分功能。其中,圖書(shū)類別包括類別名稱和類別編號(hào)兩部分。</p><p>  借閱管理部分:包括借書(shū)管理和還書(shū)管理,其功能是實(shí)現(xiàn)對(duì)各部分?jǐn)?shù)據(jù)內(nèi)容的添加和查詢等操作。各管理部分的明細(xì)如下:</p><p>  (1)借書(shū)管理:包括添加借書(shū)信息和查詢借

18、書(shū)信息2部分功能。其中,借閱信息包括借閱編號(hào)、讀者編號(hào)、讀者姓名、圖書(shū)編號(hào)、圖書(shū)名稱、出借日期和還書(shū)日期。</p><p>  (2)還書(shū)管理:實(shí)現(xiàn)添加還書(shū)信息功能。其中,還書(shū)信息與借閱信息部分明細(xì)相同。</p><p>  讀者管理部分:包括讀者信息管理和讀者類別管理,其功能是實(shí)現(xiàn)對(duì)各部分?jǐn)?shù)據(jù)內(nèi)容的添加和修改、刪除等操作。各管理部分的明細(xì)如下:</p><p> 

19、?。?)讀者信息管理:包括讀者信的添加、讀者信息的修改、讀者信息的查詢和讀者信息的刪除4部分功能。其中,讀者信息包括讀者姓名、讀者編號(hào)、性別、讀者類別、工作單位、家庭住址、電話號(hào)碼、登記日期和已借書(shū)數(shù)量。</p><p>  (2)讀者類別管理:包括讀者類別的添加、讀者類別的修改、讀者類別的刪除3部分功能。其中,讀者類別包括各種類名稱、借書(shū)期限和有效期限4部分。</p><p>  系統(tǒng)管

20、理部分:包括修改系統(tǒng)用戶密碼、增加新用戶和退出系統(tǒng)三項(xiàng)功能。系統(tǒng)初始設(shè)置一個(gè)超級(jí)用戶名和密碼,操作人員可以利用這個(gè)超級(jí)用戶名和密碼登錄,之后,可以設(shè)置其他的超級(jí)用戶名稱,也可以設(shè)置權(quán)限用戶,同時(shí)也設(shè)置了這個(gè)用戶可以使用的權(quán)限。  </p><p>  3.2系統(tǒng)功能結(jié)構(gòu)圖</p><p>  3.3系統(tǒng)ER圖的設(shè)計(jì)</p><p>  數(shù)據(jù)庫(kù)在一個(gè)信息管理

21、系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的好壞將直接對(duì)應(yīng)用系統(tǒng)的效率以及實(shí)現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)可以提高數(shù)據(jù)存儲(chǔ)的效率,保證數(shù)據(jù)的完整和一致。同時(shí),合理的數(shù)據(jù)庫(kù)結(jié)構(gòu)也將有利于程序的實(shí)現(xiàn)。設(shè)計(jì)數(shù)據(jù)庫(kù)系統(tǒng)時(shí)應(yīng)該首先充分了解用戶各個(gè)方面的需求,包括現(xiàn)有的以及將來(lái)可能增加的需求。</p><p>  針對(duì)圖書(shū)管理系統(tǒng)的需求,通過(guò)對(duì)圖書(shū)管理系統(tǒng)流程分析,設(shè)計(jì)此系統(tǒng)需要如下面所示的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):</

22、p><p>  圖書(shū)信息:包括的數(shù)據(jù)項(xiàng)有:圖書(shū)編號(hào)、書(shū)名、圖書(shū)類別、作者出版社、出版日期、登記日期</p><p>  讀者信息:包括的數(shù)據(jù)項(xiàng)有:讀者姓名、編號(hào)、性別、讀者類別、工作單位、家庭住址、電話號(hào)碼、登記日期和已借書(shū)數(shù)量</p><p>  圖書(shū)借閱信息:包括的數(shù)據(jù)項(xiàng)有:借閱編號(hào)、讀者編號(hào)、讀者姓名、圖書(shū)編號(hào)、圖書(shū)名稱、出借日期和還書(shū)日期。</p>

23、<p>  在概念設(shè)計(jì)階段中,設(shè)計(jì)人員從用戶的角度看待數(shù)據(jù)及處理要求和約束,產(chǎn)生一個(gè)反映用戶觀點(diǎn)的概念模式。然后再把概念模式轉(zhuǎn)換成邏輯模式。將概念設(shè)計(jì)從設(shè)計(jì)過(guò)程中獨(dú)立開(kāi)來(lái),使各階段的任務(wù)相對(duì)單一化,設(shè)計(jì)復(fù)雜程度大大降低,不受特定DBMS的限制。</p><p>  利用ER方法進(jìn)行數(shù)據(jù)庫(kù)的概念設(shè)計(jì),可分成三步進(jìn)行:首先設(shè)計(jì)局部ER模式,然后把各局部ER模式綜合成一個(gè)全局模式,最后對(duì)全局ER模式進(jìn)行優(yōu)化

24、,得到最終的模式,即概念模式。 </p><p>  ER模型的“聯(lián)系”用于刻畫(huà)實(shí)體之間的關(guān)聯(lián)。一種完整的方式是對(duì)局部結(jié)構(gòu)中任意兩個(gè)實(shí)體類型,依據(jù)需求分析的結(jié)果,考察局部結(jié)構(gòu)中任意兩個(gè)實(shí)體類型之間是否存在聯(lián)系。若有聯(lián)系,進(jìn)一步確定是1:N,M:N,還是1:1等。還要考察一個(gè)實(shí)體類型內(nèi)部是否存在聯(lián)系,兩個(gè)實(shí)體類型之間是否存在聯(lián)系,多個(gè)實(shí)體類型之間是否存在聯(lián)系,等等。</p><p>  

25、所有局部ER模式都設(shè)計(jì)好了后,接下來(lái)就是把它們綜合成單一的全局概念結(jié)構(gòu)。全局概念結(jié)構(gòu)不僅要支持所有局部ER模式,而且必須合理地表示一個(gè)完整、一致的數(shù)據(jù)庫(kù)概念結(jié)構(gòu)。1)確定公共實(shí)體類型    為了給多個(gè)局部ER模式的合并提供開(kāi)始合并的基礎(chǔ),首先要確定各局部結(jié)構(gòu)中的公共實(shí)體類型。在這一步中我們僅根據(jù)實(shí)體類型名和鍵來(lái)認(rèn)定公共實(shí)體類型。一般把同名實(shí)體類型作為公共實(shí)體類型的一類候選,把具有相同鍵的實(shí)體類型作為公共

26、實(shí)體類型的另一類候選。2)局部ER模式的合并    合并的原則是:首先進(jìn)行兩兩合并;先和合并那些現(xiàn)實(shí)世界中有聯(lián)系的局部結(jié)構(gòu);合并從公共實(shí)體類型開(kāi)始,最后再加入獨(dú)立的局部結(jié)構(gòu)。3)消除沖突    沖突分為三類:屬性沖突、結(jié)構(gòu)沖突、命名沖突。設(shè)計(jì)全局ER模式的目的不在于把若干局部ER模式形式上合并為一個(gè)ER模式,而在于消除沖突,使之成為能夠被所有用戶共同理解和接受的同一的概

27、念模型。3)全局ER模式的優(yōu)化    在得到全局ER模式后,為了提高數(shù)據(jù)庫(kù)系統(tǒng)的效率,還應(yīng)進(jìn)一步依據(jù)處理需求對(duì)ER模式進(jìn)行優(yōu)化。一個(gè)好的全局ER模式,除能準(zhǔn)確、全面地反映用戶功能需求外,還應(yīng)滿足下列條件:實(shí)</p><p>  2.3. 系統(tǒng)邏輯和物理設(shè)計(jì)</p><p>  2.3.1數(shù)據(jù)庫(kù)的設(shè)計(jì)</p><p>  根據(jù)上面的數(shù)

28、據(jù)庫(kù)ER圖,現(xiàn)在需要將上面的數(shù)據(jù)庫(kù)概念結(jié)構(gòu)轉(zhuǎn)化為SQL Server2000數(shù)據(jù)庫(kù)系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型,也就是數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)。在上面的實(shí)體以及實(shí)體之間關(guān)系的基礎(chǔ)上,形成數(shù)據(jù)庫(kù)中的表格以及各個(gè)表格之間的關(guān)系。圖書(shū)管理信息系統(tǒng)數(shù)據(jù)庫(kù)中各個(gè)表格的設(shè)計(jì)結(jié)果如下面的幾個(gè)表格所示。每個(gè)表格表示在數(shù)據(jù)庫(kù)中的一個(gè)表。</p><p><b>  1.圖書(shū)類別表</b></p><p

29、><b>  2.圖書(shū)信息表</b></p><p><b>  3.借閱信息表</b></p><p><b>  4.讀者信息表</b></p><p>  5.讀者類別表          

30、                                     

31、60;                                    &

32、#160;                              </p><p>  2.3.2數(shù)據(jù)庫(kù)的維護(hù)&

33、lt;/p><p>  由于應(yīng)用環(huán)境不斷變化,數(shù)據(jù)庫(kù)運(yùn)行過(guò)和中物理存儲(chǔ)也會(huì)不斷變化,對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)進(jìn)行調(diào)整,修改等維護(hù)工作是設(shè)計(jì)工作的繼續(xù)和提高。對(duì)數(shù)據(jù)庫(kù)經(jīng)常性的維護(hù)工作主要包括:</p><p>  1.    數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)和恢復(fù)</p><p>  針對(duì)不同的應(yīng)用要求制定不同的轉(zhuǎn)儲(chǔ)計(jì)劃,保證一旦發(fā)生故障能盡快將數(shù)據(jù)庫(kù)恢復(fù)到某種一致的狀態(tài),

34、盡可能減少對(duì)數(shù)據(jù)庫(kù)的破壞。</p><p>  2.    數(shù)據(jù)庫(kù)的安全性、完整性控制</p><p>  在數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中由于應(yīng)用環(huán)境的變化,對(duì)安全性的要求也會(huì)發(fā)生變化,如原來(lái)機(jī)密的數(shù)據(jù)現(xiàn)在可以公開(kāi)查詢了,新加入的數(shù)據(jù)又可能是機(jī)密的了。系統(tǒng)中用戶的密級(jí)改變。這都需要根據(jù)實(shí)際情況修改原有的安全性控制,可以設(shè)置數(shù)據(jù)庫(kù)密碼及用戶權(quán)限。同樣,數(shù)據(jù)庫(kù)的完整性的約束條

35、件也會(huì)變化,需要DBA不斷修正。</p><p>  3.    數(shù)據(jù)庫(kù)性能的監(jiān)督、分析和改造</p><p>  利用Microsoft SQL Server2000提供的檢測(cè)系統(tǒng)性能參數(shù)的工具,在數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中,監(jiān)督數(shù)據(jù)進(jìn)行分析,找出改進(jìn)系統(tǒng)性能的方法,并做適當(dāng)調(diào)整。</p><p>  4.   

36、數(shù)據(jù)庫(kù)的重組及重構(gòu)造</p><p>  數(shù)據(jù)庫(kù)運(yùn)行一段時(shí)間后,由于記錄不斷增、刪、改,增添、修改的數(shù)據(jù)不能為空,否則不能保存到數(shù)據(jù)庫(kù)中。使數(shù)據(jù)庫(kù)的物理存儲(chǔ)情況變壞,降低了數(shù)據(jù)的存取效率,數(shù)據(jù)庫(kù)性能下降,這時(shí)DBA要對(duì)數(shù)據(jù)庫(kù)進(jìn)行重組織,或部分重組織(只對(duì)頻繁增、刪的表進(jìn)行重組織),可以利用Microsoft SQL Server2000專門(mén)提供的數(shù)據(jù)重組織實(shí)用程序操作,按原設(shè)計(jì)要求重新安排存儲(chǔ)位置、回收垃圾、減少

37、指針鏈等,提高系統(tǒng)性能。</p><p>  有些情況,如由于數(shù)據(jù)庫(kù)應(yīng)用環(huán)境發(fā)生變化,增加了新的應(yīng)用或新的實(shí)體,取消了某些應(yīng)用,有的實(shí)體與實(shí)體間的聯(lián)系發(fā)生變化,則需要調(diào)整數(shù)據(jù)庫(kù)的模式及內(nèi)模式。</p><p>  4.3功能模塊的實(shí)現(xiàn) </p><p><b>  數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p>  這里的數(shù)據(jù)庫(kù)采用

38、Access,用ADO作為連接數(shù)據(jù)對(duì)象。</p><p>  1、建立Access 數(shù)據(jù)庫(kù)</p><p>  啟動(dòng)Access,建立一個(gè)空的數(shù)據(jù)庫(kù)book.mdb,如圖3所示。</p><p>  使用程序設(shè)計(jì)器建立系統(tǒng)需要的表格如下。</p><p>  圖書(shū)登記表,如圖4所示?!    D3建立數(shù)據(jù)庫(kù)book.mdb

39、 圖4 圖書(shū)登記表  圖書(shū)借閱表,如圖5所示?!  D5 圖書(shū)借閱表  圖書(shū)資料表,如圖6所示。系統(tǒng)管理表,如圖7所示?!    D6 圖書(shū)資料表 </p><p>  圖7 系統(tǒng)管理表    。    2、連接數(shù)據(jù)  在Visual Basic環(huán)境下,選擇“工程”→“引用”命令,在隨后出現(xiàn)的對(duì)話框中選擇“Microsoft ActiveX Data Objects 2.0 Libr

40、ary”,然后單擊“確定”按鈕,如圖8所示。   圖8用ADO連接數(shù)據(jù)庫(kù)  在程序設(shè)計(jì)的公共模塊中,先定義ADO連接對(duì)象。語(yǔ)句如下:  Public conn As New ADODB.Connection ’ 標(biāo)記連接對(duì)象  然后在子程序中,用如下的語(yǔ)句即可打開(kāi)數(shù)據(jù)庫(kù):  Dim connectionstring As String  connectionstring = "provider=Microsoft

41、.Jet.oledb.4.0;" &_  "data source=book.mdb"  conn.Open connectionstring  3、設(shè)置ODBC  VB的ADO對(duì)象是通過(guò)ODBC來(lái)訪問(wèn)數(shù)據(jù)庫(kù),所以還要建立ODBC數(shù)據(jù)引擎接口。打開(kāi)控制面板中的“管理工具”→“數(shù)據(jù)源”(ODBC),出現(xiàn)如圖9所示的對(duì)話框?!  D9D</p><p><b&g

42、t;  界面設(shè)計(jì) </b></p><p>  設(shè)計(jì)好的界面(兩種界面選一)如圖12所示。</p><p>  圖12 圖書(shū)管理系統(tǒng)界面</p><p>  這是一個(gè)多文檔界面(MDI)應(yīng)用程序,可以同時(shí)顯示多個(gè)文檔,每個(gè)文檔顯示在各自的窗體中。MDI 應(yīng)用程序中常有包含子菜單的“窗體”選項(xiàng),用于在窗體或文檔之間進(jìn)行切換。</p><

43、p>  菜單應(yīng)用程序中,有5個(gè)菜單選項(xiàng),每個(gè)選項(xiàng)對(duì)應(yīng)著E-R圖的一個(gè)子項(xiàng)目。</p><p>  1、創(chuàng)建主窗體  首先創(chuàng)建一個(gè)工程,命名為圖書(shū)管理系統(tǒng),選擇“工程”→“添加MDI窗體”命令,則在項(xiàng)目中添加了主窗體。該窗體的一些屬性如表1所示。</p><p><b>  表1 主窗體的屬性</b></p><p>  Windowsta

44、te的值為Maxsize,即程序啟動(dòng)之后自動(dòng)最大化。</p><p>  將“菜單”組件從“工具箱”拖到窗體上。創(chuàng)建一個(gè) Text 屬性設(shè)置為“文件”的頂級(jí)菜單項(xiàng),且?guī)в忻麨椤瓣P(guān)閉”的子菜單項(xiàng)。類似地創(chuàng)建一些菜單項(xiàng),如表2所示。</p><p>  表2 菜 單 項(xiàng) 表</p><p><b>  2、創(chuàng)建各子窗體</b></p>

45、<p>  選擇“工程”→“添加窗體”命令,添加子窗體。</p><p>  在新建Visual Basic工程時(shí)自帶的窗體中,將其屬性MIDChild改成True,則這個(gè)窗體成為MID窗體的子窗體。</p><p>  在這個(gè)項(xiàng)目中,要?jiǎng)?chuàng)建的子窗體如表3所示。</p><p><b>  表3 所有子窗體</b></p>

46、;<p>  下面分別給出這些子窗體,以及它們所使用的控件。</p><p>  (1) 圖書(shū)登記子窗體控件如表4所示。</p><p>  表4 圖書(shū)登記子窗體控件</p><p>  圖書(shū)借閱和圖書(shū)賠償子窗體分別,因?yàn)樗鼈兊目丶c圖書(shū)登記子窗體的雷同,在此不作介紹。(2) 增加用戶子窗體如圖13所示,其控件如表5所示。</p>&l

47、t;p>  圖13 增加用戶子窗體</p><p>  表5 增加用戶子窗體控件</p><p>  (3) 修改密碼子窗體如圖14所示。</p><p>  圖14 修改密碼子窗體</p><p> ?。?) 用戶登錄子窗體如圖15所示?!?lt;/p><p>  圖15 用戶登錄子窗體 </p>&

48、lt;p>  (5) 添加讀者類別如圖16,其控件如表9所示。    圖16</p><p><b>  建立公共模塊</b></p><p><b>  1、顯示目錄</b></p><p>  建立公共模塊可以提高代碼的效率,同時(shí)使得修改和維護(hù)代碼都很方便。</p><p>  創(chuàng)建公

49、共模塊的步驟如下:</p><p>  (1) 在菜單中選擇“工程”→“添加模塊”命令,則出現(xiàn)模塊對(duì)話框,如圖18所示。</p><p>  (2) 選擇模塊圖標(biāo)后,單擊“打開(kāi)”按鈕,則模塊已經(jīng)添加到項(xiàng)目中了。默認(rèn)情況下名為Module1?!   D17 模塊對(duì)話框</p><p>  (3) 在模塊中定義整個(gè)項(xiàng)目的公共變量?! ublic conn As

50、New ADODB.Connection ’ 標(biāo)記連接對(duì)象  Public userID As String ’ 標(biāo)記當(dāng)前用戶ID  Public userpow As String ’ 標(biāo)記用戶權(quán)限  Public find As Boolean ’ 標(biāo)記查詢  Public sqlfind As String ’ 查詢語(yǔ)句  Public rs_data1 As New ADODB.Recordset  Public f

51、indok As Boolean  Public frmdata As Boolean  Public Const keyenter = 13 ’ enter鍵的ASCII碼  在主窗體添加完菜單之后,就要為各個(gè)子菜單創(chuàng)建事件處理程序。</p><p><b>  主窗體代碼</b></p><p>  在本項(xiàng)目中,子菜單事件都是Click事件,這里先給出主窗體

52、部分的代碼。</p><p>  下面是響應(yīng)“增加用戶”子菜單Click事件,調(diào)出增加用戶窗體代碼。</p><p>  Private Sub add_admin_Click()</p><p>  frmadduser.Show</p><p><b>  End Sub</b></p><p&g

53、t;  Private Sub add_back_book_Click()</p><p>  frmbackbookinfo.Show</p><p><b>  End Sub</b></p><p>  Private Sub add_book_info_Click()</p><p>  frmaddbookin

54、fo.Show</p><p><b>  End Sub</b></p><p>  Private Sub add_book_style_Click()</p><p>  frmaddbookstyle.Show</p><p><b>  End Sub</b></p><

55、;p>  Private Sub add_lend_book_Click()</p><p>  frmfindbook.Show</p><p><b>  End Sub</b></p><p>  Private Sub add_reader_info_Click()</p><p>  frmaddread

56、erinfo.Show</p><p><b>  End Sub</b></p><p>  Private Sub add_reader_style_Click()</p><p>  frmaddreaderstyle.Show</p><p><b>  End Sub</b></p&

57、gt;<p>  Private Sub change_pwd_Click()</p><p>  frmchangepwd.Show</p><p><b>  End Sub</b></p><p>  Private Sub del_book_info_Click()</p><p>  frmmod

58、ifybookinfo.Show</p><p><b>  End Sub</b></p><p>  Private Sub del_book_style_Click()</p><p>  frmmodifybookstyle.Show</p><p><b>  End Sub</b><

59、;/p><p>  Private Sub del_reader_info_Click()</p><p>  frmreaderinfo.Show</p><p><b>  End Sub</b></p><p>  Private Sub del_reader_style_Click()</p><

60、p>  frmmodifyreaderstyle.Show</p><p><b>  End Sub</b></p><p>  Private Sub exit_sys_Click()</p><p><b>  End</b></p><p><b>  End Sub<

61、/b></p><p>  Private Sub find_book_info_Click()</p><p>  frmfindbook.Show</p><p><b>  End Sub</b></p><p>  Private Sub find_lend_book_Click()</p>

62、<p>  frmfindborrowinfo.Show</p><p><b>  End Sub</b></p><p>  Private Sub find_reader_info_Click()</p><p>  frmfindreader.Show</p><p><b>  End Su

63、b</b></p><p>  Private Sub Form_Load()</p><p><b>  End Sub</b></p><p>  Private Sub modify_book_info_Click()</p><p>  frmmodifybookinfo.Show</p>

64、<p><b>  End Sub</b></p><p>  Private Sub modify_book_style_Click()</p><p>  frmmodifybookstyle.Show</p><p><b>  End Sub</b></p><p>  Pri

65、vate Sub modify_reader_info_Click()</p><p>  frmreaderinfo.Show</p><p><b>  End Sub</b></p><p>  Private Sub modify_reader_style_Click()</p><p>  frmmodifyr

66、eaderstyle.Show</p><p><b>  End Sub</b></p><p>  2、各子窗體的代碼    (1) 圖書(shū)登記子窗體代碼  本窗體用來(lái)填寫(xiě)圖書(shū)登記的信息,用ADO來(lái)連接數(shù)據(jù)庫(kù),是本窗體的重點(diǎn)。采用MDI的子程序,所以運(yùn)行后,它出現(xiàn)在主程序的界面下,如圖18所示?!  D18 圖書(shū)登記子窗體  按鈕控件要求先填寫(xiě)基本信息,然

67、后與數(shù)據(jù)庫(kù)信息比較?! ption Explicit</p><p>  Private Sub Command1_Click()</p><p>  Dim rs_addbook As New ADODB.Recordset</p><p>  Dim sql As String</p><p>  If Trim(Combo1.Tex

68、t) = "" Then</p><p>  MsgBox "請(qǐng)選擇圖書(shū)種類", vbOKOnly + vbExclamation, ""</p><p>  Combo1.SetFocus</p><p><b>  Exit Sub</b></p><p>

69、<b>  End If</b></p><p>  If Trim(Text1.Text) = "" Then</p><p>  MsgBox "圖書(shū)編號(hào)不能為空", vbOKOnly + vbExclamation, ""</p><p>  Text1.SetFocus<

70、/p><p><b>  Exit Sub</b></p><p><b>  End If</b></p><p>  If Trim(Text2.Text) = "" Then</p><p>  MsgBox "書(shū)名不能為空", vbOKOnly + vbE

71、xclamation, ""</p><p>  Text2.SetFocus</p><p><b>  Exit Sub</b></p><p><b>  End If</b></p><p>  If Not IsDate(Text5.Text) Then</p&g

72、t;<p>  MsgBox "請(qǐng)按照yyyy-mm-dd格式輸入日期", vbOKOnly + vbExclamation, ""</p><p>  Text5.SetFocus</p><p><b>  Exit Sub</b></p><p><b>  End If&l

73、t;/b></p><p>  If Not IsDate(Text6.Text) Then</p><p>  MsgBox "請(qǐng)按照yyyy-mm-dd格式輸入日期", vbOKOnly + vbExclamation, ""</p><p>  Text6.SetFocus</p><p>

74、<b>  Exit Sub</b></p><p><b>  End If</b></p><p>  sql = "select * from 書(shū)籍信息 where 書(shū)籍編號(hào)='" & Text1.Text & "'"</p><p>  rs_

75、addbook.Open sql, conn, adOpenKeyset, adLockPessimistic</p><p>  If rs_addbook.EOF Then</p><p>  rs_addbook.AddNew</p><p>  rs_addbook.Fields(0) = Trim(Text1.Text)</p><p&

76、gt;  rs_addbook.Fields(1) = Trim(Text2.Text)</p><p>  rs_addbook.Fields(2) = Trim(Combo1.Text)</p><p>  rs_addbook.Fields(3) = Trim(Text3.Text)</p><p>  rs_addbook.Fields(4) = Trim(

77、Text4.Text)</p><p>  rs_addbook.Fields(5) = Trim(Text5.Text)</p><p>  rs_addbook.Fields(6) = Trim(Text6.Text)</p><p>  rs_addbook.Fields(7) = "否"</p><p>  rs_

78、addbook.Update</p><p>  MsgBox "添加書(shū)籍信息成功!", vbOKOnly, ""</p><p>  rs_addbook.Close</p><p><b>  Else</b></p><p>  MsgBox "圖書(shū)編號(hào)重復(fù)!&qu

79、ot;, vbOKOnly + vbExclamation, ""</p><p>  Text1.SetFocus</p><p>  Text1.Text = ""</p><p>  rs_addbook.Close</p><p><b>  Exit Sub</b><

80、;/p><p><b>  End If</b></p><p><b>  End Sub</b></p><p>  Private Sub Command2_Click()</p><p><b>  Unload Me</b></p><p><

81、;b>  End Sub</b></p><p>  Private Sub Form_Load()</p><p>  Dim rs_leibie As New ADODB.Recordset</p><p>  Dim sql As String</p><p>  sql = "select * from 圖

82、書(shū)類別"</p><p>  rs_leibie.Open sql, conn, adOpenKeyset, adLockPessimistic</p><p>  rs_leibie.MoveFirst</p><p>  Do While Not rs_leibie.EOF</p><p>  Combo1.AddItem rs

83、_leibie.Fields(0)</p><p>  rs_leibie.MoveNext</p><p><b>  Loop</b></p><p>  rs_leibie.Close</p><p><b>  End Sub</b></p><p>  Privat

84、e Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)</p><p>  End Sub  圖書(shū)借閱子窗體運(yùn)行后如圖19所示,因?yàn)樗鼈兊拇a和圖書(shū)登記子窗體的代碼雷同,在此不做重復(fù)?!  D19 圖書(shū)借閱子窗體運(yùn)行效果    (2) 增加用戶子窗體代碼  增加用戶子窗體是用來(lái)增加用戶的用戶名、密碼和權(quán)限的?! 螕簟按_定”按

85、鈕后,還要返回一個(gè)信息框,提示成功信息,如圖20所示?!   D20 增加用戶子窗體運(yùn)行效果 </p><p>  信息框  窗體部分代碼的思路是,收集輸入的表中的字符串,然后與數(shù)據(jù)庫(kù)中的系統(tǒng)的用戶數(shù)據(jù)比較,如果不存在,則允許添加?! rivate Sub Command1_Click()</p><p>  Dim sql

86、 As String</p><p>  Dim rs_add As New ADODB.Recordset</p><p>  If Trim(Text1.Text) = "" Then</p><p>  MsgBox "用戶名不能為空", vbOKOnly + vbExclamation, ""<

87、;/p><p><b>  Exit Sub</b></p><p>  Text1.SetFocus</p><p><b>  Else</b></p><p>  sql = "select * from 系統(tǒng)管理"</p><p>  rs_add.O

88、pen sql, conn, adOpenKeyset, adLockPessimistic</p><p>  While (rs_add.EOF = False)</p><p>  If Trim(rs_add.Fields(0)) = Trim(Text1.Text) Then</p><p>  MsgBox "已有這個(gè)用戶", vbO

89、KOnly + vbExclamation, ""</p><p>  Text1.SetFocus</p><p>  Text1.Text = ""</p><p>  Text2.Text = ""</p><p>  Text3.Text = ""<

90、/p><p>  Combo1.Text = ""</p><p><b>  Exit Sub</b></p><p><b>  Else</b></p><p>  rs_add.MoveNext</p><p><b>  End If<

91、;/b></p><p><b>  Wend</b></p><p>  If Trim(Text2.Text) <> Trim(Text3.Text) Then</p><p>  MsgBox "兩次密碼不一致", vbOKOnly + vbExclamation, ""</

92、p><p>  Text2.SetFocus</p><p>  Text2.Text = ""</p><p>  Text3.Text = ""</p><p><b>  Exit Sub</b></p><p>  ElseIf Trim(Combo1.

93、Text) <> "system" And Trim(Combo1.Text) <> "guest" Then</p><p>  MsgBox "請(qǐng)選擇正確的用戶權(quán)限", vbOKOnly + vbExclamation, ""</p><p>  Combo1.SetFocus<

94、;/p><p>  Combo1.Text = ""</p><p><b>  Exit Sub</b></p><p><b>  Else</b></p><p>  rs_add.AddNew</p><p>  rs_add.Fields(0) =

95、Text1.Text</p><p>  rs_add.Fields(1) = Text2.Text</p><p>  rs_add.Fields(2) = Combo1.Text</p><p>  rs_add.Update</p><p>  rs_add.Close</p><p>  MsgBox &quo

96、t;添加用戶成功", vbOKOnly + vbExclamation, ""</p><p><b>  Unload Me</b></p><p><b>  End If</b></p><p><b>  End If</b></p><p&g

97、t;<b>  End Sub</b></p><p>  Private Sub Command2_Click()</p><p><b>  Unload Me</b></p><p><b>  End Sub</b></p><p>  Private Sub Form

98、_Load()</p><p>  Combo1.AddItem "system"</p><p>  Combo1.AddItem "guest"</p><p><b>  End Sub</b></p><p>  (3) 修改密碼子窗體代碼  修改密碼子窗體是用來(lái)修改用戶

99、密碼的?!  D21修改密碼子窗體運(yùn)行效果  在“確定”按鈕的Click事件中添加如下代碼:  Private Sub Command1_Click()  Dim rs_chang As New ADODB.Recordset  Dim sql As String  If Trim(Text1.Text) <> Trim(Text2.Text) Then  MsgBox "密碼不一致!",

100、 vbOKOnly + vbExclamation, ""  Text1.SetFocus  Text1.Text = ""  Text2.Text = ""  Else  sql = "select * from 系統(tǒng)管理 where 用戶名=’" & userID & "’"  rs_chang.Open

101、sql, conn, adOpenKeyset, adLockPessimistic  rs_chang.Fields(1) = Text1.Text  rs_chang.Update  rs_chan</p><p><b>  圖22</b></p><p>  在上述代碼中,首先比較兩個(gè)表中的數(shù)據(jù)是否一致,然后用rs_chang.Fields(1) = T

102、ext1.Text語(yǔ)句把代碼輸入到數(shù)據(jù)庫(kù)中。最后,用MsgBox "密碼修改成功", vbOKOnly + vbExclamation,""語(yǔ)句彈出一個(gè)信息框,告訴修改成功,如圖22所示?!   ?4) 查詢子窗體代碼  查詢子窗體是用來(lái)查詢庫(kù)房中圖書(shū)資料明細(xì)的。其運(yùn)行效果如圖23所示?!  D23 查詢子窗體運(yùn)行效果    Option Explicit</p><

103、;p>  Dim panduan As String</p><p>  Private Sub Command1_Click()</p><p>  Dim rs_findbook As New ADODB.Recordset</p><p>  Dim sql As String</p><p>  If Check1.Value

104、= vbChecked Then</p><p>  sql = "書(shū)名='" & Trim(Text1.Text & " ") & "'"</p><p><b>  End If</b></p><p>  If Check2.Value =

105、 vbChecked Then</p><p>  If Trim(sql) = "" Then</p><p>  sql = "類別='" & Trim(Combo1.Text & " ") & "'"</p><p><b>  E

106、lse</b></p><p>  sql = sql & "and 書(shū)名='" & Trim(Combo1.Text & " ") & "'"</p><p><b>  End If</b></p><p><b&g

107、t;  End If</b></p><p>  If Check3.Value = vbChecked Then</p><p>  If Trim(sql) = "" Then</p><p>  sql = "作者='" & Trim(Text2.Text & " "

108、;) & "'"</p><p><b>  Else</b></p><p>  sql = sql & "and 作者='" & Trim(Text2.Text & " ") & "'"</p><p

109、><b>  End If</b></p><p><b>  End If</b></p><p>  If Check4.Value = vbChecked Then</p><p>  If Trim(sql) = "" Then</p><p>  sql = &q

110、uot;出版社='" & Trim(Text3.Text & " ") & "'"</p><p><b>  Else</b></p><p>  sql = sql & "and 出版社='" & Trim(Text3.Text

111、& " ") & "'"</p><p><b>  End If</b></p><p><b>  End If</b></p><p>  If Check5.Value = vbChecked Then</p><p>  If

112、 Trim(sql) = "" Then</p><p>  sql = "書(shū)籍編號(hào)='" & Trim(Text4.Text & " ") & "'"</p><p><b>  Else</b></p><p>  sql

113、 = sql & "and 書(shū)籍編號(hào)='" & Trim(Text4.Text & " ") & "'"</p><p><b>  End If</b></p><p><b>  End If</b></p><p

114、>  If Trim(sql) = "" Then</p><p>  MsgBox "請(qǐng)選擇查詢方式!", vbOKOnly + vbExclamation</p><p><b>  Exit Sub</b></p><p><b>  End If</b></p&g

115、t;<p>  sql = "select * from 書(shū)籍信息 where " & sql</p><p>  rs_findbook.CursorLocation = adUseClient</p><p>  rs_findbook.Open sql, conn, adOpenKeyset, adLockPessimistic</p&

116、gt;<p>  DataGrid1.AllowAddNew = False</p><p>  DataGrid1.AllowDelete = False</p><p>  DataGrid1.AllowUpdate = False</p><p>  Set DataGrid1.DataSource = rs_findbook</p>

117、<p>  'rs_findbook.Close</p><p><b>  End Sub</b></p><p>  Private Sub Command2_Click()</p><p><b>  Unload Me</b></p><p><b>  En

118、d Sub</b></p><p>  Private Sub Command3_Click()</p><p>  If Trim(book_num) = "" Then</p><p>  MsgBox "請(qǐng)選擇要借閱的圖書(shū)!", vbOKOnly + vbExclamation</p><

119、p><b>  Exit Sub</b></p><p><b>  End If</b></p><p>  If panduan = "是" Then</p><p>  MsgBox "此書(shū)已被借出!", vbOKOnly + vbExclamation</p>

120、;<p><b>  Exit Sub</b></p><p><b>  End If</b></p><p>  frmborrowbook.Show</p><p><b>  End Sub</b></p><p>  Private Sub DataGr

121、id1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)</p><p>  book_num = DataGrid1.Columns(0).CellValue(DataGrid1.Bookmark)</p><p>  panduan = DataGrid1.Columns(7).CellValue(DataGrid1.

122、Bookmark)</p><p><b>  End Sub</b></p><p>  Private Sub Form_Load()</p><p>  Dim rs_find As New ADODB.Recordset</p><p>  Dim sql As String</p><p&g

123、t;  sql = "select * from 圖書(shū)類別"</p><p>  rs_find.Open sql, conn, adOpenKeyset, adLockPessimistic</p><p>  rs_find.MoveFirst</p><p>  If Not rs_find.EOF Then</p><

124、p>  Do While Not rs_find.EOF</p><p>  Combo1.AddItem rs_find.Fields(0)</p><p>  rs_find.MoveNext</p><p><b>  Loop</b></p><p>  Combo1.ListIndex = 0</p

125、><p><b>  End If</b></p><p>  rs_find.Close</p><p><b>  End Sub  </b></p><p>  查詢完畢后,輸出查詢結(jié)果,如圖24所示?!  ★@示目錄  (6) 用戶登錄子窗體代碼 在本項(xiàng)目中,用戶登錄子窗體是運(yùn)行的第一個(gè)

126、界面,它的作用是檢查用戶名和密碼是否正確。由于用戶的資料是存放在數(shù)據(jù)庫(kù)中,所以在啟動(dòng)該子窗體時(shí),就已經(jīng)連接了數(shù)據(jù)庫(kù)。其代碼如下:  Private Sub Form_Load()  Dim connectionstring As String  connectionstring = "provider=Microsoft.Jet.oledb.4.0;" & _  "data source=b

127、ook.mdb"  conn.Open connectionstring  cnt = 0  End Sub  “確定”按鈕的作用是檢查輸入的數(shù)據(jù)是否與數(shù)據(jù)庫(kù)中的數(shù)據(jù)一致。  Private Sub Command1_Click()  Dim sql As String  Dim rs_login As New ADODB.Recordset  If Trim(txtuser.Text) = "&qu

128、ot; Then ’ 判斷輸入的用戶名是否為空</p><p>  MsgBox "沒(méi)有這個(gè)用戶", vbOKOnly + vbExclamation, ""  txtuser.SetFocus  Else  sql = "select * from 系統(tǒng)管理 where 用戶名=’" & txtuser.Text & "

129、’"  rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic  If rs_login.EOF = True Then  MsgBox "沒(méi)有這個(gè)用戶", vbOKOnly + vbExclamation, ""  txtuser.SetFocus  Else ’ 檢驗(yàn)密碼是否正確  用戶名和密碼通過(guò)后,要關(guān)閉本窗體

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論