圖書管理系統程序設計論文_第1頁
圖書管理系統程序設計論文_第2頁
圖書管理系統程序設計論文_第3頁
圖書管理系統程序設計論文_第4頁
圖書管理系統程序設計論文_第5頁
已閱讀5頁,還剩36頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、圖書管理系統內容摘要圖書管理系統是采用VisualBasic.NET開發的一個管理系統。開發本系統的基本步驟:系統概念設計、系統邏輯和物理設計、系統實現和維護。在系統分析中先后用到數據流程、系統的功能結構圖、ER圖分析了系統所需的各種數據。在系統的設計過程中,我們采用了模塊獨立設計法,比較詳細的展現了各個模塊的功能。在庫和表的設計當中,我們力求層次清晰,設計簡單實用。在系統具體實行階段中,我們精心細致的畫出了各個窗體并給出了相應的事件和代碼,以實現各個窗體的作用。關鍵詞:ER圖模塊獨立設計法公共模塊引言一個簡單的圖書管理系統設計包括:圖書名稱、圖書編號、單價、作者、存在狀態、借書人姓名、性別、

2、學號等查詢。它的系統功能:新進圖書基本信息的輸入;圖書基本信息的查詢;對撤銷圖書信息的刪除;為借書人辦理注冊;辦理借書手續;辦理還書手續等操作。功能概述一、圖書管理部分:包括圖書信息管理和類別管理,其功能是實現對各部分數據內容進行添加、修改、查詢等操作。二、讀者管理部分:包括讀者信息管理,其功能是實現對各部分數據內容的添加和修改等操作。三、借閱管理部分:包括借書管理和還書管理,其功能是實現對各部分數據內容的添加和查詢等操作。四、系統管理部分:包括修改系統用戶密碼和增加新用戶兩項功能。名字:讀者信息查詢報表別名:讀者信息表描述:讀者基本情況查詢結果的信息表定義:讀者信息查詢報表二讀者編號+讀者姓

3、名+性別+學號+班級+登記日期+已借書數量位置:輸出到打印機名字:圖書信息查詢報表別名:圖書信息表描述:各種書籍查詢基本信息表定義:圖書信息查詢報表=圖書編號+書名+類別+作者+單價+出版社+出版日期+登記日期+存在的狀態+借書人的姓名位置:輸出到打印機1.1.數據流程圖數據流程圖是描述實際業務管理系統工作流程的一種圖形表示法。它描繪系統的邏輯模型圖,其中沒有任何具體的物理元素,只是描繪信息在系統中流動和處理的情況。因為數據流圖是邏輯系統的圖形表示,即使不是專業的計算機技術人員也容易理解,所以是極好的通信工具。此外,設計數據流圖只需考慮系統必須完成的基本邏輯功能,完全不需要考慮如何具體地實現這

4、些功能,所以它也是軟件設計的很好的出發點。圖書管理系統主要是為了對圖書、讀者基本信息等進行計算機管理。下面就是對各個功能模塊的流程分析:1圖書信息管理基本信息流程圖流程圖分析:圖書基本信息的流動首先是以圖書編號為流動方向的依據,來達到添加、修改、記錄、刪除圖書記錄。為了數據的一致性,進行這些操作的同時,也對數據庫中的記錄進行檢查,檢查是否有重復的記錄。如有則不能進行添加。2讀者類別管理基本信息流程圖流程圖分析:讀者類別基本信息的流動首先是以讀者類別編號為流動方向的依據,來達到添加、修改、記錄讀者類別記錄。為了數據的一致性,進行這些操作的同時,也對數據庫中的記錄進行檢查,檢查是否有重復的記錄。如

5、沒有則可進行添加。3讀者信息管理基本信息流程圖流程圖分析:讀者基本信息的流動首先是以讀者的編號為依據,來達到添加、修改、查詢、刪除讀者信息的記錄。同時,也對數據庫中的讀者信息表的編號進行檢查。4借書管理基本信息流程圖流程圖分析:借書管理基本信息的流動首先是以借閱編號為流動方向的依據,來達到添加、查詢借書記錄。為了數據的一致性,進行這些操作的同時,也對數據庫中的記錄進行檢查,檢查是否有重復的記錄。如沒有則可進行添加。5還書管理基本信息流程圖還書管理添加刪除查詢流程圖分析:借閱管理部分是實現對各部分數據內容的添加和查詢操作,在借閱信息中包括借閱編號、讀者編號、讀者姓名、書籍名稱、出借日期和還書日期

