畢業(yè)論文(設(shè)計)圖書管理系統(tǒng)的設(shè)計與實現(xiàn)VB_第1頁
畢業(yè)論文(設(shè)計)圖書管理系統(tǒng)的設(shè)計與實現(xiàn)VB_第2頁
畢業(yè)論文(設(shè)計)圖書管理系統(tǒng)的設(shè)計與實現(xiàn)VB_第3頁
畢業(yè)論文(設(shè)計)圖書管理系統(tǒng)的設(shè)計與實現(xiàn)VB_第4頁
畢業(yè)論文(設(shè)計)圖書管理系統(tǒng)的設(shè)計與實現(xiàn)VB_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

錄TOC\o"1-3"\h\z摘要 3Abstract 3第一章緒論 41.1

數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)簡介 4

數(shù)據(jù)庫 41.1.2

數(shù)據(jù)庫管理系統(tǒng) 41.1.3

創(chuàng)立數(shù)據(jù)庫 41.2

圖書管理系統(tǒng) 5第二章圖書館管理系統(tǒng)的總體設(shè)計 52.1

功能分析 52.1.1

系統(tǒng)結(jié)構(gòu) 52.1.2

模塊設(shè)計 62.1.3

書籍管理局部 62.1.4讀者管理局部 72.1.5借閱管理局部 82.1.6系統(tǒng)管理局部 8第三章數(shù)據(jù)庫及開發(fā)平臺 83.1數(shù)據(jù)庫設(shè)計 83.2MicrosoftAccess介紹 83.3VisualBasic6.0介紹 9第四章