6、。并通過添加功能來達到借閱信息表的數據的更新,通過查詢可使管理員很快地了解借閱信息,從而避免書籍的丟失現象產生。通過上面對各個模塊流程的分析,那么我們就不難對整個系統的大致流程有一個全面的認識。設計時采用了常用的自頂向下的瀑布式結構化設計方法。各子系統具有獨立的數據庫結構,同時又具有相關的關鍵字,這樣系統做起來后就便于用戶操作。綜合上面各個模塊的流程分析,2.1.系統的概念設計概念設計階段主要任務和目標是根據題目設計要求,包括一般聯系實體,畫出對應的ER圖。對于復雜的系統,通常首先要對它的各功能模進行分析,然后再把它的功能結構圖畫出來,便是設計和優化。功能分析之后,再根據各個崗位、各個用戶對數

7、據和使用權限的不同要求作出局部ER圖,然后再把各個局部ER圖綜合起來形成統一的整體ER圖。3.1模塊功能分析圖書管理部分:包括圖書基本信息管理和添加新的圖書,其功能是實現對各部分數據內容進行添加、修改、查詢等操作。各管理部分的明細如下:(1)圖書管理:包括、圖書信息的修改、圖書信息的查詢和圖書的信息刪除4部分。其中,圖書信息查詢包括圖書編號、書名、圖書類別、作者、出版社、出版日期、登記日期以及它的存在狀態。借閱管理部分:包括借書管理和還書管理,其功能是實現對各部分數據內容的添加和查詢等操作。各管理部分的明細如下:借書管理:包括添加借書信息和查詢借書信息2部分功能。其中,借閱信息包括借閱編號、讀

8、者編號、讀者姓名、圖書編號、圖書名稱、出借日期和還書日期。還書管理:實現添加還書信息功能。其中,還書信息與借閱信息部分明細相同。讀者管理部分:包括讀者信息管理和讀者類別管理,其功能是實現對各部分數據內容的添加和修改、刪除等操作。各管理部分的明細如下:(1)讀者信息管理:包括讀者信的添加、讀者信息的修改、讀者信息的查詢和讀者信息的刪除4部分功能。其中,讀者信息包括讀者姓名、讀者編號、性別、學號、班級、登記日期和已借書數量。系統管理部分:包括修改系統用戶密碼、增加新用戶和退出系統三項功能。3.2系統功能結構圖圖書管理系統3.3數據庫的設計數據庫在一個信息管理系統中占有非常重要的地位,數據庫結構設計

9、的好壞將直接對應用系統的效率以及實現的效果產生影響。合理的數據庫結構設計可以提高數據存儲的效率,保證數據的完整和一致。同時,合理的數據庫結構也將有利于程序的實現。設計數據庫系統時應該首先充分了解用戶各個方面的需求,包括現有的以及將來可能增加的需求。針對圖書管理系統的需求,通過對圖書管理系統流程分析,設計此系統需要如下面所示的數據項和數據結構:圖書信息:包括的數據項有:圖書編號、書名、圖書類別、單價、作者出版社、出版日期、登記日期讀者信息:包括的數據項有:讀者姓名、編號、性別、讀者類別、工作單位、家庭住址、電話號碼、登記日期和已借書數量圖書借閱信息:包括的數據項有:借閱編號、讀者編號、讀者姓名、

10、圖書編號、圖書名稱、出借日期和還書日期。圖書類別表字段名數據類型說明類別名稱文本必添字段“是”,允許空字符為“否”類別編號文本必添字段“是”,允許空字符為“否”2.圖書信息表字段名數據類型說明圖書編號文本必添字段“是”,允許空字符為“否”書名文本必添字段“是”,允許空字符為“否”類別文本字段大小50作者文本字段大小50單價文本字段大小50出版社文本字段大小50出版日期日期/時間無登記日期日期/時間無是否借出文本字段大小23.借閱信息表字段名數據類型說明借閱編號自動編號無讀者編號文本字段大小50讀者姓名文本字段大小50圖書編號文本字段大小50圖書名稱文本字段大小50出借日期日期/時間無4.讀者信

11、息表字段名數據類型說明讀者姓名文本必添字段“是”,允許空字符為“否”讀者編號文本必添字段“是”,允許空字符為“否”性別文本字段大小2學號文本字段大小50班級文本字段大小50電話號碼文本字段大小50登記日期日期/時間無已借數量數字無5.讀者類別表字段名數據類型說明種類名稱文本必添字段“是”,允許空字符為“否”借書數量數字無借書期限數字無有限期限數字無4.1功能模塊的實現411數據庫設計這里的數據庫采用Access,用ADO作為連接數據對象。1、建立Access數據庫啟動Access,建立一個空的數據庫book.mdb,如圖3所示。使用程序設計器建立系統需要的表格如下。圖書登記表,如圖4所示。圖3

12、建立數據庫book.mdb圖4圖書登記表圖書借閱表,如圖5所示。圖5圖書借閱表圖書資料表,如圖6所示。系統管理表,如圖7所示。嚼311扯rtfl毗閔!KKmu:L皿na沁WSHISTfciwh叵I%:t圖6圖書資料表引用Xtit1.vbpnKitTTJT:Jr神軸*Aatta1AAHWLfE網iffwhbui唯砒如曲t字竝“玨胃暮啊ikjfUtIE粘=rettttt匸師.Frmfl圖7系統管理表VsXUlilI-LTIFm-CBlSiCCiL*MjlddiI-111ifruliCLi-ibj4亡野比il4*lsrtidLEiiEieobjtttikndprwlf藥*弔?NF供州E!“WL!T%

13、IIicr&xc-ffcDilaif:L3.iC61JLi-etin.A-clavr莖IIEHia伸說Fr&ri.djr軋guTyr*LtMir護Jlaliv*StUif匚師蛇!Librvr4vaBiivijtrfvwiji1*1ra百llt.Tsrrr1ASlitl-krCMCv&uhi.KOTyt*LkltfuyI住MIISFfoIbej!10ThuLibrtrk-抵Kcctix?QTfp*LWvfAjevv-空IJEtC-i=iTian.MlHicf*雲誕tAcliwIPiiMObjifecitf20LiWur定也CtPrE-prmFala-xf-ama-bnF&1xt31mSbbtvi

14、ScI?tlb誦倉味It2、連接數據在VisualBasic環境下,選擇“工程”f“引用”命令,在隨后出現的對話框中選擇“MicrosoftActiveXDataObjects2.0Library”,然后單擊“確定”按鈕,如圖8所示。圖8用ADO連接數據庫在程序設計的公共模塊中,先定義ADO連接對象。語句如下:PublicconnAsNewADODB.Connection標記連接對象然后在子程序中,用如下的語句即可打開數據庫:DimconnectionstringAsStringconnectionstring=provider=Microsoft.Jet.oledb.4.0;&_dataso