圖書館管理系統(tǒng)的具體實現(xiàn) 94.1建立主窗體 94.1.1添加菜單 94.1.2添加代碼 94.2建立添加圖書類別窗體 94.2.1建立窗體 94.2.2添加控件 94.2.3添加代碼 104.3建立圖書類別管理窗體 114.3.1建立窗體 114.3.2添加控件 124.3.3添加代碼 124.4建立添加圖書信息窗體 164.4.1建立窗體 164.4.2添加控件 164.4.3添加代碼 164.5建立圖書信息管理窗體 194.5.1建立窗體 194.5.2添加窗體 194.5.3添加代碼 194.6建立查詢圖書信息窗體 234.6.1建立窗體 234.6.2添加代碼 234.7建立添加借書信息窗體 254.7.1建立窗體 254.7.2添加控件 254.7.3添加代碼 264.8建立查詢借書信息窗體 304.8.1建立窗體 304.8.2添加控件 314.8.3添加代碼 314.9建立添加還書信息窗體 324.9.1建立窗體 324.9.2添加控件 334.9.3添加代碼 33第五章系統(tǒng)的發(fā)布 37第六章結(jié)論和總結(jié) 38參考文獻 39附錄 39摘要圖書管理系統(tǒng)是典型的信息管理系統(tǒng)〔MIS〕,其開發(fā)主要包括后臺數(shù)據(jù)庫的建立與維護以及前端應(yīng)用程序的開發(fā)兩發(fā)面。對于前者要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)平安性好的庫。而對于后者那么要求應(yīng)用程序功能完備,易使用等特點。因此本人結(jié)合開入式圖書館的要求,對Access數(shù)據(jù)庫管理系統(tǒng)、VisualBasic進行了較深入的學習和應(yīng)用,主要完成對圖書管理系統(tǒng)的需求分析、功能模塊劃分、數(shù)據(jù)庫模式分析,并由此設(shè)計了數(shù)據(jù)庫結(jié)構(gòu)和應(yīng)用程序。系統(tǒng)運行結(jié)果證明,本文所設(shè)計的圖書管理系統(tǒng)可以滿足借閱者、圖書館工作人員和高級管理員三方面的需求?!娟P(guān)鍵詞】:數(shù)據(jù)庫,Access,VisualBasic,圖書管理ABSTRACTBooksmanagementthesystemisatypicalinformationmanagementsystem(MIS),itsdevelopmentprimarilyincludethebackstagethedatabaseofestablishwiththedevelopmentthatmaintenanceandtheheadapplytheproceduretwoaspect.Requesttoestablishtorisethedatatheconsistencywiththelibthatthecompleteisstrong,datathesafetylikefortheformer.Butthenrequesttheappliedprocedurethefunctionforthelattercomplete,easyusageetc.characteristics.Thereforeoneselfcombinationopenintotherequestthattypelibrary,needtowardsAccessdatabasemanagementsystem,VisualBasicproceedin-depthlystudywithapply,primarilycompletetobooksmanagesystemanalysis,functionmoldthepiecedividetheline,databasemodeanalysis,combinedtofromheredesignedthedatabasetheconstructionwithappliedprocedure.Thesystemcirculatestopanouttheproof,thistextbooksthatdesignmanagementthesystemcansatisfytoborrowthebook,librarytheworkermanagethewithhighclassthreeaspectofdemand.【keyphrase】:Database,Access,VisualBasic,bookmanagement第一章緒論1.1數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)簡介在數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)之前,對開發(fā)數(shù)據(jù)庫的根本概念應(yīng)當了解,對數(shù)據(jù)庫的結(jié)構(gòu)、開發(fā)數(shù)據(jù)庫應(yīng)用程序的步驟、開發(fā)體系及方法都應(yīng)當有相當清晰的了解和認識。數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)的目標是建立一個滿足用戶長期需求的產(chǎn)品。開發(fā)的主要過程為:理解用戶的需求,然后,把它們轉(zhuǎn)變?yōu)橛行У臄?shù)據(jù)庫設(shè)計。把設(shè)計轉(zhuǎn)變?yōu)閷嶋H的數(shù)據(jù)庫,并且這些數(shù)據(jù)庫帶有功能完備、高效能的應(yīng)用。數(shù)據(jù)庫技術(shù)在計算機軟件鄰域研究中一直是非常重要的主題,產(chǎn)生于60年代,30多年來數(shù)據(jù)庫技術(shù)得到了迅速開展,并已形成較為完整的理論體系和一大批實用系統(tǒng)。并且,近年來,隨著WorldWideWeb(WWW)的猛增及Internet技術(shù)的迅速開展,使得數(shù)據(jù)庫技術(shù)之時成為最熱門技術(shù)之一。1.1.1數(shù)據(jù)庫數(shù)據(jù)庫由DBMS〔數(shù)據(jù)庫管理系統(tǒng)〕處理,DBMS那么由開發(fā)人員和用戶通過應(yīng)用程序直接或間接地使用。它主要包括四個要素:用戶數(shù)據(jù)、元數(shù)據(jù)、索引和應(yīng)用元數(shù)據(jù)。數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)〔DBMS〕是指數(shù)據(jù)庫系統(tǒng)中管理數(shù)據(jù)的軟件系統(tǒng)。DBMS是數(shù)據(jù)庫系統(tǒng)的核心組成局部。對數(shù)據(jù)庫的一切操作,包括定義、更新及各種控制,都是通過DBMS進行的。DBMS總是基于某種數(shù)據(jù)模型,可以把DBMS看成是某種數(shù)據(jù)模型在計算機系統(tǒng)上的具體實現(xiàn)。根據(jù)數(shù)據(jù)模型的不同,DBMS可以分成層次型、網(wǎng)狀型、關(guān)系型、面向?qū)ο笮偷取?.1.3創(chuàng)立數(shù)據(jù)庫數(shù)據(jù)庫模式定義了數(shù)據(jù)庫的結(jié)構(gòu)、表、關(guān)系、域和業(yè)務(wù)規(guī)那么。數(shù)據(jù)庫模式是一種設(shè)計,數(shù)據(jù)庫和應(yīng)用正是建立在此根底上的。域是一列可能擁有的值的集合。必須為每一個表的每一列確定域。除了數(shù)據(jù)的物理格式外,還需要確定是否有些域?qū)Ρ韥碚f是唯一的。數(shù)據(jù)庫模式的最后一個要素是業(yè)務(wù)規(guī)那么,它是對需要反映在數(shù)據(jù)庫和數(shù)據(jù)庫應(yīng)用程序中的業(yè)務(wù)活動的約束。業(yè)務(wù)規(guī)那么是模式的一個重要局部,因為他們指定了無論什么數(shù)據(jù)變化到達DBMS引擎,允許的數(shù)據(jù)值必須滿足的約束。不管無效的數(shù)據(jù)變化請求是來自窗體的用戶、查詢/修改請求還是應(yīng)用程序,DBMS都應(yīng)該拒絕。1.2圖書管理系統(tǒng)當今時代是飛速開展的信息時代。在各行各業(yè)中離不開信息處理,這正是計算機被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計算機的最大好處在于利用它能夠進行信息管理。使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其平安性。尤其對于復(fù)雜的信息管理,計算機能夠充分發(fā)揮它的優(yōu)越性。計算機進行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好圖書館信息而設(shè)計的。圖書館作為一種信息資源的集散地,圖書和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,現(xiàn)今,有很多的圖書館都是初步開始使用,甚至尚未使用計算機進行信息管理??偟膩碚f,缺乏系統(tǒng),標準的信息管理手段。盡管有的圖書館有計算機,但是尚未用于信息管理,沒有發(fā)揮它的效力,資源閑置比擬突出,這就是管理信息系統(tǒng)的開發(fā)的根本環(huán)境。數(shù)據(jù)處理手工操作,工作量大,出錯率高,出錯后不易更改。圖書館采取手工方式對圖書借閱情況進行人工管理,由于信息比擬多,圖書借閱信息的管理工作混亂而又復(fù)雜;一般借閱情況是記錄在借書證上,圖書的數(shù)目和內(nèi)容記錄在文件中,圖書館的工作人員和管理員也只是當時對它比擬清楚,時間一長,如再要進行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費時、費力。如要對很長時間以前的圖書進行更改就更加困難了。基于這此問題,我認為有必要建立一個圖書管理系統(tǒng),使圖書管理工作標準化,系統(tǒng)化,程序化,防止圖書管理的隨意性,提高信息處理的速度和準確性,能夠及時、準確、有效的查詢和修改圖書情況。第二章圖書館管理系統(tǒng)的總體設(shè)計2.1功能分析2.1.1系統(tǒng)結(jié)構(gòu)開發(fā)本系統(tǒng)的總體任務(wù)是實現(xiàn)圖書管理的系統(tǒng)化和自動化,幫助圖書管理人員更好更高效地完成圖書管理工作。本系統(tǒng)要完成的功能有:書籍管理局部:這一局部包括書籍類別管理和書籍信息管理兩局部。其中,書籍類別管理包括添加書籍類別、修改書籍類別等:書籍信息管理包括書籍信息的添加,書籍信息的修改、書籍信息的查詢、書籍信息的刪除等。讀者管理局部:這一局部包括讀者類別管理和讀者信息管理兩局部。其中,讀者類別管理包括添加讀者類別、修改讀者類別等:讀者信息管理包括添加讀者信息、修改讀者信息、刪除讀者信息、查詢讀者信息等。借閱管理局部:這一局部包括借書信息管理和還書信息管理兩局部。其中,借書信息管理包括借書信息的添加、借書信息的修改、借書信息的查詢等:還書信息管理局部包括還書信息的添加、還書信息的修改、還書信息的查詢等:系統(tǒng)管理:包括修改系統(tǒng)用戶密碼、增加新用戶以及退出系統(tǒng)等。2.1.2模塊設(shè)計根據(jù)上面所介紹的主要功能,對這個系統(tǒng)進行分析,得到如圖1所示的系統(tǒng)功能模塊圖。2.1.3書籍管理局部書籍管理局部包括書籍信息管理和書籍類別管理,其功能是實現(xiàn)對各局部數(shù)據(jù)內(nèi)容的添加、修改、刪除等操作。各管理局部的明細如下:

圖書管理系統(tǒng)圖書管理系統(tǒng)讀者管理局部系統(tǒng)管理讀者書籍管理局部借閱管理局部讀者管理局部系統(tǒng)管理讀者書籍管理局部借閱管理局部還書管理讀者類別管理書籍信息管理書籍類別管理讀者信息管理增加用戶修改密碼借書管理還書管理讀者類別管理書籍信息管理書籍類別管理讀者信息管理增加用戶修改密碼借書管理刪除讀者信息添加讀者信息修改讀者信息添加讀者信息添加讀者類別書籍類別修改書籍類別添加書籍信息刪除書籍信息查詢書籍信息修改書籍信息添加還書信息修改還書信息添加還書信息查詢借書信息查詢查詢讀者信息查詢讀者信息借書信息修改刪除讀者信息添加讀者信息修改讀者信息添加讀者信息添加讀者類別書籍類別修改書籍類別添加書籍信息刪除書籍信息查詢書籍信息修改書籍信息添加還書信息修改還書信息添加還書信息查詢借書信息查詢查詢讀者信息查詢讀者信息借書信息修改借書信息添加圖1系統(tǒng)功能模塊圖書籍信息管理:包括書籍信息的添加、書籍信息的修改、書籍信息的查詢和書籍信息的刪除4局部功能。其中,書籍信息包括圖書編號、書名、圖書類別、作者、出版社、出版日期、登記日期以及是否已被借出。(2)書籍類別管理:包括書籍類別的添加、書籍類別的修改、書籍類別的刪除3局部功能。其中,書籍類別包括類別名稱和類別編號兩局部。2.1.4讀者管理局部讀者管理局部包括讀者信息管理和讀者類別管理,其功能是實現(xiàn)對各局部數(shù)據(jù)內(nèi)容的添加、修改、刪除等操作。各管理局部的明細如下:(1〉讀者信息管理:包括讀者信息的添加、讀者信息的修改、讀者信息的查詢和讀者信息的刪除4局部功能。其中,讀者信息包括讀者姓名、讀者編號、性別、讀者類別、工作單位、家庭住址、號碼、登記日期和己借書數(shù)量。讀者類別管理:包括讀者類別的添加、讀者類別的修改、讀者類別的刪除3局部功能。其中,讀者類別包括種類名稱、借書數(shù)量、借書期限和有效期限4局部。2.1.5借閱管理局部借閱管理局部包括借書管理和還書管理,其功能是實現(xiàn)對各局部數(shù)據(jù)內(nèi)容的添加和查詢操作。各管理局部的明細如下:〔1〕借書管理:包括添加借書信息和查詢借書信息2局部功能。其中,借閱信息包括借閱編號、讀者編號、讀者姓名、書籍編號、書籍名稱、出借日期和還書日期。(2)還書管理:實現(xiàn)添加還書信息功能。其中,還書信息與借閱信息各局部明細相同。2.1.6系統(tǒng)管理局部設(shè)置操作人員。系統(tǒng)初始設(shè)置一個超級用戶名和密碼,操作人員可以利用這個超級用戶名和密碼登錄,之后,可以設(shè)置其他的超級用戶名稱,也可以設(shè)置權(quán)限用戶,同時也設(shè)置了這個用戶可以使用的權(quán)限。此外,在系統(tǒng)登錄界面中輸入密碼與用戶名不符3次將自動退出登錄。第三章數(shù)據(jù)庫及開發(fā)平臺3.1數(shù)據(jù)庫設(shè)計根據(jù)上面分析的系統(tǒng)的各種功能要求,可以很容易想到系統(tǒng)所需的數(shù)據(jù)庫應(yīng)該按照如下思路設(shè)計:書籍類別、書籍信息、讀者類別、讀者信息和圖書借閱局部等應(yīng)該各自作為一個表存在,此外,系統(tǒng)管理員的信息單獨使用一個表來記錄。本系統(tǒng)效勞器端采用Windows2000作為操作系統(tǒng),同時配置Access數(shù)據(jù)庫效勞器,用于數(shù)據(jù)的存儲和處理,客戶端采用Windows2000操作系統(tǒng)。前臺開發(fā)工具采用VisualBasic,后臺數(shù)據(jù)庫連接是采用Access數(shù)據(jù)庫效勞器?!?〕MicrosoftAccess建立一個數(shù)據(jù)庫我們有多種選擇,在本系統(tǒng)中,作為圖書館管理系統(tǒng)的一個比擬小的應(yīng)用系統(tǒng),它所產(chǎn)生和處理的數(shù)據(jù)量也比擬小。因此,沒有必要使用像SQLServer和Oracle這樣的大型數(shù)據(jù)庫。MicrosoftOffice中的Access數(shù)據(jù)庫在計算機上的應(yīng)用比擬普及,是開發(fā)小型數(shù)據(jù)庫系統(tǒng)的比擬理想的選擇,所以,在本系統(tǒng)中我選擇了Access數(shù)據(jù)庫。與其他數(shù)據(jù)庫系統(tǒng)相比,Access更加簡單易學,普通的計算機用戶可以很快的掌握它。Access2000的功能十分強大,利用它可以方便地實現(xiàn)對信息保存、維護、查詢、統(tǒng)計、打印、交流、發(fā)布,而且它可以方便地與Office其他組件交流數(shù)據(jù),這些功能對一般用戶而言已經(jīng)足夠〔2〕VisualBasicMicrosoftVisualbasic是可視化的,面向?qū)ο蟮?由事件驅(qū)動的結(jié)構(gòu)化高級程序設(shè)計語言.它提供了最迅速,最簡潔的開發(fā)應(yīng)用程序的方法.Visual的中文意思是可視的,直觀的,看得見的,形象化的.這里的Visual指直觀的開發(fā)應(yīng)用程序界面的方法,只需將系統(tǒng)提供的標準控件手臂放到屏幕窗體上,Visualbasic就會自動地生成相應(yīng)控件的程序代碼和其屬性數(shù)據(jù),而不需要用戶去編寫大量的界面程序代碼.Basic指的是BASIC語言,為Beginner’All-purposeSymbolicInstructionCode一詞的縮寫,意思是初學者通用符號指令代碼.該語言在開展史上是使用最為廣泛的程序合計語言,它易學,易懂,深受廣闊初學者的歡送.Visualbasic在原有BASIC語言的根底上開展成為易學,易掌握的,功能強大的最新程序設(shè)計語言.第四章圖書館管理系統(tǒng)的具體實現(xiàn)4.1建立主窗體4.1.1添加菜單使用菜單編輯器編輯系統(tǒng)主菜單。4.1.2添加代碼主窗體中的代碼不多,根本上都是實現(xiàn)單擊某個菜單項選擇項即彈出相應(yīng)窗體的語句,這些語句將分別在各個窗體中介紹。單擊"系統(tǒng)管理"一)"退出系統(tǒng)"菜單,關(guān)閉系統(tǒng)代碼如下。Privatesubexit_sys_click()EndEndSub4.2建立添加圖書類別窗體4.2.1建立窗體添加一個窗體,并按照表所示設(shè)置窗體的屬性。4.2.2添加控件添加圖書類別窗體由2個Text控件、2個Label控件、2個CommandButton控件組成。其中,2個Label控件作為標識,2個Text控件接收用戶輸入,2個CommandButton控件作為"確定"和"取消"按鈕。添加這些控件,并按照表所示設(shè)置這些控件的屬性。4.2.3添加代碼當單擊"圖書管理/圖書類別管理/添加圖書類別"菜單時,彈出如下圖窗體。代碼如下。PrivateSubadd_book_style_click()Frmaddbookstyle.showEndsub當單擊"確定"按鈕時,首先檢查輸入的圖書類型和種類編號是否為空,代碼如下。Privatesubcommand1_click()DimsqlAsstringIftrim(text1.text)=〞〞thenMsgbox〞圖書種類不能為空〞,vbOKOnly+vbExclamation,〞Text1.setfocusExitsubEndifIftrim(text2.text)=〞〞thenMsgbox〞種類不能為空〞,vbOKOnly+vbExclamation,〞Text1.setfocusExitsubEndif……如果不為空,那么檢查類別名稱是否有重復(fù),需要翻開圖書類別表,先定義一個字符串類型的變量和一個Recordset對象變量。Privatesubcomm.and1_click()Dimrs_booksytleasnewadodb.recordsetDimsqlasstringIftrim(text1.text)=〞〞then……使用Recordset對象的open方法翻開數(shù)據(jù)表。Privatesubcomm.and1_click()……endifsql=〞select*from圖書類別where類別名稱=“&text1.text&〞〞rs_bookstyle.opensql,conn,adOpenKeyset,adLockPessimistic如果沒有重復(fù),此時Recordset對象的EOF屬性應(yīng)改為Fasle,此時將新的數(shù)據(jù)添加到數(shù)據(jù)庫,并給出提示代碼如下。Privatesubcommand1_click()……ifrs_bookstyle.eofthenrs_bookstyle.addnewrs_bookstyle.fields(0)=trim(text1.text)rs_bookstyle.fields(1)=trim(text2.text)rs_bookstyle.updateMsgbox〞添加圖書類別成功!〞,vbOKOnly,〞〞rs_bookstyel.closeelse……如果有重復(fù),那么給出提示,然后將焦點設(shè)置給Text1,并將所有的文本框清空,代碼如下。Privatesubcommand1_click()……elsemsgbox〞讀者類別重復(fù)!〞,vbokonly+vbExclamation.〞〞Text1.setfocusText1.text=〞〞Rs_bookstyle.close;ExitsubEndifEndsub當單擊"取消"時,那么退出此窗體,代碼如下。Privatesubcommand2_click()UnloadmeEndsub以上就是添加圖書類別窗體的實現(xiàn)過程。4.3建立圖書類別管理窗體(修改、刪除類別)4.3.1建立窗體添加一個窗體,并按照表1所示設(shè)置窗體的屬性。表1圖書類別管理窗體的屬性設(shè)置窗體屬性取值NameFrmmodifybookstylecaption圖書類別管理StartUpPosition2-cneterScreenmaxButtonfalse4.3.2添加控件圖書類別管理窗體由1個Datagrid控件、2個Frame控件、4個CommandButton控件組成。其中,2個Frame控件作為容器,分別用來放置Datagrid控件和CommandButton控件,4個CommandButton控件作為"修改類別"、"刪除類別"、"更新"和"取消"按鈕。這一局部需要用到Datagdd控件。用戶自行將其添加到控件欄內(nèi)。方法是單擊"工程"一?"部件"菜單,在窗體中找到"MicrosoftDatagridControl6.0。"選項并在其前面的方框內(nèi)打勾。添加完后,在控件欄內(nèi)應(yīng)該顯示Datagrid的圖標。添加這些控件,并按照表2所示設(shè)置這些控件的屬性。表2控件的屬性設(shè)置控件屬性屬性取值Frame1Caption空Frame2Caption空Command1(名稱)cmdmodifyCaption修改類別Command2(名稱)CmddelCaption刪除類別Command3(名稱)CmdupdateCaption更新Command2(名稱)CmdcancelCaption取消Datagdd控件的屬性不需要做任何修改,取默認值即可。4.3.3添加代碼當單擊"圖書管理/圖書類別管理/修改圖書類別"菜單時,彈出如下圖的窗體。代碼如下:Privatesubmodify_book_style_click()Frmmodifybookstyle.showEndsub當單擊"圖書管理/圖書類別管理/刪除圖書類別"菜單時,彈出窗體。代碼如下。Privatesubdel_book_style_click()Frmmdifybookstyle.showEndsub在窗體力加載時,首先翻開數(shù)據(jù)表。在通用變量聲明局部定義一個Recordset數(shù)據(jù)對象,代碼如下。OptionexplicitDimrs_readerasnewadodb.recordset在Form_Load事件中首先翻開圖書類別數(shù)據(jù)表,使用Recordset對象的Open方法,代碼如下。Privatesubform_lock()DimsqlasstringOnerrorgotoloaderrorSql=〞select*from圖書類別〞Rs_reader.cursolocation=adUseClientRs_reader.opensql,conn,adopenKeyset,adLockPessimistic‘翻開數(shù)據(jù)庫……窗體剛剛加載時,“更新〞按鈕應(yīng)設(shè)置為不可用,即將其Enabled書行為falseprivatesubform_load()……cmdupdate.Enabled=false設(shè)置Datagrid控件不可更改,即將其AllowAddNew、AllowDelete、AllowUpdate屬性設(shè)置為Fdse。Privatesubform_load()……‘設(shè)定datagrid控件屬性datagrid1.allowaddnew=false不可增加datagrid1.allowdelete=false不可刪除datagrid1.allowupdate=false使用datagrid控件顯示圖書類別數(shù)據(jù)表中的數(shù)據(jù)信息,只需將該控件的datasource屬性設(shè)置為recordset對象即可privatesubform_load()……setdatagrid1.datasource=rs_reader……endsub添加錯誤處理局部的語句如下。privatesubform_load()……setdatagrid1.datasource=rs_readerexitsubloaderror:msgboxerr.descriptionendsub雙擊"修改類別"按鈕,添加代碼以實現(xiàn)這局部的功能。當窗體處于修改類別狀態(tài)時,該按鈕和刪除按鈕是不可用的,將其Enabled屬性設(shè)置為False,更新和取消按鈕是可用的,將其Enabled屬性設(shè)置位True。PrivateSubcmdmodify_Click()DimanswerAsStringOnErrorGoTocmdmodifycmddel.Enabled=Falsecmdmodify.Enabled=Falsecmdupdate.Enabled=Truecmdcancel.Enabled=True當窗體處于修改類別狀態(tài)時,Datagrid控件的AllowUpdate屬性應(yīng)該是可用的,將其設(shè)置位True。PrivateSubcmdmodify_Click()Cmdcancel.enabled=trueDatagrid1.allowupdate=trueCmdmodify:添加錯誤處理語句。PrivateSubcmdmodify_Click()DimanswerAsStringOnErrorGoTocmdmodifyCmdmodify:IfErr.Number<>0ThenMsgBoxErr.DescriptionEndIfEndSub修改數(shù)據(jù)后,單擊"更新"按鈕,那么系統(tǒng)將會更新當前的數(shù)據(jù)。使用Update方法,代碼如下。PrivateSubcmdupdate_Click()IfNotIsNull(DataGrid1.Bookmark)Thenrs_reader.UpdateEndIf然后將各個按鈕的狀態(tài)恢復(fù)到修改前。PrivateSubcmdupdate_Click()cmdmodify.Enabled=Truecmddel.Enabled=Truecmdcancel.Enabled=Falsecmdupdate.Enabled=FalseDataGrid1.AllowUpdate=FalseMsgBox"修改成功!",vbOKOnly+vbExclamation,""EndSub修改數(shù)據(jù)后,如果想放棄修改,那么單擊"取消"按鈕即可。雙擊"取消"按鈕,添加代碼以實現(xiàn)這局部功能。將按鈕復(fù)原,使用CancelUpdate方法取消更新,重新顯示數(shù)據(jù),并將表格控件的A11owAddNew和AllowUpdate屬性設(shè)置為False。PrivateSubcmdcancel_Click()rs_reader.CancelUpdateDataGrid1.RefreshDataGrid1.AllowAddNew=FalseDataGrid1.AllowUpdate=Falsecmdmodify.Enabled=Truecmddel.Enabled=Truecmdcancel.Enabled=Falsecmdupdate.Enabled=FalseEndSub雙擊"刪除類別"按鈕,添加代碼以實現(xiàn)這局部的功能。首先提示用戶是否確定刪除,定義一個字符串變量接受用戶的答復(fù)。PrivateSubcmddel_Click()DimanswerAsStringOnErrorGoTodelerroranswer=MsgBox("確定要刪除嗎?",vbYesNo,"")……如果答復(fù)“是〞,將當前表格的Allowdelete屬性設(shè)置為True.使用Recordset對象的方法將當前的記錄刪除,使用update方法將數(shù)據(jù)表更新PrivateSubcmddel_Click()DimanswerAsStringOnErrorGoTodelerroranswer=MsgBox("確定要刪除嗎?",vbYesNo,"")Ifanswer=vbYesThenDataGrid1.AllowDelete=Truers_reader.Deleters_reader.Update……這時數(shù)據(jù)表發(fā)生了變化,應(yīng)該將Datagrid刷新以顯示這一變化,同時提示用戶刪除成功,并將AllowDelete屬性設(shè)置為False。PrivateSubcmddel_Click()……rs_reader.UpdateDataGrid1.Refresh如果用戶答復(fù)"否",那么退出此過程。PrivateSubcmddel_Click()……ElseExitSubEndIf當窗體卸載的時候,將Datagid控件的DataSource屬性設(shè)置為Nothing,同時關(guān)閉數(shù)據(jù)對象。PrivateSubForm_Unload(CancelAsInteger)SetDataGrid1.DataSource=Nothingrs_reader.CloseEndSub以上就是圖書類別管理窗體的實現(xiàn)過程。4.4建立添加圖書信息窗體4.4.1建立窗體添加一個窗體。4.4.2添加控件添加圖書信息窗體由1個Frame控件、1個ComboBox控件、2個CommandButton控件、6個Text控件和7個Label控件組成。其中,7個Label控件作為標識,6個Text控件和1個ComboBox控件用于接收用戶輸入,2個CommandButton控件作為"確定"和"取消"按鈕。添加這些控件,并設(shè)置這些控件的屬性。添加好控件的窗體效果如下圖。4.4.3添加代碼當單擊"圖書管理/圖書信息管理/添加圖書信息"菜單時,彈出如上圖所示窗體。設(shè)計代碼如下。PrivateSubadd_book_info_Click()frmaddbookinfo.ShowEndSub窗體加載時,首先將所有可選的圖書類別添加到列表框中。定義一個Recordset對象用來翻開數(shù)據(jù)表。PrivateSubForm_Load()Dimrs_leibieAsNewADODB.RecordsetDimsqlAsStringsql="select*from圖書類別"rs_leibie.Opensql,conn,adOpenKeyset,adLockPessimistic使用Recordset對象的MoveFirst方法將數(shù)據(jù)記錄移動到第一條,并使用循環(huán)語句將所有的圖書類別添加到列表框中。PrivateSubForm_Load()……rs_leibie.MoveFirstDoWhileNotrs_leibie.EOFCombo1.AddItemrs_leibie.Fields(0)rs_leibie.MoveNextLooprs_leibie.CloseEndSub當單擊"確定"按鈕時,首先檢查輸入的圖書類型、圖書編號和書名是否為空,代碼如下。PrivateSubCommand1_Click()DimsqlAsStringIfTrim(Combo1.Text)=""ThenMsgBox"請選擇圖書種類",vbOKOnly+vbExclamation,""Combo1.SetFocusExitSubEndIfIfTrim(Text1.Text)=""ThenMsgBox"圖書編號不能為空",vbOKOnly+vbExclamation,""Text1.SetFocusExitSubEndIfIfTrim(Text2.Text)=""ThenMsgBox"書名不能為空",vbOKOnly+vbExclamation,""Text2.SetFocusExitSubEndIf然后檢查輸入的日期的格式是否正確,如果不正確那么給出提示,代碼如下。PrivateSubCommand1_Click()……IfNotIsDate(Text5.Text)ThenMsgBox"請按照yyyy-mm-dd格式輸入日期",vbOKOnly+vbExclamation,""Text5.SetFocusExitSubEndIfIfNotIsDate(Text6.Text)ThenMsgBox"請按照yyyy-mm-dd格式輸入日期",vbOKOnly+vbExclamation,""Text6.SetFocusExitSubEndIf檢查圖書編號是否有重復(fù),需要翻開書籍信息表,先定義一個字符串類型的變量和一個Recordset對象變量。PrivateSubCommand1_Click()Dimrs_addbookAsNewADODB.RecordsetDimsqlAsString使用Recordset對象的open方法翻開數(shù)據(jù)表。PrivateSubCommand1_Click()……EndIfsql="select*from書籍信息where書籍編號='"&Text1.Text&"'"rs_addbook.Opensql,conn,adOpenKeyset,adLockPessimisticIfrs_addbook.EOFThen如果沒有重復(fù),此時Recordset對象的EOF屬性應(yīng)改為true,此時將新的數(shù)據(jù)添加到數(shù)據(jù)庫,并給出提示代碼如下?!璉frs_addbook.EOFThenrs_addbook.AddNewrs_addbook.Fields(0)=Trim(Text1.Text)rs_addbook.Fields(1)=Trim(Text2.Text)rs_addbook.Fields(2)=Trim(Combo1.Text)rs_addbook.Fields(3)=Trim(Text3.Text)rs_addbook.Fields(4)=Trim(Text4.Text)rs_addbook.Fields(5)=Trim(Text5.Text)rs_addbook.Fields(6)=Trim(Text6.Text)rs_addbook.Fields(7)="否"rs_addbook.UpdateMsgBox"添加書籍信息成功!",vbOKOnly,""rs_addbook.CloseElse如果有重復(fù),那么給出提示,然后將焦點設(shè)置給Text1,并將所有的文本框清空,代碼如下。PrivateSubCommand1_Click()……ElseMsgBox"圖書編號重復(fù)!",vbOKOnly+vbExclamation,""Text1.SetFocusText1.Text=""rs_addbook.CloseExitSubEndIfEndSub當單擊"取消"時,那么退出此窗體,代碼如下。PrivateSubCommand2_Click()UnloadMeEndSub以上就是添加圖書信息窗體的實現(xiàn)過程。4.5建立圖書信息管理窗體4.5.1建立窗體4.5.2添加控件圖書信息管理窗體由1個Datagdd控件、2個Frame控件、4個CommandButton控件組成。其中,2個Frame控件作為容器,分別用來放置Datagrid控件和CommandButton控件,4個CommandButton控件作為"修改信息"、"刪除信息"、"更新"和"取消"按鈕。添加這些控件,并設(shè)置這些控件的屬性。Datagrid控件的屬性不需要做任何修改,取默認值即可。添加好控件的窗體效果如下圖。4.5.3添加代碼當單擊〞圖書管理/圖書信息管理/修改圖書信息"菜單時,彈出上圖窗體。代碼如下。PrivateSubmodify_book_info_Click()frmmodifybookinfo.ShowEndSub當單擊"圖書管理/圖書信息管理/刪除圖書信息"菜單時,彈出上面所示窗體.代碼如下。PrivateSubdel_book_info_Click()frmmodifybookinfo.ShowEndSub在窗體加載時,首先翻開數(shù)據(jù)表。在通用變量聲明局部定義一個Recordset數(shù)據(jù)對象,代碼如下。OptionexplicitDimrs_bookasnewadodb.recordset在Form_Load事件中首先翻開書藉信息數(shù)據(jù)表,使用recordset對象的方法,代碼如下。PrivateSubForm_Load()DimsqlAsStringOnErrorGoToloaderrorsql="select*from書籍信息"rs_book.CursorLocation=adUseClientrs_book.Opensql,conn,adOpenKeyset,adLockPessimistic'翻開數(shù)據(jù)庫……窗體剛剛加載時,“更新〞按鈕應(yīng)設(shè)置為不可用,即將其行為False.PrivateSubForm_Load()……cmdupdate.Enabled=False設(shè)置Datagrid控件不可更改,即將其AllowAddNew、AllowDelete、AllowUpdate屬性設(shè)置為False。PrivateSubForm_Load()……'設(shè)定datagrid控件屬性DataGrid1.AllowAddNew=False'不可增加DataGrid1.AllowDelete=False'不可刪除DataGrid1.AllowUpdate=False……使用Datagrid控件顯示書藉信息數(shù)據(jù)表中的數(shù)據(jù)信息,只需將該控件的Datasource屬性設(shè)置為Recordset對象即可。PrivateSubForm_Load()……SetDataGrid1.DataSource=rs_book……EndSub添加錯誤處理局部的語句如下。PrivateSubForm_Load()……SetDataGrid1.DataSource=rs_bookExitSubloaderror:MsgBoxErr.DescriptionEndSub雙擊"修改信息"按鈕,添加代碼以實現(xiàn)這局部的功能。當窗體處于修改信息狀態(tài)時,該按鈕和刪除按鈕是不可用的,將其Enabled屬性設(shè)置為False,更新和取消按鈕是可用的,將其Enabled)寓'性設(shè)置位True。PrivateSubcmdmodify_Click()DimanswerAsStringOnErrorGoTocmdmodifycmddel.Enabled=Falsecmdmodify.Enabled=Falsecmdupdate.Enabled=Truecmdcancel.Enabled=True……當窗體處于修改信息狀態(tài)時,Datagrid控件的A1IowUpdate屬性應(yīng)該是可用的,將其設(shè)置位True。PrivateSubcmdmodify_Click()……cmdcancel.Enabled=TrueDataGrid1.AllowUpdate=Truecmdmodify:添加錯誤處理語句。PrivateSubcmdmodify_Click()DimanswerAsStringOnErrorGoTocmdmodify……cmdmodify:IfErr.Number<>0ThenMsgBoxErr.DescriptionEndIfEndSub修改數(shù)據(jù)后,單擊"更新"按鈕,那么系統(tǒng)將會更新當前的數(shù)據(jù)。使用Update方法,代碼如下。PrivateSubcmdupdate_Click()IfNotIsNull(DataGrid1.Bookmark)Thenrs_book.UpdateEndIf然后將各個按鈕的狀態(tài)恢復(fù)到修改前。PrivateSubcmdupdate_Click()……cmdmodify.Enabled=Truecmddel.Enabled=Truecmdcancel.Enabled=Falsecmdupdate.Enabled=FalseDataGrid1.AllowUpdate=FalseMsgBox"修改成功!",vbOKOnly+vbExclamation,""EndSub修改數(shù)據(jù)后,如果想放棄修改,那么單擊"取消"按鈕即可。雙擊"取消"按鈕,添加代碼以實現(xiàn)這局部功能。將按鈕復(fù)原,使用CancelUpdate方法取消更新,重新顯示數(shù)據(jù),并將表格控件的AllowAddNew和AllowUpdate屬性設(shè)置為False。PrivateSubcmdcancel_Click()rs_book.CancelUpdateDataGrid1.RefreshDataGrid1.AllowAddNew=FalseDataGrid1.AllowUpdate=Falsecmdmodify.Enabled=Truecmddel.Enabled=Truecmdcancel.Enabled=Falsecmdupdate.Enabled=FalseEndSub雙擊"刪除信息"按鈕,添加代碼以實現(xiàn)這局部的功能。首先提示用戶是否確定刪除,定義一個字符串變量接受用戶的答復(fù)。PrivateSubcmddel_Click()DimanswerAsStringOnErrorGoTodelerroranswer=MsgBox("確定要刪除嗎?",vbYesNo,"")……如果答復(fù)"是",那么將當前表格的AllowDelete屬性設(shè)置為True。使用Recordset對象的Delete方法將當前的記錄刪除,使用Update方法將數(shù)據(jù)表更新。PrivateSubcmddel_Click()DimanswerAsStringOnErrorGoTodelerroranswer=MsgBox("確定要刪除嗎?",vbYesNo,"")Ifanswer=vbYesThenDataGrid1.AllowDelete=Truers_book.Deleters_book.Update……這時數(shù)據(jù)表發(fā)生了變化,應(yīng)該將Datagrid刷新以顯示這一變化,同時提示用戶刪除成功,并將AllowDelete屬性設(shè)置為False。PrivateSubcmddel_Click()……rs_book.UpdateDataGrid1.Refresh如果用戶答復(fù)"否",那么退出此過程。PrivateSubcmddel_Click()……ElseExitSubEndIf當窗體卸載的時候,將Damgdd控件的DataSource屬性設(shè)置為Nothing,同時關(guān)閉數(shù)據(jù)對象。PrivateSubForm_Unload(CancelAsInteger)SetDataGrid1.DataSource=Nothingrs_book.CloseEndSub以上就是圖書信息管理窗體的實現(xiàn)過程。4.6建立查詢圖書信息窗體4.6.1建立窗體添加一個窗體及控件,查詢圖書信息管理窗體由1個Datagdd控件、5個CheckBox控件、1個ComboBox控件、4個Text控件、3個CommandButton控件組成。其中,3個CommandButton控件作為"查詢"、"取消"和"借這本書"按鈕,復(fù)選框用來確定查詢的方式。Datagrid控件的屬性不需要做任何修改,取默認值即可。添加好控件的窗體效果如下圖。4.6.2添加代碼當單擊"圖書管理/圖書信息管理/查詢圖書信息"菜單時,彈出如上窗體。代碼如下。PrivateSubfind_book_info_Click()frmfindbook.ShowEndSub 窗體加載時,首先將所有可選的圖書類別添加到列表框中。定義一個Recordset對象用來翻開數(shù)據(jù)表。PrivateSubForm_Load()Dimrs_findAsNewADODB.RecordsetDimsqlAsStringsql="select*from圖書類別"rs_find.Opensql,conn,adOpenKeyset,adLockPessimistic使用Recordset對象的MoveFirst方法將數(shù)據(jù)記錄移動到第一條,并使用循環(huán)語句將所有的圖書類別添加到列表框中。PrivateSubForm_Load()……rs_find.MoveFirstIfNotrs_find.EOFThenDoWhileNotrs_find.EOFCombo1.AddItemrs_find.Fields(0)rs_find.MoveNextLoopCombo1.ListIndex=0EndIfrs_find.CloseEndSub當單擊"確定"按鈕時,執(zhí)行查詢語句。逐個檢查各個復(fù)選框是否被選中,如果被選中,那么設(shè)定SQL語句,使用where限制數(shù)據(jù)檢索的條件,代碼如下。PrivateSubCommand1_Click()Dimrs_findbookAsNewADODB.RecordsetDimsqlAsStringIfCheck1.Value=vbCheckedThensql="書名='"&Trim(Text1.Text&"")&"'"EndIfIfCheck2.Value=vbCheckedThenIfTrim(sql)=""Thensql="類別='"&Trim(Combo1.Text&"")&"'"Elsesql=sql&"and書名='"&Trim(Combo1.Text&"")&"'"EndIfEndIfIfCheck3.Value=vbCheckedThenIfTrim(sql)=""Thensql="作者='"&Trim(Text2.Text&"")&"'"Elsesql=sql&"and作者='"&Trim(Text2.Text&"")&"'"EndIfEndIfIfCheck4.Value=vbCheckedThenIfTrim(sql)=""Thensql="出版社='"&Trim(Text3.Text&"")&"'"Elsesql=sql&"and出版社='"&Trim(Text3.Text&"")&"'"EndIfEndIf如果沒有選擇任何查詢方式,那么此時的sql變量應(yīng)該為空,那么給出提示,要求選擇查詢方式。PrivateSubCommand1_Click()……EndIfIfTrim(sql)=""ThenMsgBox"請選擇查詢方式!",vbOKOnly+vbExclamationExitSubEndIf執(zhí)行查詢語句,將Datagrid設(shè)置為不可更新或刪除信息,同時將其DataSource屬性設(shè)置位Recordset對象,代碼如下。PrivateSubCommand1_Click()……EndIfsql="select*from書籍信息where"&sqlrs_findbook.CursorLocation=adUseClientrs_findbook.Opensql,conn,adOpenKeyset,adLockPessimisticDataGrid1.AllowAddNew=FalseDataGrid1.AllowDelete=FalseDataGrid1.AllowUpdate=FalseSetDataGrid1.DataSource=rs_findbookEndSub當單擊"取消"時,那么退出此窗體,代碼如下。PrivateSubCommand2_Click()UnloadMeEndSub選擇需要借閱的圖書,單擊"借這本書"按鈕,可翻開借書窗體,將在借書窗體的建立章節(jié)中加以介紹。以上就是查詢圖書信息窗體的實現(xiàn)過程。4.7建立添加借書信息窗體4.7.1建立窗體添加一個窗體。4.7.2添加控件添加借書信息窗體由2個Frame控件、16個Label控件、2個ComboBox控件、2個CommandButton控件組成。其中,2個CommandButton控件作為"確定"和"取消"按鈕。添加這些控件??丶?屬性 屬性取值Label1Caption編號Label2Caption書名Label3Caption作者Label4Caption出版日期Label5Caption類別Label6Caption出版社Label7Caption登記日期Label15Caption讀者編號Label16Caption讀者姓名Command1Caption確定Command2Caption取消Combo1Text選擇編號Combo2Text選擇姓名其中,Label8--Label14取默認值即可。添加好控件的窗體效果如下列圖所示。借書窗體4.7.3添加代碼前面介紹到,在查詢圖書信息窗體中有個"借這本書"的按鈕,中選擇好要借的圖書后,單擊這個按鈕,即可翻開這個窗體。下面雙擊這個按鈕,實現(xiàn)其功能。首先添加一個公共模塊,并在其中定義一個公共的變量book_num用來記錄要借的圖書的編號OptionExplicit……Publicbook_numAsString'要借的書的編號添加公共模塊的方法是單擊菜單"工程"一)"添加模塊",在翻開的窗體中單擊"翻開"按鈕,即可添加好一個公共模塊。如果用戶選擇了某條書籍的信息,那么將這本書的編號賦給這個變量。獲取表格某一單元格的方法是使用指定列的CellValue屬性。該屬性的參數(shù)是一個書簽(Boobnmark)。雙擊表格控件,在RowedChange事件中添加如下的代碼。PrivateSubDataGrid1_RowColChange(LastRowAsVariant,ByValLastColAsInteger)book_num=DataGrid1.Columns(0).CellValue(DataGrid1.Bookmark)……EndSub同時,如果用戶當前選定的圖書己經(jīng)被借出,那么其他的用戶此時不可以借這本書,因此需要判斷當前選定的圖書是否己被借出,因此定義一個變量來記錄這一狀態(tài)。OptionExplicitDimpanduanAsString在RowColChange事件同時獲取圖書狀態(tài)PrivateSubDataGrid1_RowColChange(LastRowAsVariant,ByValLastColAsInteger)book_num=DataGrid1.Columns(0).CellValue(DataGrid1.Bookmark)panduan=DataGrid1.Columns(7).CellValue(DataGrid1.Bookmark)EndSub單擊"借這本書"按鈕后,首先判斷是否已經(jīng)選定了某本書,如果沒有選定,那么給出提示,并退出過程。PrivateSubCommand3_Click()IfTrim(book_num)=""ThenMsgBox"請選擇要借閱的圖書!",vbOKOnly+vbExclamationExitSubEndIf然后再根據(jù)panduan這個參數(shù)的值來決定該書是否可以出借。PrivateSubCommand3_Click()……Ifpanduan="是"ThenMsgBox"此書已被借出!",vbOKOnly+vbExclamationExitSubEndIf如果以上條件都符合,那么翻開借書窗體。PrivateSubCommand3_Click()……frmborrowbook.ShowEndSub借書窗體加載時,應(yīng)該將根本的圖書和讀者信息加載到窗體。在Form_Load事件中首先將選定的圖書的信息顯示到窗體。翻開書籍信息數(shù)據(jù)表,使用where限制查詢的條件為查找與選定的圖書編號相同的圖書。PrivateSubForm_Load()Dimrs_borrowAsNewADODB.RecordsetDimrs_readerAsNewADODB.RecordsetDimsqlAsStringsql="select*from書籍信息where書籍編號='"&book_num&"'"rs_borrow.Opensql,conn,adOpenKeyset,adLockPessimistic……依次添加這本書的信息。PrivateSubForm_Load()……rs_borrow.Opensql,conn,adOpenKeyset,adLockPessimisticLabel8.Caption=rs_borrow.Fields(0)Label9.Caption=rs_borrow.Fields(1)Label10.Caption=rs_borrow.Fields(2)Label11.Caption=rs_borrow.Fields(3)Label12.Caption=rs_borrow.Fields(4)Label13.Caption=rs_borrow.Fields(5)Label14.Caption=rs_borrow.Fields(6)然后將讀者的信息添加到列表框中。翻開讀者信息數(shù)據(jù)表,代碼如下。PrivateSubForm_Load()……sql="select*from讀者信息"rs_reader.Opensql,conn,adOpenKeyset,adLockPessimistic使用循環(huán)語句將讀者信息添加到列表框。PrivateSubForm_Load()……sql="select*from讀者信息"rs_reader.Opensql,conn,adOpenKeyset,adLockPessimisticIfNotrs_reader.EOFThenDoWhileNotrs_reader.EOFCombo1.AddItemrs_reader.Fields(1)Combo2.AddItemrs_reader.Fields(0)rs_reader.MoveNextLoopElse如果當前數(shù)據(jù)表中沒有任何讀者信息,那么給出提示,要求首先添加讀者信息。PrivateSubForm_Load()……ElseMsgBox"請先登記讀者!",vbOKOnly+vbExclamationExitSubEndIfrs_borrow.Closers_reader.CloseEndSub由于讀者編號與讀者姓名是一一對應(yīng)的,所以中選定某條讀者編號時,讀者姓名列表框應(yīng)該顯示相應(yīng)的讀者姓名。在Combo1_Click事件中添加如下代碼。PrivateSubCombo1_Click()Combo2.ListIndex=Combo1.ListIndexEndSub同樣,在Combo2_Click事件中添加如下代碼。PrivateSubCombo2_Click()Combo1.ListIndex=Combo2.ListIndexEndSub這樣,就防止了出現(xiàn)讀者編號與讀者姓名不對應(yīng)的錯誤。選擇好需要借書的讀者后,單擊"確定"按鈕,將借書信息添加到數(shù)據(jù)庫。雙擊"確定"按鈕,添加代碼以實現(xiàn)其功能。由于不同的讀者類別有不同的借書數(shù)量限制和期限限制,因此,首先應(yīng)該翻開讀者信息數(shù)據(jù)表獲取當前選定讀者的信息,將該讀者的類型賦給一個字符串變量。在通用變量聲明局部定義必要的變量。OptionExplicitDimleibieAsString'該讀者的類別DimqixianAsInteger'該讀者可以借書的期限D(zhuǎn)imshumuAsInteger'該讀者已借書數(shù)量DimmaxnumAsInteger'該讀者借書數(shù)量的限制將這些變量賦值。PrivateSubCommand1_Click()Dimrs_borrowbookAsNewADODB.RecordsetDimsqlAsStringsql="select*from讀者信息where讀者編號='"&Combo1.Text&"'"rs_borrowbook.Opensql,conn,adOpenKeyset,adLockPessimisticleibie=rs_borrowbook.Fields(3)shumu=rs_borrowbook.Fields(8)rs_borrowbook.Closesql="select*from讀者類別where種類名稱='"&leibie&"'"rs_borrowbook.Opensql,conn,adOpenKeyset,adLockPessimisticqixian=rs_borrowbook.Fields(2)maxnum=rs_borrowbook.Fields(1)rs_borrowbook.Close如果該讀者已經(jīng)借閱的圖書數(shù)量到達了其允許借書數(shù)量的最大值,給出相應(yīng)提示并退出借書過程,代碼如下。PrivateSubCommand1_Click()……Ifshumu>=maxnumThenMsgBox"該讀者借書數(shù)額已滿!",vbOKOnly+vbExclamationExitSubEndIf將新的借書數(shù)據(jù)添加到借閱信息數(shù)據(jù)庫。PrivateSubCommand1_Click()Dimrs_borrowbookAsNewADODB.RecordsetDimsqlAsString……sql="select*from借閱信息"rs_borrowbook.Opensql,conn,adOpenKeyset,adLockPessimisticrs_borrowbook.AddNewrs_borrowbook.Fields(1)=Combo1.Textrs_borrowbook.Fields(2)=Combo2.Textrs_borrowbook.Fields(3)=Label8.Captionrs_borrowbook.Fields(4)=Label9.Captionrs_borrowbook.Fields(5)=Daters_borrowbook.Fields(6)=DateAdd("Ww",qixian,Date)rs_borrowbook.Updaters_borrowbook.Close同時,將這本書的"是否己借出"信息設(shè)置為"是"。PrivateS

溫馨提示

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

評論

0/150

提交評論