15、urce=book.mdbconn.Openconnectionstring3、設置ODBCVB的ADO對象是通過ODBC來訪問數據庫,所以還要建立ODBC數據引擎接口。打開控制面板中的“管理工具”f“數據源”(ODBC),出現如圖9所示的對話框。圖9DBC對話框單擊“添加”按鈕,出現“創建新數據源”對話框,如圖10。軻打番敦掘溥岡.曲豪巻證為甘亦羽畠跛匪助時謹昇AAIiTrfijbn-(a-AFsTdxc-ftdBuiJiftrLvwr(dtf)dtl常PrF(h非門XI&4rr.LBfl.lhiiw4?Arrtn(Jb)&TLWFIhw昭oftdfi電阿.Jbf)DrL4r1E-il6Dt

16、Lviar-Acn-axfCFurvlrsx(Jb)Pri刖j-w*pVipailFgFr審NteroxftAce:4isItrir*r1圖10創建新數據源”對話框選擇MicrosoftAccessDriver(*.mdb),單擊“完成”按鈕,出現如圖11對話框。圖11置連接數據源在“數據源名”文本框中添加一個名字,單擊“確定”按鈕完成系統默認連接設置。然后在ODBC對話框中單擊“確定”按鈕完成ODBC設置。4.1.2界面設計圖1圖書管理系統界面菜單應用程序中,有3個菜單選項,每個選項對應著的一個子項目。1、創建主窗體首先創建一個工程,命名為廣西大學圖書管理系統,選擇“工程”f“添加MDI窗體

17、”命令,則在項目中添加了主窗體。該窗體的一些屬性如表1所示。表1主窗體的屬性屬性值Caption廣西大學圖書管理系統NameMainfrmMenuMainmenu1WindowstateMaxsizeWindowstate的值為Maxsize,即程序啟動之后自動最大化。將“菜單”組件從“工具箱”拖到窗體上。創建一個Text屬性設置為“文件”的頂級菜單項,且帶有名為“關閉”的子菜單項。類似地創建一些菜單項,如表2所示。表2菜單項表菜單名稱Text屬性功能描述MnuFile控制頂級菜單,包含子菜單FenMnu圖書分類調出圖書信息查詢窗體AddMnu添加新書調出圖書添加窗體EditMnu圖書編輯調出

18、編輯圖書窗體EditIdMnu編輯借書證調出讀者編號編輯窗體ExitMnu退出退出系統ToolMnu工具頂級菜單,包含子菜單LoginMnu登陸調出讀者登陸窗體SearchMnu查找調出讀者查找圖書窗體BackMnu還書調出還書界面HelpMnu說明調出本次課程設計小組任務分工2、創建各子窗體選擇“工程”f“添加窗體”命令,添加子窗體。在新建VisualBasic工程時自帶的窗體中,將其屬性MIDChild改成True,則這個窗體成為MID窗體的子窗體。在這個項目中,要創建的子窗體如表3所示。表3所有子窗體子窗體名Text添加讀者AddBookId修改借書人員AEditBookId增加新用戶S

19、etPer圖書信息查詢Findfrm登錄系統LoginSys讀者登陸LentLogin圖書歸還及借閱Lentfrm查找圖書編號SearChid編輯修改圖書EditBook(2)增加用戶子窗體如圖13所示,其控件如表5所示。4.1.3建立公共模塊1、顯示目錄建立公共模塊可以提高代碼的效率,同時使得修改和維護代碼都很方便。創建公共模塊的步驟如下:在菜單中選擇“工程”f“添加模塊”命令,則出現模塊對話框,如圖18所示。選擇模塊圖標后,單擊“打開”按鈕,則模塊已經添加到項目中了。默認情況下名為Module。Module(公共模塊)代碼如下PublicBookIdAsString借書證號碼PublicB

20、ookNumAsInteger可以借書的冊數PublicBookDayAsInteger可以借書的天數PublicFaCostAsSingle超出一天的罰款PublicLoginFlagAsBoolean是否登錄PublicBookBianHaoAsString圖書編號PublicSearchFlagAsBoolean是否查找PublicmAddEditIdAsStringPublicmAddEditIdNameAsStringPublicmAddEditldClassAsStringPublicmAddEditldDepartAsStringPublicmAddEditldZhiAsStri

21、ngPublicmSaveAsBooleanPublicDBpathAsString數據庫路徑PublicSETpathAsString設置文件路徑4.2效果及存在冋題(1)LoginSys(管理員登錄)管理員(admin密碼:admin)(2)Mainfrm(廣西大學圖書管理系統)主界面(3)首先讀者需要先登錄才能進行借書和還書的操作(4)查詢圖書狀態(4)添加新圖書冠添加新團書新書基本信息圖書編號書名美別1出版社1價格1作者諳將以上信息埴寫完整,以便日后查詢添加取消()(5)編輯借書證編輯惜書證添加修改查找刪除關閉借書證號班級001ESH0902100401002計算機0902100402

22、003004005006007008TOC o 1-5 h zA-1C-lA-l0902100403090210040409021004050902100406090210040709021004082003-A-l網頁制作平面設計(6)歸還圖書4.2.2缺陷這個圖書管理系統幾大功能都實現了,缺陷就是沒有生成脫離數據庫和VB6.0環境運行。由于時間關系,系統功能實現不夠完善,使用不是很方便.心得體會這個圖書管理系統的設計我最大的收獲就是懂得檢索以及學會系統的使用VB,以及懂得了調試程序重要性。根據圖書管理系統的需求設計出圖書管理系統的具體功能然后再編寫代碼,整個系統包含了15個窗體的設計,拿到

23、題目的時候我到圖書館借了幾本關于VisualBasic.NET程序設計的資料書,里面有本書就有這個圖書管理系統設計的概述,有幾個功能(借閱,還書以及管理員設計的代碼),然后其中我也借用了一些窗體的代碼,整個系統在主界面(Mainfrm)設計和程序怎么調用數據庫上了花了大量的時間,期間我也找了學長問了一些相關問題,同時我也在網上找了好多的資料,Mainfrm設計經過長時間的調試終于在*月*日完成,設計期間我找了些學長,從中了解到他們曾今也做過同樣的題目,他們思路是調用txt文件,而我采用是在系統中設計一個Access數據庫。這里的數據庫采用Access,用ADO作為連接數據對象。通過設置ODBC

24、,VB的ADO對象是通過ODBC來訪問數據庫,當中必須建立ODBC數據引擎接口。在VB訪問數據庫時,我也花了很多的時間,兩大核心問題一解決的,整個系統就差不多成形了,然后對每個功能進行調試,整個系統設計在12月15號就正式收工。數據庫設計主要是由*完成的,*主要負責整個ER圖的設計以及程序編寫,我主要是負責整個系統界面設計,程序編寫以及論文編寫。由于時間有限,另外又有電子課程設計,*老師一直在催我們弄電子課程設計,所以時間分配上有點緊。總體來說收獲還是蠻大的,體驗到了學以致用的樂趣。參考文獻高智勇.中文版VisualBasic6.0實例教程.航空工業出版社,2000:12-34.丁衛群.數據庫

25、系統概論.科學出版社,2001:63-79.紀多轍.VisualBasic.NET程序設計實踐教程.清華大學出版社,2006月8月1日廖望.VisualBasic.NET程序設計案例教程.冶金工業出版社,2004月3月1日李春葆.VisualBasic程序設計.清華大學出版社,2008年5月1日 HYPERLINK /app/p?id=50611400 /app/p?id=506114007 HYPERLINK /view/6f6b4b92daef5ef7ba0d3c9c.html /view/6f6b4b92daef5ef7ba0d3c9c.html操作演示:(1)先運行廣西大學圖書管理系統

26、.exe,彈出下面窗口管理員1(admin密碼:admin)(2)登陸成功然后需要讀者先登錄讀者借書證號:(001,002,.009)登錄請輸入借書證號碼|004|整錄關閉查找圖書添加新圖書編輯圖書編輯讀者歸還圖書附錄:Module(公共模塊)PublicBookIdAsString借書證號碼PublicBookNumAsInteger可以借書的冊數PublicBookDayAsInteger可以借書的天數PublicFaCostAsSingle超出一天的罰款PublicLoginFlagAsBoolean是否登錄PublicBookBianHaoAsString圖書編號PublicSearc

27、hFlagAsBoolean是否查找PublicmAddEditIdAsStringPublicmAddEditIdNameAsStringPublicmAddEditIdClassAsStringPublicmAddEditIdDepartAsStringPublicmAddEditIdZhiAsStringPublicmSaveAsBooleanPublicDBpathAsString數據庫路徑PublicSETpathAsString設置文件路徑AddBookId(添加借書人員)窗體下面為保存和取消按鈕的控件數組PrivateSubcmdOkCancel_Click(IndexAsInt

28、eger)SelectCaseIndexCase0確定按鈕初始化所有變量為空mAddEditId=mAddEditIdName=mAddEditIdClass=mAddEditIdDepart=mAddEditIdZhi=判斷借書證號和姓名是否為空,如為空給出提示IftxtBookId.Text=OrtxtBookIdName=ThenMsgBox請把借書證號或姓名填寫完整!”,0+48,提示ExitSubEndIf將新的資料分別賦給相應變量,以存為數據庫mAddEditId=txtBookId.TextmAddEditIdName=txtBookIdName.TextmAddEditIdCl

29、ass=txtBookIdClass.TextmAddEditIdDepart=txtBookIdDepart.TextmAddEditIdZhi=txtBookIdZhi.TextUnloadMemSave=TrueCase1取消按鈕mSave=FalseUnloadMeEndSelectEndSubPrivateSubFramel_DragDrop(SourceAsControl,XAsSingle,YAsSingle)EndSubPrivateSubtxtBookId_GotFocus()設置光標處于借書證號時,輸入框的背景色為藍,前景色為黃txtBookId.BackColor=vbB

30、luetxtBookId.ForeColor=vbYellowEndSubPrivateSubtxtBookId_LostFocus()設置光標離開借書證號時,輸入框的背景色為白,前景色為黑txtBookId.BackColor=vbWhitetxtBookId.ForeColor=vbBlackEndSubAddNewBook(添加新圖書)下面為保存和取消按鈕的控件數組PrivateSubcmdOkCancel_Click(IndexAsInteger)SelectCaseIndexCase0確定按鈕初始化所有變量為空mAddEditId=mAddEditIdName=mAddEditIdC

31、lass=mAddEditIdDepart=mAddEditIdZhi=判斷借書證號和姓名是否為空,如為空給出提示IftxtBookId.Text=OrtxtBookIdName=ThenMsgBox請把借書證號或姓名填寫完整!”,0+48,提示ExitSubEndIf將新的資料分別賦給相應變量,以存為數據庫mAddEditId=txtBookId.TextmAddEditIdName=txtBookIdName.TextmAddEditIdClass=txtBookIdClass.TextmAddEditIdDepart=txtBookIdDepart.TextmAddEditIdZhi=t

32、xtBookIdZhi.TextUnloadMemSave=TrueCase1取消按鈕mSave=FalseUnloadMeEndSelectEndSubPrivateSubFramel_DragDrop(SourceAsControl,XAsSingle,YAsSingle)EndSubPrivateSubtxtBookId_GotFocus()設置光標處于借書證號時,輸入框的背景色為藍,前景色為黃txtBookId.BackColor=vbBluetxtBookId.ForeColor=vbYellowEndSubPrivateSubtxtBookId_LostFocus()設置光標離開借

33、書證號時,輸入框的背景色為白,前景色為黑txtBookId.BackColor=vbWhitetxtBookId.ForeColor=vbBlackEndSubAEditBookId(修改借書人員)下面為保存和取消按鈕的控件數組PrivateSubcmdOkCancel_Click(IndexAsInteger)SelectCaseIndexCase0確定按鈕將輸入框內容賦給相應變量mAddEditId=txtBookId.TextmAddEditIdName=txtBookIdName.TextmAddEditIdClass=txtBookIdClass.TextmAddEditIdDepa

34、rt=txtBookIdDepart.TextmAddEditIdZhi=txtBookIdZhi.TextmSave=TrueUnloadMeCase1取消按鈕mSave=FalseUnloadMeEndSelectEndSubPrivateSubForm_Load()將相應變量賦給輸入框txtBookId.Text=mAddEditIdtxtBookIdName=mAddEditIdNametxtBookIdClass=mAddEditIdClasstxtBookIdDepart=mAddEditIdDeparttxtBookIdZhi=mAddEditIdZhiEndSubPrivate

35、SubFramel_DragDrop(SourceAsControl,XAsSingle,YAsSingle)EndSubEditBook(編輯修改圖書)定義數據庫和記錄,以便調用數據庫DimdbAsDatabaseDimrstAsRecordsetDimRecAsIntegerDimdblAsDatabaseDimrstlAsRecordset定義StrFlag為字符型變量,定義NumFlag為布爾型變量DimStrFlagAsStringDimNumFlagAsBooleanPrivateSubcmdOkCancel_Click(IndexAsInteger)SelectCaseIndex

36、Case0修改、刪除、查找按鈕控件數組IfStrFlag=修改Then修改、保存、更新并顯示rst.EditWriteinrst.UpdateDispPicture2圖片框消失此圖片框上有確定和取消按鈕Picture2.Visible=FalsePicturel圖片框出現此圖片框上有Toolbar1控件,Toolbar1控件上有最前、前一個、后一個、最后和修改、刪除、查找按鈕Picture1.Visible=TrueSetTxt(False)ElseIfStrFlag=刪除Then刪除當前記錄,并定位到上一個記錄rst.Deleterst.MovePrevious如果是最前記錄,則定位到下一條

37、記錄Ifrst.BOFThenrst.MoveNext調用Disp過程,將數據庫字段分別賦給相應變量Disp顯示Picture2控件,隱藏Picture1控件Picture2.Visible=FalsePicture1.Visible=TrueEndIfCase1調用Disp過程Disp隱藏Picture2控件,顯示Picture1控件Picture2.Visible=FalsePicture1.Visible=True調用SetTxt過程,設置所有輸入框不可用SetTxt(False)EndSelectEndSubPrivateSubCommand1_Click()UnloadMeEndSu

38、bPrivateSubForm_Load()打開Database目錄下的Data.mdb數據庫并打開Book表DBpath=App.Path+DataBaseData.mdbSetdb=Workspaces(0).OpenDatabase(DBpath,False)Setrst=db.OpenRecordset(Book,dbOpenTable)對圖書編號建立索引,方便以后查詢rst.Index=圖書編號打開Database目錄下的Data.mdb數據庫并打開Type表Setdbl=Workspaces(0).OpenDatabase(DBpath,False)Setrst1=db1.Open

39、Recordset(Type,dbOpenTable)將記錄總數賦給變量RecRec=rst.RecordCount如果沒有記錄,使Toolbar1控件不可用Toolbar1控件上有最前、前一個、后一個、最后和修改、刪除、查找按鈕IfRec=0ThenToolbar1.Enabled=FalseSetTxt(False)EndIf使所有輸入框不可用SetTxt(False)將記錄號定位到最前rst.MoveFirst調用Disp和TypeAdd過程DispTypeAddPicture1顯示,Picture2隱藏Picture1.Visible=TruePicture2.Visible=Fals

40、eNumFlag=FalseEndSub定義Disp過程,將數據庫字段賦給相應變量PrivateSubDisp()txtBookNum=rst.Fields(”圖書編號)&vbNullStringtxtBookName=rst.Fields(”書名)&vbNullStringtxtCost=rst.Fields(價格)&EmptytxtBookChu=rst.Fields(出版社)&vbNullStringTextbookzhe=rst.Fields(作者)&vbNullStringCombo1.Text=rst.Fields(類別)&vbNullStringEndSub定義Kong過程,使所

41、有輸入框為空PrivateSubKong()txtBookNum.Text=txtBookName.Text=txtCost.Text=txtBookChu.Text=Textbookzhe.Text=Combol.Text=EndSub定義SetTxt過程,控制輸入框是否可用PrivateSubSetTxt(BoolAsBoolean)txtBookNum.Enabled=BooltxtCost.Enabled=BooltxtBookName.Enabled=BooltxtBookChu.Enabled=BoolTextbookzhe.Enabled=BoolCombo1.Enabled=B

42、oolEndSub關閉窗體時,關閉所有打開的數據庫PrivateSubForm_Unload(CancelAsInteger)rst.Closerst1.Closedb1.Closedb.CloseEndSubToolbar1控件,此控件包含最前、前一個、后一個、最后和修改、刪除、查找共7個按鈕PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)SelectCaseButton.IndexCase1最前按鈕rst.MoveFirstDispCase2前一個按鈕rst.MovePreviousIfrst.BOFThenrs

43、t.MoveNextExitSubEndIfDispCase3后一個按鈕rst.MoveNextIfrst.EOFThenrst.MovePreviousExitSubEndIfDispCase4最后按鈕rst.MoveLastDispCase10修改按鈕StrFlag=修改使所有輸入框可用SetTxt(True)labFlag.Caption=您確實要修改當前記錄嗎?Picturel.Visible=FalsePicture2.Visible=TrueCase11刪除按鈕StrFlag=刪除labFlag.Caption=您確實要刪除當前記錄嗎?Picture1.Visible=FalseP

44、icture2.Visible=TrueCase12查找按鈕顯示Searchid(查找圖書編號)窗體Searchid.Show(1)IfSearchFlag=TrueThen將輸入的編號和數據庫對比,如果沒有找到給出提示rst.Seek=,BookBianHaoIfrst.NoMatchThenMsgBox沒有此圖書編號!”,0+48,查找失敗ExitSubEndIf顯示圖書信息DispSearchFlag=FalseEndIfEndSelectEndSub定義WriteIn過程,將輸入框信息的保存到數據庫PrivateSubWriteIn()rst.Fields(圖書編號)=txtBookN

45、um.Textrst.Fields(書名)=txtBookName.Textrst.Fields(價格)=Val(txtCost.Text)rst.Fields(出版社)=txtBookChu.Textrst.Fields(作者)=Textbookzhe.Textrst.Fields(類別)=Combo1.TextEndSub定義TypeAdd過程,使Combo1組合框顯示數據庫中的所有類型PrivateSubTypeAdd()rst1.MoveLastrst1.MoveFirstFori=1Torst1.RecordCountCombo1.AddItemrst1.Fields(類別)rstl

46、.MoveNext如果到記錄末尾,退出本過程Ifrstl.EOFThenExitSubNextEndSubEditBookId(編輯借書證)定義db為數據庫類型,rst為記錄類型,Rec為整型變量DimdbAsDatabaseDimrstAsRecordsetDimRecAsIntegerPrivateSubAddMnu_Click()彈出菜單-添加cmdAdd_ClickEndSubPrivateSubcmdAdd_Click()添加按鈕定義loop1標號,作為循環體使用,以便一直繼續輸入loop1:顯示AddBookId(修改借書人員)窗體AddBookId.Show(1)如果模塊級變量m

47、Save為真,則增加新記錄到數據庫IfmSaveThenrst.AddNewrst.Fields(”借書證號)=mAddEditIdrst.Fields(”姓名)=mAddEditIdNamerst.Fields(”班級)=mAddEditIdClassrst.Fields(”學號)=mAddEditIdDepartrst.Fields(”性別)=mAddEditIdZhirst.UpdateDispId保存成功,重設模塊級變量mSave為假,給出成功提示mSave=FalsevbYesThenIfMsgBox(已成功添加,要繼續添加按回車,否則按取消!”,4+32,添加成功)跳轉到標號為lo

48、op1的位置繼續執行GoToloop1ElseExitSubEndIfEndIfEndSubPrivateSubcmdClose_Click()UnloadMeEndSubPrivateSubcmdDelete_Click()刪除按鈕定義TiShi為字符型變量,作為提示確定刪除記錄使用DimTiShiAsStringTiShi=確實要刪除&mLv.SelectedItem.Text&mLv.SelectedItem.SubItems(l)&嗎?如果點擊確定按鈕,刪除數據庫相應記錄IfMsgBox(TiShi,4+32,刪除)=vbYesThenrst.Seek=,mLv.SelectedIte

49、m.Textrst.DeleteDispIdEndIfEndSubPrivateSubcmdEdit_Click()修改按鈕將數據庫相應內容賦給相應變量DimiAsIntegeri=mLv.SelectedItem.Indexrst.Seek=,mLv.SelectedItem.TextmAddEditId=rst.Fields(”借書證號)mAddEditIdName=rst.Fields(姓名)mAddEditIdClass=rst.Fields(班級)mAddEditIdDepart=rst.Fields(學號)mAddEditIdZhi=rst.Fields(性別)顯示AEditBoo

50、kId(修改借書人員)窗體AEditBookId.Show(1)保存圖書基本信息IfmSaveThenrst.Editrst.Fields(借書證號)=mAddEditIdrst.Fields(姓名)=mAddEditIdNamerst.Fields(班級)=mAddEditIdClassrst.Fields(學號)=mAddEditIdDepartrst.Fields(性別)=mAddEditIdZhirst.Update使ListView控件的字段顯示數據庫姓名、班級、部門、職稱字段WithmLv.ListItems(i).SubItems(1)=rst.Fields(姓名).SubIte

51、ms(2)=rst.Fields(班級).SubItems(3)=rst.Fields(”學號).SubItems(4)=rst.Fields(”性別)EndWithDispIdmSave=FalseEndIfEndSubPrivateSubcmdSearch_Click()顯示Searchid(查找圖書編號)窗體Searchid.Show(1)IfSearchFlagThen對輸入編號和數據庫進行比較,如果沒有找到給出提示rst.Seek=,BookBianHaoIfrst.NoMatchThenMsgBox沒有找到匹配記錄!”,0+48,查找失敗ExitSubEndIf清空ListView

52、控件內容mLv.ListItems.Clear使ListView控件顯示數據庫字段為借書證號字段mLv.ListItems.Add,rst.Fields(借書證號)使ListView控件的字段顯示數據庫姓名、班級、部門、職稱字段WithmLv.ListItems(l).SubItems(l)=rst.Fields(”姓名).SubItems(2)=rst.Fields(”班級).SubItems(3)=rst.Fields(”學號).SubItems(4)=rst.Fields(”性別)EndWithSearchFlag=FalseEndIfEndSubPrivateSubDeleteMnu_

53、Click()彈出菜單-刪除cmdDelete_ClickEndSubPrivateSubEditMnu_Click()彈出菜單-修改cmdEdit_ClickEndSubPrivateSubExitMnu_Click()彈出菜單-退出UnloadMeEndSubPrivateSubForm_Load()打開Database目錄下的Data.mdb數據庫和Personal表DBpath=App.Path+DataBaseData.mdbSetdb=Workspaces(0).OpenDatabase(DBpath,False)Setrst=db.OpenRecordset(Personal,d

54、bOpenTable)建立借書證號索引rst.Index=借書證號設置ListView控件相應參數mLv.View=lvwReportmLv.GridLines=True設置ListView控件的字段mLv.ColumnHeaders.Add,借書證號mLv.ColumnHeaders.Add,姓名mLv.ColumnHeaders.Add,班級mLv.ColumnHeaders.Add,學號mLv.ColumnHeaders.Add,性別如果記錄不為空,調用DispId過程Ifrst.RecordCount0ThenDispIdEndIfEndSub定義DispId過程,用于顯示數據庫所有記

55、錄PublicSubDispId()mLv.ListItems.Clearrst.MoveLastRec=rst.RecordCountrst.MoveFirstFori=1ToRecmLv.ListItems.Addi,rst.Fields(借書證號)WithmLv.ListItems(i).SubItems(l)=rst.Fields(姓名).SubItems(2)=rst.Fields(班級).SubItems(3)=rst.Fields(學號).SubItems(4)=rst.Fields(”性別)EndWithrst.MoveNextIfrst.EOFThenExitForNextE

56、ndSubPrivateSubForm_Unload(CancelAsInteger)關閉窗體時,關閉數據庫rst.Closedb.CloseEndSubPrivateSubmLv_DblClick()雙擊ListView控件時,調用cmdEdit_Click過程cmdEdit_ClickEndSubPrivateSubmLv_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)如果單擊鼠標右鍵,彈出快捷菜單,菜單名為PoMnuIfButton=2ThenPopupMenuPoMnuEndIfEndSubPrivateSub

57、SearchMnu_Click()彈出菜單-查找cmdSearch_ClickEndSubPrivateSubShowAllMnu_Click()彈出菜單-顯示所有人員CallDispIdEndSubFindfrm(查找圖書)DimrstlAsRecordset打開表BookDimrst2AsRecordset打開表BookFfDimrstAsRecordsetDimdb1AsDatabaseDimdb2AsDatabaseDimqrylAsQueryDefDimqry2AsQueryDefDimRecNumAsInteger查找符合條件總記錄數DimiAsIntegerDimFindStrA

58、sString查找SQL語句PrivateSubcmdBeginFind_Click()判斷圖書編號和書名都為空時給出提示,并設置光標位于圖書編號IftxtBookBian=AndtxtBookName=ThenMsgBox請填寫相關查找信息!”,0+48,提示txtBookBian.SetFocusExitSubEndIf清空ListView控件內容LVListItems.Clear使本窗體上的光標改變形狀,光標樣式為11Findfrm.MousePointer=11判斷圖書編號不為空,書名為空時的情況IftxtBookBianAndtxtBookName=Then對圖書編號和數據庫對比,如

59、果沒有找到給出提示rstl.Seek=,txtBookBianIfrstl.NoMatchThenMsgBox沒有找到匹配記錄!”,0+48,查找失敗使本窗體上的光標改變形狀,光標樣式為0Findfrm.MousePointer=0ExitSubEndIf判斷數據庫BookFf表是否借出字段Ifrstl.Fields(”是否借出)=TrueThenrst2.Seek=,txtBookBian使Listview控件增加數據庫圖書編號字段內容LV.ListItems.Add,rstl.Fields(圖書編號)&vbNullString使Listview控件顯示數據庫相應內容WithLV.ListI

60、tems(l).SubItems(l)=rstl.Fields(”書名)&vbNullString.SubItems(2)=rstl.Fields(類別)&vbNullString.SubItems(3)=rstl.Fields(價格)&Empty.SubItems(4)=rst1.Fields(出版社)&vbNullString.SubItems(5)=rst1.Fields(是否借出).SubItems(6)=rst2.Fields(借書證號)&vbNullString.SubItems(7)=rst2.Fields(姓名)&vbNullString.SubItems(8)=rst2.Fi

溫馨提示

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

評論

0/150

提交評論