




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
/VB實訓指導書——圖書信息管理系統廣西機電職業技術學院一、實訓周的具體按排和要求1、實訓對象:07級電子商務專業學生2、實訓時間:1周3、實訓內容:開發圖書信息管理系統4、實訓目的:(1)進一步熟悉VB的集成開發環境,掌握VB設計應用程序的主要步驟,從而加深對面向可視化對象編程方法的認識。(2)了解并初步掌握用VB開發應用程序界面、圖形圖像、數據庫、多媒體等實用內容。(3)通過實訓穩固一學期來所學到的VB知識,熟練掌握計算機操件技能,培養開發的思想,同時產生濃厚的興趣,為今后進一步學習打下基礎。5、實訓要求說明:①指導書給出的內容只是完成根本功能,其它功能請查閱相關參考書。②實訓上機期間,每個學生都要認真聽從指導老師及實驗老師的指揮,按時按量獨立完成實訓的內容。如有違紀者,將取消其實訓的上機資格,并且其實訓成績當零分處理。③實訓期間要嚴格按照實訓報告格式要求認真書寫實訓報告(電子檔與手寫稿(或打印稿)),實訓結束后將實訓作品和實訓報告一起上交指導老師批改、評分。eq\o\ac(○,4)實訓后期,將酌情安排現場測試與辯論,并將此項分數按一定比例打入實訓成績總評。二、實訓報告(設計說明書)書寫的格式要求1、實訓報告封面要依次填寫設計的科目、題目、專業、班級、姓名、學號、日期、指導老師等工程。2、報告內頁書寫的具體內容應包含以下幾個方面:實訓名稱:即實訓題目。實訓目的:即通過本次實訓要得到哪些方面的主要訓練,將學會掌握哪些相關專業技能。實訓環境:既設備(硬件、系統平臺)、開發工具、方法手段等。實訓方案:做出本次實訓的總體方案并制定出實施方案的具體步驟(可按完成功能模塊來劃分)及進度安排,列出時間表。關鍵技術與解決途徑:本次實訓的技術要點(可按實訓方案里制定的具體步驟一一編寫),并要求寫出如何解決這些技術要點(要求編寫源代碼并附上代碼說明,必要時請附上截圖)。自我評價:即總結本次實訓的個人心得體會。包括對這次實訓任務完成情況的評價;實訓的收獲與預期目標是否一致的評價以及對實訓組織、安排、管理等方面的評價。這局部不僅要求寫出問題,更希望寫出你的建議。三、實訓成績的評定標準指導老師根據學生實訓期間的表現、實訓內容的完成情況以及所寫的實訓報告(設計說明書)給予該生優、良、中、及格、不及格等綜合評定等級,并作為該實訓課程的期評成績上報成績。四、本次實訓的具體內容:圖書信息管理系統系統功能分析:讀者根本信息的輸入讀者根本信息的查詢(要求能按讀者編號進行查詢)讀者根本信息的修改圖書信息的輸入圖書信息的修改借閱信息的查詢(要求能根據人來查書、根據書來查人)讀者借書讀者還書以下是附加的功能:(選做)根據讀者姓名來查詢讀者信息根據書名來查詢圖書信息利用新窗口來修改讀者信息和圖書信息系統功能模塊:一、圖書信息管理系統功能介紹1.主界面圖1程序運行后主界面的效果如圖1所示。可以看到,窗體的上部是菜單欄,包含3個菜單項,即:讀者管理、圖書管理和借閱管理。2.讀者管理 選擇菜單“讀者管理〞,如圖2所示,該菜單項中有4個子菜單項:顯示所有讀者、查詢一個讀者、增加一個讀者和刪除一個讀者。 選擇菜單“讀者管理→顯示所有讀者〞,則在主界面的數據表格中列出所有的讀者信息,如圖3所示。 選擇菜單“讀者管理→查詢一個讀者〞,彈出對話框如圖4所示,要求輸入要查詢的讀者編號信息。輸入讀者編號后單擊“查詢〞按鈕,則在主界面的數據表格中列出該讀者的信息;否則,系統提示用戶“查無此人〞。 選擇菜單“讀者管理→增加一個讀者〞,彈出對話框如圖5所示,要求輸入讀者編號和讀者姓名,輸入完整的信息后單擊保存按鈕,系統判斷是否可以向數據庫中添加該讀者信息,如果添加成功,則在主界面的數據表格中列出數據庫中所有的讀者信息。 選擇菜單“讀者管理→刪除一個讀者〞,彈出對話框如圖6所示,要求輸入讀者編號,輸入完整的信息后單擊“刪除〞按鈕,若該刪除操作成功,則在主界面的數據表格中顯示剩余的所有讀者信息。圖2圖3圖4圖5圖63.圖書管理 選擇菜單“圖書管理〞,如圖7所示,該菜單項中有4個子菜單項:顯示所有圖書、查詢單冊、增加新書和刪除圖書。該菜單項功能與讀者管理局部類似,在此不再重復。4.借閱管理 選擇菜單“借閱管理〞,如圖8所示。該菜單項中有5個子菜單項:顯示所有借閱情況、借書、還書、根據書來查人和根據人來查書。圖7圖8 選擇菜單“借閱管理→顯示所有借閱情況〞,則在主界面的數據表格中顯示所有的借閱記錄。 選擇菜單“借閱管理→借書〞,彈出對話框如圖9所示,要求用戶輸入所借圖書編號和讀者編號。輸入完整的信息后單擊“借書〞按鈕,如果借書成功,則在主界面的數據表格中列出當前讀者的借閱情況。 選擇菜單“借閱管理→還書〞,彈出對話框如圖10所示,要求輸入所借圖書編號,輸入完整的信息后單擊“還書〞按鈕,如果還書成功,則在主界面的數據表格中列出當前讀者還書后的借閱情況。圖9圖10 選擇菜單“借閱管理→根據人來查書〞,彈出對話框如圖11所示,要求輸入讀者編號,輸入完整的信息后單擊“查詢〞按鈕,如果查詢操作成功,則在主界面的數據表格中列出當前讀者所有的借閱情況。 選擇菜單“借閱管理→根據書來查人〞,彈出對話框如圖12所示,系統顯示相應的信息提示,如果查詢操作成功,則在主界面的數據表格中列出當前圖書的借閱情況。圖11圖12二、創立數據庫 翻開Access,建立一個名為bookdb的數據庫,數據庫中有兩張數據表:book、borrow和reader。三張表的字段信息如下:表1book表項內容字段名稱數據類型字段大小bookid文本15bookname文本100bookstate文本4(將bookid字段設為主鍵)表2borrow表項內容字段名稱數據類型字段大小bookid文本15readerid文本15(將bookid字段設為主鍵)表3reader表項內容字段名稱數據類型字段大小readerid文本15readername文本20booknum文本4(將readerid字段設為主鍵)三、創立數據源(ODBC) 基于SQL的ODBC(OpenDataBaseConnectivity,開放式數據庫連接)是Microsoft公司在1989年退出的連接外部數據庫的標準,若采用這套標準,一個應用程序就可以通過一組通用的代碼訪問不同的數據庫管理系統。 在WindowsXP操作系統環境下,本實例的ODBC設置步驟如下:進入“控制面板→管理工具〞,雙擊“數據源(ODBC)〞,出現“ODBC數據源管理器〞,如圖13所示。圖13圖14單擊“添加〞按鈕,出現創立數據源對話框,如圖14所示。選擇“DriverDoMicrosoftAccess(*.mdb)〞,單擊完成按鈕,出現ODBCMicrosoftAccess安裝對話框,如圖15所示,在數據源一項中輸入“book〞。單擊“選擇……〞按鈕,出現選擇數據庫對話框,如圖16所示,首先選擇數據庫所在的驅動器,然后在目錄中選擇數據庫的路徑,這樣在“數據庫名〞一欄中就會列出相應的Access數據庫,然后單擊選定數據庫“bookdb〞。圖15圖16單擊確定按鈕,系統自動返回ODBC數據源管理器,數據源“book〞創立成功。四、圖書管理系統實現 該圖書管理系統的工程名稱為BookManSys.vbp,該工程包含所有文件如圖17所示。 圖171.新建工程新建工程,并在工程資源管理器中將工程名稱屬性改為:BookManSys.vbp。選擇菜單“工程→部件〞,從控件列表中選中如下選項: MicrosoftADODataControl6.0(OLEDB) MicrosoftDataGridControl6.0(OLEDB)在“工程資源管理器〞窗口中單擊鼠標右鍵,選擇“添加→添加模塊〞。單擊翻開按鈕,然后在該模塊的“代碼編輯窗口〞中添加代碼如下:PublicActFlagAsBoolean2.FrmMain窗體FrmMain窗體的設計步驟如下:選中“Form1〞窗體,將該窗體的“名稱〞屬性改為“frmMain〞,“Caption〞屬性改為“圖書管理系統〞。在窗體上設計一個菜單,該菜單結構見表4。在窗體上添加一個框架控件(Frame),將其“Caption〞屬性刪除,“BorderStyle〞屬性選擇“0-None〞。在Fram1中添加一個數據表格(DataGrid),將其“名稱〞屬性設置為“DataGrid〞,“Visible〞屬性設置為False。向窗體中添加兩個ADO數據控件(Adodc),將“Adodc1〞的“名稱〞屬性設置為“Adodc〞,將“Adodc2〞的“名稱〞屬性設置為“AdodcTemp〞,“Visible〞屬性均設置為False。這兩個控件屬性列表中的“ConnectionString〞屬性值均按如下方法設置。單擊,彈出屬性頁對話框,如圖18所示。單擊“生成〞按鈕,進入“數據鏈接屬性〞對話框,如圖19所示。圖18圖19選擇“MicrosoftOLEDBProviderforODBCDrivers〞,單擊“下一步〞按鈕,由“提供者〞選項卡跳到“連接〞選項卡,如圖20所示。選中“使用數據源名稱〞,在該項下拉列表中選擇“book〞,然后單擊“確定〞按鈕,系統自動回到屬性頁對話框,單擊確定按鈕即可。圖20進入frmMain窗體的代碼視圖,添加如下代碼:PublicSubDisplayGrid(CaptionStrAsString)'將臨時ADO數據控件中的RecordSource屬性賦值給和數據表格相連的ADO數據控件Adodc.RecordSource=AdodcTemp.RecordSourceAdodc.Refresh'將數據表格綁定到ADO數據控件SetDataGrid.DataSource=AdodcDataGrid.Refresh'修改數據表格的標題DataGrid.Caption=CaptionStr'將數據表格設置為用戶可見DataGrid.Visible=TrueEndSub 表4菜單結構設置菜單項名稱讀者管理ReaderMan….顯示所有讀者DispAllReader….查詢一個讀者FindOneReader….增加一個讀者AddReader….刪除一個讀者DelReader圖書管理BookMan….顯示所有圖書DispAllBook….查詢單冊FindOneBook….增加新書AddBook….刪除圖書DelBook借閱管理BorrowMan….顯示所有借閱情況DispAllBor….借書Borrow….還書Return….根據人來查書ReaderToBook….根據書來查人BookToReader3.顯示所有讀者選擇菜單“讀者管理→顯示所有讀者〞,在代碼編輯窗口中添加以下代碼:PrivateSubDispAllReader_Click()DimRecCountAsInteger'從數據庫表"reader"中查找所有的讀者記錄AdodcTemp.RecordSource="selectreaderidas"&"讀者編號"&_",readernameas"&"讀者姓名"&",booknumas"&"借閱圖書冊數"_&"fromreader"AdodcTemp.RefreshRecCount=AdodcTemp.Recordset.RecordCount'如果查到的記錄數>0,則顯示所有讀者信息,否則提示"未查到任何讀者記錄",然后顯示一個空'的數據表格。IfRecCount>0ThenDisplayGrid("顯示所有讀者")ElseMsgBox"未查到任何讀者記錄!",,"提示"DisplayGrid("顯示所有讀者")ExitSubEndIfEndSub4.查詢一個讀者選擇菜單“讀者管理→查詢一個讀者〞,在代碼編輯窗口中添加以下代碼:PrivateSubFindOneReader_Click()DimRecCountAsInteger'將標志變量置為假ActFlag=False'顯示查詢一個讀者窗體frmFindOneReader.ShowvbModal'若是在查詢一個讀者窗體中已經將ActFlag修改為True時,則查看所查到的記錄條數,如果查到的'記錄條數>0時,刷新數據表格,顯示查詢結果IfActFlagThenRecCount=AdodcTemp.Recordset.RecordCountIfRecCount>0ThenDisplayGrid("查詢一個讀者")EndIfEndIfActFlag=FalseEndSub為工程添加一個新的窗體,將新窗體的“名稱〞屬性改為“frmFindOneReader〞,“Caption〞屬性改為“查詢一個讀者〞。在窗體上添加一個框架控件(Frame)和一個ADO數據控件(Adodc),在Frame1中添加一個命令按鈕(CommandButton)、一個標簽(Label)和一個文本框(TextBox)。修改frmFindOneReader窗體控件的屬性,見表5。表5frmFindOneReader窗體控件屬性控件名稱屬性名稱屬性設置值Frame1Caption輸入查詢條件Label1Caption讀者編號Text1名稱TxtReaderidTextCommand1名稱CmdFindCaption查詢Adodc1名稱AdodcVisibleFalse根據frmMain主界面中設置Adodc控件的方法來設置本窗體的Adodc的屬性,完成以上操作后frmFindOneReader窗體的效果如圖21所示。 圖21 雙擊“查詢〞按鈕,在代碼編輯窗口中添加以下代碼:PrivateSubCmdFind_Click()DimRecCountAsInteger'判斷用戶是否輸入了讀者編號信息,如果沒有輸入信息,則發出提示退出子程序IfTrim(TxtReaderid.Text)=""ThenMsgBox"查詢條件不能為空,請填寫!",,"提示"ExitSubEndIf'根據讀者編號查詢讀者信息Adodc.RecordSource="selectreaderidas"&"讀者編號"_&",readernameas"&"讀者姓名"&",booknumas"_&"借閱圖書冊數"&"fromreaderwherereaderid="&"'"_&Trim(TxtReaderid.Text)&"'"Adodc.Refresh'如果查到該讀者信息則釋放當前窗體,回到主界面在數據表格上顯示查到的讀者信息RecCount=Adodc.Recordset.RecordCountIfRecCount>0ThenfrmMain.AdodcTemp.RecordSource="selectreaderidas"_&"讀者編號"&",readernameas"&"讀者姓名"_&",booknumas"&"借閱圖書冊數"_&"fromreaderwherereaderid="_&"'"&Trim(TxtReaderid.Text)&"'"frmMain.AdodcTemp.Refresh'將標志變量置為真ActFlag=TrueUnloadMeElse'如果沒有查到該讀者的信息則發出提示,退出子程序MsgBox"查無此人!",,"提示"ExitSubEndIfEndSub5.增加一個讀者選擇菜單“讀者管理→增加一個讀者〞,在代碼編輯窗口中添加以下代碼:PrivateSubAddReader_Click()'將標志變量置為假ActFlag=False'顯示增加一個讀者窗體frmAddReader.ShowvbModalIfActFlagThen'如果需要刷新數據表格,則顯示所有讀者信息DispAllReader_ClickEndIfActFlag=FalseEndSub為工程添加一個新的窗體,講窗體的名稱屬性改為“frmAddReader〞,Caption屬性改為“增加一個讀者〞。在窗體上添加一個框架控件(Frame),然后在Frame1中添加一個命令按鈕,兩個標簽,兩個文本框和一個ADO數據控件(Adodc)。修改frmAddReader窗體控件的屬性,見表6。表6frmAddReader窗體控件屬性控件名稱屬性名稱屬性設置值Frame1Caption輸入數據Label1Caption讀者編號Label2Caption讀者姓名Text1Text名稱TxtReaderidText2Text名稱TxtReaderNameCommand1名稱CmdSaveCaption保存Adodc1名稱AdodcVisibleFalse運用frmMain主界面中設置Adodc的方法來設置本窗體的Adodc,完成后的frmAddReader窗體效果如圖22所示。圖22雙擊“保存〞按鈕,在代碼編輯窗口中添加以下代碼:PrivateSubCmdSave_Click()DimRecCountAsInteger'判斷是否輸入了讀者編號和讀者姓名,如果沒有輸入信息,則發出提示并退出子程序IfTrim(TxtReaderid.Text)=""OrTrim(TxtReaderName.Text)=""ThenMsgBox"請將內容填寫完整!",,"提示"ExitSubEndIf'根據讀者編號信息查找該讀者是否已經存在Adodc.RecordSource="select*fromreaderwherereaderid="_&"'"&Trim(TxtReaderid.Text)&"'"Adodc.Refresh'如果該讀者已經存在,則發出提示,并退出子程序RecCount=Adodc.Recordset.RecordCountIfRecCount>0ThenMsgBox"已經存在此讀者編號,請重新設置!",,"提示"ExitSubEndIf'向數據庫表"book"中添加新的讀者記錄Adodc.RecordSource="select*fromreader"Adodc.RefreshAdodc.Recordset.AddNewAdodc.Recordset.Fields("readerid")=Trim(TxtReaderid.Text)Adodc.Recordset.Fields("readername")=Trim(TxtReaderName.Text)Adodc.Recordset.Fields("booknum")=0Adodc.Recordset.UpdateAdodc.Refresh'將標志變量置為真ActFlag=TrueUnloadMeEndSub6.刪除一個讀者選擇菜單“讀者管理→刪除一個讀者〞,在代碼編輯窗口中添加以下代碼:PrivateSubDelReader_Click()'將標志變量置為假ActFlag=False'顯示刪除一個讀者窗體frmDelReader.ShowvbModal'判斷是否需要刷新數據表格,如果需要則在主界面的數據表格中顯示所有的讀者信息IfActFlagThenDispAllReader_ClickEndIfActFlag=FalseEndSub為工程添加一個新的窗體,將新窗體的“名稱〞屬性改為“frmDelReader〞,“Caption〞屬性改為“刪除一個讀者〞。在窗體上添加一個框架控件(Frame),在Frame1中添加一個命令按鈕、一個標簽、一個文本框和一個ADO數據控件。修改frmDelReader窗體控件的屬性,見表7。表7FrmDelReader窗體控件屬性控件名稱屬性名稱屬性設置值Frame1Caption輸入編號Label1Caption讀者編號Text1名稱TxtReaderidTextCommand1名稱CmdDelCaption刪除Adodc1名稱AdodcVisibelFalse運用frmMain主界面中設置Adodc的方法來設置本窗體的Adodc,完成后的frmDelReader窗體效果如圖22所示。圖22雙擊“刪除〞按鈕,在代碼編輯窗口中添加以下代碼:PrivateSubCmdDel_Click()DimRecCountAsInteger'判斷是否輸入了讀者編號信息,如果沒有輸入則發出提示并退出子程序IfTrim(TxtReaderid.Text)=""ThenMsgBox"請填入編號信息!",,"提示"ExitSubEndIf'根據讀者編號查找讀者信息Adodc.RecordSource="select*fromreaderwherereaderid="_&"'"&Trim(TxtReaderid.Text)&"'"Adodc.Refresh'如果沒有該讀者信息則提示"查無此人!"信息,退出子程序RecCount=Adodc.Recordset.RecordCountIfRecCount<1ThenMsgBox"查無此人!",,"提示"ExitSubEndIf'根據讀者編號信息從數據庫表"borrow"中查找該讀者的借閱記錄Adodc.RecordSource="select*fromborrowwherereaderid="_&"'"&Trim(TxtReaderid.Text)&"'"Adodc.Refresh'如果存在該讀者的借閱記錄,提示"此人有書未歸還,故不能刪除!"信息,退出子程序RecCount=Adodc.Recordset.RecordCountIfRecCount>0ThenMsgBox"此人有書未歸還,故不能刪除!",,"提示"ExitSubEndIf'從數據庫表"reader"中找到該讀者記錄,刪除Adodc.RecordSource="select*fromreaderwherereaderid="_&"'"&Trim(TxtReaderid.Text)&"'"Adodc.RefreshAdodc.Recordset.DeleteAdodc.Refresh'將標志變量置為真ActFlag=TrueUnloadMeEndSub7.顯示所有圖書選擇菜單“圖書管理→顯示所有圖書〞,在代碼編輯窗口中添加以下代碼:PrivateSubDispAllBook_Click()DimRecCountAsInteger'從數據庫表"book"中查找所有的圖書記錄AdodcTemp.RecordSource="selectbookidas"_&"圖書編號"&",booknameas"&"圖書名稱"_&",bookstateas"&"此書是否已借出"&"frombook"AdodcTemp.Refresh'如果查到的記錄數>0則刷新數據表格顯示查到的圖書信息,否則提示"未查到任何圖書記錄!"信息'并刷新數據表格顯示空表RecCount=AdodcTemp.Recordset.RecordCountIfRecCount>0ThenDisplayGrid("顯示所有圖書")ElseMsgBox"未查到任何圖書記錄!",,"提示"DisplayGrid("顯示所有圖書")ExitSubEndIfEndSub8.查詢單冊選擇菜單“圖書管理→查詢單冊〞,在代碼編輯窗口中添加以下代碼:PrivateSubFindOneBook_Click()DimRecCountAsInteger'將標志變量置為假ActFlag=False'顯示查詢單冊窗體frmFindOneBook.ShowvbModal'判斷是否需要刷新數據表格IfActFlagThenRecCount=AdodcTemp.Recordset.RecordCountIfRecCount>0ThenDisplayGrid("查詢單冊")EndIfEndIfActFlag=FalseEndSub為工程添加一個新的窗體,將新窗體〞(名稱)〞屬性改為〞frmFindOneBook〞,〞caption〞屬性改為“查詢單冊〞。在窗體添加一個框架控件(Frame)和一個ADO數據控件(Adodc),在〞Frame1”中添加一個命令按鈕(CommandButton)、一個標簽(label)和一個文本框(textbox)。修改frmFindOneBook窗體控件的屬性如表8所示:表8frmFindOneBook窗體控件屬性控件名稱屬性名稱屬性設置值Frame1Caption輸入查詢條件labelCaption圖書編號Text1名稱txtbookidtextCommand1名稱CmdfindCaption查詢Adodc1名稱Adodcvisiblefalse根據“frmMain〞主界面中的設置“Adodc〞的方法來設置本窗體的“Adodc〞的“connectionstring〞屬性。雙擊“查詢〞按鈕,在代碼編譯窗口中添加以下代碼:PrivateSubCmdFind_Click()DimRecCountAsInteger'判斷是否輸入了圖書編號,如果沒有輸入信息,則發出提示,并退出子程序IfTrim(TxtBookid.Text)=""ThenMsgBox"查詢條件不能為空,請填寫!",,"提示"ExitSubEndIf'根據圖書編號查找該圖書信息Adodc.RecordSource="selectbookidas"&"圖書編號"_&",booknameas"&"圖書名稱"&",bookstateas"_&"此書是否已借出"&"frombookwherebookid="&"'"_&Trim(TxtBookid.Text)&"'"Adodc.Refresh'如果查到的記錄數>0,則返回主界面在數據表格中顯示查到的圖書信息RecCount=Adodc.Recordset.RecordCountIfRecCount>0ThenfrmMain.AdodcTemp.RecordSource="selectbookidas"_&"圖書編號"&",booknameas"&"圖書名稱"_&",bookstateas"&"此書是否已借出"_&"frombookwherebookid="&"'"&Trim(TxtBookid.Text)_&"'"frmMain.AdodcTemp.RefreshActFlag=TrueUnloadMeElse'若沒查到該圖書信息,則提示"查無此書!"信息,退出子程序MsgBox"查無此書!",,"提示"ExitSubEndIfEndSub9.添加新書選擇菜單“圖書管理→增加新書〞,在代碼編輯窗口中添加以下代碼:PrivateSubAddBook_Click()'將標志變量置為假ActFlag=False'顯示增加新書窗體frmAddBook.ShowvbModal'判斷如果需要刷新數據表格,則在主界面中顯示所有的圖書信息IfActFlagThenDispAllBook_ClickEndIfActFlag=FalseEndSub為工程添加一個新的窗體,將新窗體“(名稱)〞屬性改為“frmAddBook〞,“caption〞屬性改為“增加新書〞。在窗體上添加一個框架控件(frame),在“frame1〞中添加一個命令按鈕(commandbutton)、兩個標簽(label)、兩個文本框(textbox)和一個ADO數據控件(Adodc),如下表所示:控件名稱屬性名稱屬性設置值Frame1Caption輸入數據Label1Caption圖書編號Label2Caption圖書名稱Text1名稱txtbookidtextText2名稱txtbooknametextCommand1名稱CmdsaveCaption保存Adodc1名稱Adodcvisiblefalse根據〞frmMain〞主界面中的設置“Adodc〞的方法來設置本窗體的“Adodc〞的“connectionstring〞屬性。雙擊“保存〞按鈕,在代碼編輯窗口中添加以下代碼:PrivateSubCmdSave_Click()DimRecCountAsInteger'判斷是否輸入了圖書編號和圖書名稱信息,如果沒有輸入則發出提示并退出子程序IfTrim(TxtBookid.Text)=""OrTrim(TxtBookName.Text)=""ThenMsgBox"請將內容填寫完整!",,"提示"ExitSubEndIf'根據圖書編號查找是否存在該圖書記錄,如果存在,則提示"已經存在此圖書編號,請重新設置!"'則提示退出子程序Adodc.RecordSource="select*frombookwherebookid="&"'"&Trim(TxtBookid.Text)&"'"Adodc.RefreshRecCount=Adodc.Recordset.RecordCountIfRecCount>0ThenMsgBox"已經存在此圖書編號,請重新設置!",,"提示"ExitSubEndIf'在數據庫表"book"中添加該新書記錄Adodc.RecordSource="select*frombook"Adodc.RefreshAdodc.Recordset.AddNewAdodc.Recordset.Fields("bookid")=Trim(TxtBookid.Text)Adodc.Recordset.Fields("bookname")=Trim(TxtBookName.Text)Adodc.Recordset.Fields("bookstate")="否"Adodc.Recordset.UpdateAdodc.Refresh'將標志變量置為真ActFlag=TrueUnloadMeEndSub10.刪除圖書選擇菜單“圖書管理→刪除圖書“,在代碼編輯窗口中添加以下代碼:PrivateSubDelBook_Click()'將標志變量置為假ActFlag=False'顯示刪除圖書窗體frmdelbook.ShowvbModal'判斷是否需要刷新數據表格,如果需要的話則在數據表格中顯示所有的圖書記錄IfActFlagThenDispAllBook_ClickEndIfActFlag=FalseEndSub為工程添加一個新的窗體,將新窗體“(名稱)〞屬性改為“frmdelbook〞,“caption〞屬性改為“刪除圖書〞。在窗體上添加一個框架控件(Frame),在〞Frame1”中添加一個命令按鈕(commandbutton)、一個標簽(label)、一個文本框(textbox)和一個ADO數據控件(Adodc),如下表所示:控件名稱屬性名稱屬性設置值Frame1Caption輸入編號Label1Caption圖書編號Text1名稱txtbookidTextCommand1名稱CmddelCaption刪除Adodc1名稱Adodcvisiblefalse根據“frmMain〞主界面中的設置“Adodc〞的方法來設置本窗體的“Adodc〞的“connectionstring〞屬性,完成以上操作后frmDelBook窗體效果如下列圖所以:雙擊“刪除〞按鈕,在代碼編輯窗口中添加以下代碼:PrivateSubCmdDel_Click()DimRecCountAsInteger'判斷是否輸入圖書編號,如果沒有輸入數據,則發出提示并退出子程序IfTrim(TxtBookid.Text)=""ThenMsgBox"請填入編號信息!",,"提示"ExitSubEndIf'根據圖書編號從數據庫表"book"中查找該圖書的記錄。Adodc.RecordSource="select*frombookwherebookid="_&"'"&Trim(TxtBookid.Text)&"'"Adodc.RefreshRecCount=Adodc.Recordset.RecordCount'如果沒有該圖書的信息,則提示"查無此書!"信息,退出子程序IfRecCount<1ThenMsgBox"查無此書!",,"提示"ExitSubEndIf'如果該圖書已經借出,則提示"此書尚未歸還,故不能刪除!"并退出子程序IfAdodc.Recordset.Fields("bookstate")="是"ThenMsgBox"此書尚未歸還,故不能刪除!",,"提示"ExitSubEndIf'刪除該圖書記錄Adodc.Recordset.DeleteAdodc.Refresh'將標志變量置為真ActFlag=TrueUnloadMeEndSub11.顯示所有借閱情況選擇菜單“借閱管理→顯示所有借閱記錄〞,進入代碼編輯窗口中添加代碼如下:PrivateSubDispAllBor_Click()DimRecCountAsInteger'用多表連接查詢語句查詢所有的圖書借閱記錄AdodcTemp.RecordSource="selectborrow.readeridas"_&"讀者編號"&",reader.readernameas"&"讀者姓名"_&",borrow.bookidas"&"所借圖書編號"&",book.booknameas"_&"所借圖書名稱"&"fromborrow,reader,book"_&"whereborrow.readerid=reader.readeridand"_&"borrow.bookid=book.bookid"AdodcTemp.RefreshRecCount=AdodcTemp.Recordset.RecordCountIfRecCount>0Then'如果查到的記錄數>0,則在數據表格中顯示所有的借閱記錄DisplayGrid("顯示所有借閱情況")Else'否則,提示"沒有任何借閱記錄!"信息并顯示一個空表MsgBox"沒有任何借閱記錄!",,"提示"DisplayGrid("顯示所有借閱情況")ExitSubEndIfEndSub12.借書選擇菜單“借閱管理→借書〞,在代碼編輯窗口中添加以下代碼:PrivateSubBorrow_Click()DimRecCountAsInteger'將標志變量置為假ActFlag=False'顯示借書窗體frmborrow.ShowvbModal'判斷是否需要刷新數據表格,如果需要則顯示剛剛借書讀者的借閱記錄IfActFlagThenRecCount=AdodcTemp.Recordset.RecordCountIfRecCount>0ThenDisplayGrid("此人借閱記錄")EndIfEndIfActFlag=FalseEndSub為工程添加一個新的窗體,將新窗體〞(名稱)〞屬性改為〞Frmborrow〞,〞Caption〞屬性改為“借書〞。在窗體上添加一個框架控件(Frame),在Frame1中添加一個命令按鈕(Commandbutton)、兩個標簽(Label)、兩個文本框(Textbox)和一個ADO數據控件(Adodc)。修改frmborrow窗體控件的屬性,如下表:控件名稱屬性名稱屬性設置值Frame1Caption輸入數據Label1Caption圖書編號Label2Caption讀者編號Text1名稱TxtbookidTextText2名稱TxtReaderidTextCommand1名稱CmdborrowCaption借書Adodc1名稱AdodcVisibleFalse根據“frmMain〞主界面中設置“Adodc〞的方法來設置來本窗體的“Adodc〞的“Connectionstring〞屬性。雙擊“借書〞按鈕,在代碼編輯窗口中添加以下代碼:PrivateSubCmdBorrow_Click()DimRecCount1AsIntegerDimRecCount2AsIntegerDimBookStateStrAsString'判斷是否輸入了圖書編號和讀者編號,如果沒有輸入,則發出提示并退出子程序IfTrim(TxtBookid.Text)=""OrTrim(TxtReaderid.Text)=""ThenMsgBox"各項數據請填寫完整!",,"提示"ExitSubEndIf'根據圖書編號查詢該圖書記錄是否存在Adodc.RecordSource="select*frombookwherebookid="&"'"&Trim(TxtBookid.Text)&"'"Adodc.RefreshRecCount1=Adodc.Recordset.RecordCountIfRecCount1>0ThenBookStateStr=Adodc.Recordset.Fields("bookstate")IfBookStateStr="是"Then'根據讀者編號查找該讀者記錄是否存在Adodc.RecordSource="select*fromreaderwherereaderid="_&"'"&Trim(TxtReaderid.Text)&"'"Adodc.RefreshRecCount2=Adodc.Recordset.RecordCountIfRecCount2<1Then'如果該圖書存在并且已經借出,又不存在此讀者,則提示"該書已經借出,也無此人!"MsgBox"該書已經借出,也無此人!",,"提示"ExitSubElse'如果該圖書存在并且已經借出,而存在此讀者,則提示"該書已經借出,您不能借閱此書!"MsgBox"該書已經借出,您不能借閱此書!",,"提示"ExitSubEndIfEndIf'根據讀者編號查找該讀者記錄Adodc.RecordSource="select*fromreaderwherereaderid="_&"'"&Trim(TxtReaderid.Text)&"'"Adodc.RefreshRecCount2=Adodc.Recordset.RecordCountIfRecCount2<1Then'如果該圖書存在,沒有借出,然而此讀者不存在,則提示"查無此人!"MsgBox"查無此人!",,"提示"ExitSubEndIfEndIf'根據圖書編號查找該圖書的記錄Adodc.RecordSource="select*frombookwherebookid="_&"'"&Trim(TxtBookid.Text)&"'"Adodc.RefreshRecCount1=Adodc.Recordset.RecordCountIfRecCount1<1Then'根據讀者編號查找此讀者記錄Adodc.RecordSource="select*fromreaderwherereaderid="_&"'"&Trim(TxtReaderid.Text)&"'"Adodc.RefreshRecCount2=Adodc.Recordset.RecordCountIfRecCount2<1Then'如果既沒有此圖書也沒有此讀者,則提示"查無此書,也無此人!"信息MsgBox"查無此書,也無此人!",,"提示"ExitSubElse'如果沒有此圖書,但是有此讀者,則提示"查無此書!"信息MsgBox"查無此書!",,"提示"ExitSubEndIfEndIf'根據圖書編號查到在數據庫表"book"中該圖書的記錄Adodc.RecordSource="select*frombookwherebookid="_&"'"&Trim(TxtBookid.Text)&"'"Adodc.Refresh'將該圖書的記錄是否借出狀態修改為"是"Adodc.Recordset.Fields("bookstate")="是"Adodc.Recordset.UpdateAdodc.Refresh'在數據庫表"borrow"中添加一條相應的借閱記錄Adodc.RecordSource="select*fromborrow"Adodc.RefreshAdodc.Recordset.AddNewAdodc.Recordset.Fields("bookid")=Trim(TxtBookid.Text)Adodc.Recordset.Fields("readerid")=Trim(TxtReaderid.Text)Adodc.Recordset.UpdateAdodc.Refresh'在數據庫表"reader"中查找到該讀者的記錄Adodc.RecordSource="select*fromreaderwherereaderid="_&"'"&Trim(TxtReaderid.Text)&"'"Adodc.Refresh'將該讀者得借閱冊數加"1"Adodc.Recordset.Fields("booknum")=Adodc.Recordset.Fields("booknum")+1Adodc.Recordset.UpdateAdodc.Refresh'修改主界面臨時ADO數據控件的RecordSource屬性,以備刷新數據表格用frmmain.AdodcTemp.RecordSource="selectborrow.readeridas"_&"讀者編號"&",reader.readernameas"&"讀者姓名"_&",borrow.bookidas"&"所借圖書編號"&",book.booknameas"_&"所借圖書名稱"&"fromborrow,reader,bookwhere"_&"borrow.readerid=reader.readeridandborrow.bookid=book.bookid"_&"andborrow.readerid="&"'"&Trim(TxtReaderid.Text)&"'"frmmain.AdodcTemp.Refresh'將標志變量置為真ActFlag=TrueUnloadMeEndSub13.還書選擇菜單“借閱管理→還書〞,在代碼編輯窗口中添加以下代碼:PrivateSubReturn_Click()DimRecCountAsInteger'將標志變量置為假ActFlag=False'顯示還書窗體frmreturn.ShowvbModal'判斷是否需要刷新數據表格,如果需要的話,則在數據表格中顯示"該書原讀者未還書記錄"IfActFlagThenRecCount=AdodcTemp.Recordset.RecordCountDisplayGrid("該書原讀者未還書記錄")EndIfActFlag=FalseEndSub為工程添加一個新的窗體,將新窗體“(名稱)〞屬性改為“frmReturn〞,“Caption〞屬性改為“還書〞。在窗體上添加一個框架控件(Frame),在〞Frame1”中添加一個命令按鈕(Commandbutton),一個標簽(Label),一個文本框架(TextBox)和一個ADO數據控件(Adodc).修改frmReturn窗體控件的屬性,如下表所示:控件名稱屬性名稱屬性設置Frame1Caption輸入數據Label1Caption圖書編號Text1名稱TxtbookidTextCommand1名稱CmdreturnCaption還書Adodc1名稱AdodcVisibleFalse運用“frmMain〞主界面中設置“Adodc〞的方法來設置本窗體的“Adodc〞的“ConnectionString〞屬性。雙擊“還書〞按鈕,在代碼編輯窗口中添加以下PrivateSubCmdReturn_Click()DimRecCountAsIntegerDimDelReaderidStrAsString'判斷是否輸入了所還圖書的圖書編號IfTrim(TxtBookid.Text)=""ThenMsgBox"請將數據填寫完整!",,"提示"ExitSubEndIf'根據圖書編號查找圖書記錄Adodc.RecordSource="select*frombookwherebookid="&"'"&Trim(TxtBookid.Text)&"'"Adodc.RefreshRecCount=Adodc.Recordset.RecordCount'如果圖書記錄數為0,則提示"查無此書!"信息,退出子程序IfRecCount<1ThenMsgBox"查無此書!",,"提示"ExitSubEndIf'根據圖書編號在數據庫表"borrow"中查找該圖書得借閱記錄Adodc.RecordSource="select*fromborrowwherebookid="_&"'"&Trim(TxtBookid.Text)&"'"Adodc.RefreshRecCount=Adodc.Recordset.RecordCount'如果沒有查到該圖書的借閱記錄,則提示"此書并未被借出,故不需歸還!",退出子程序IfRecCount<1ThenMsgBox"此書并未被借出,故不需歸還!",,"提示"ExitSubEndIf'用變量DelReaderidStr記錄借閱該圖書的讀者編號DelReaderidStr=Adodc.Recordset.Fields("readerid")'刪除在"borrow"表中該圖書的借閱記錄Adodc.Recordset.DeleteAdodc.Refresh'根據圖書編號從數據庫表"book"中查找該圖書的記錄Adodc.RecordSource="select*frombookwherebookid="&"'"&Trim(TxtBookid.Text)&"'"Adodc.RefreshRecCount=Adodc.Recordset.RecordCount'將該圖書的是否借出字段值修改為"否"IfRecCount>0ThenAdodc.Recordset.Fields("bookstate")="否"Adodc.Recordset.UpdateEndIf'根據讀者編號查找該讀者的記錄Adodc.RecordSource="select*fromreaderwherereaderid="_&"'"&DelReaderidStr&"'"Adodc.RefreshRecCount=Adodc.Recordset.RecordCountIfRecCount>0Then'將該讀者的借閱冊數減1Adodc.Recordset.Fields("booknum")=Adodc.Recordset.Fields("booknum")-1Adodc.Recordset.UpdateAdodc.RefreshEndIf'用將多表連接查詢語句來查詢該圖書原借閱讀者的所有現有借閱記錄frmmain.AdodcTemp.RecordSource="selectborrow.readeridas"_&"讀者編號"&",reader.readernameas"&"讀者姓名"_&",borrow.bookidas"&"所借圖書編號"&",book.booknameas"_&"所借圖書名稱"&"fromborrow,reader,bookwhere"_&"borrow.readerid=reader.readeridandborrow.bookid=book.bookid"_&"andborrow.readerid="&"'"&DelReaderidStr&"'"frmmain.AdodcTemp.Refresh'將標志變量置為真ActFlag=TrueUnloadMeEndSub14.根據人來查書選擇菜單“借閱管理→根據人來查書〞,在代碼編輯窗口中添加以下代碼:PrivateSubReaderToBook_Click()DimRecCountAsInteger''將標志變量置為假ActFlag=False'顯示根據人來查書窗體frmreadertobook.ShowvbModal'判斷是否需要在數據表格中顯示"根據人來查書"IfActFlagThenRecCount=AdodcTemp.Recordset.RecordCountIfRecCount>0ThenDisplayGrid("根據人來查書")EndIfEndIfActFlag=FalseEndSub為工程添加一個新的窗體,將新窗體“(名稱)〞屬性改為“frmReaderToBook〞,“Caption〞屬性改為“根據人來查書〞。在窗體上添加一個框架控件(Frame),在“Frame1〞中添加一個命令按鈕(commandbutton),一個標簽(Label)、一個文本框(Textbox)和一個ADO數據控件(Adodc).修改frmReaderToBook窗體控件的屬性,如下表所示:控件名稱屬性名稱屬性設置值Frame1Caption輸入查詢條件Label1Caption讀者編號Text1名稱TxtreaderidTextCommand1名稱CmdFindCaption查詢Adodc1名稱AdodcVisibleFalse根據“frmMain〞主界面中設置“Adodc〞的方法來設置本窗體的“Adodc〞的“ConnectionString〞屬性。雙擊“查詢〞按鈕,在代碼編輯窗口中添加以下代碼:PrivateSubCmdFind_Click()DimRecCountAsInteger'判斷是否輸入了讀者編號信息,如果沒有輸入數據,則發出提示并退出子程序IfTrim(TxtReaderid.Text)=""ThenMsgBox"請輸入查詢條件!",,"提示"ExitSubEndIf'根據讀者編號查找該讀者記錄Adodc.RecordSource="select*fromreaderwherereaderid="_&"'"&Trim(TxtReaderid.Text)&"'"Adodc.RefreshRecCount=Adodc.Recordset.RecordCount'如果查到的記錄條數為0,則提示"查無此人!"信息,退出子程序IfRecCount<1ThenMsgBox"查無此人!",,"提示"ExitSubEndIf'根據讀者編號在數據庫表"borrow"中查找該讀者得借閱記錄Adodc.RecordSource="
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 例會管理制度
- 大氣匯報類型模板
- 學校膳食管理委員會議探討幼兒膳食營養管理飲食健康課件模板
- 上海電子信息職業技術學院《大學英語B(二)》2023-2024學年第二學期期末試卷
- 長沙環境保護職業技術學院《語言學導論》2023-2024學年第一學期期末試卷
- 溫州大學《首飾材料研究》2023-2024學年第二學期期末試卷
- 浙江省麗水市級名校2025年初三中考適應性測試(一)化學試題含解析
- 2025年江蘇省普通高中第一次聯考高三物理試題含解析
- 2025年安徽省蕪湖市重點中學高三下學期4月考英語試題理試題含解析
- 2025年甘肅省天水市秦安縣第二中學高三5月高三調研測試歷史試題含解析
- 營運資金需求量測算表-2
- 小學語文新課標跨學科學習任務群解讀及教學建議
- 深基坑開挖支護工程安全監理實施細則
- 陜2022TJ 067 廚衛裝配式鋼絲網混凝土排氣道系統建筑構造圖集
- GB/T 21566-2008危險品爆炸品摩擦感度試驗方法
- GB/T 17207-2012電子設備用固定電容器第18-1部分:空白詳細規范表面安裝固體(MnO2)電解質鋁固定電容器評定水平EZ
- 國開電大《人員招聘與培訓實務》形考任務4國家開放大學試題答案
- 臨時用電現場安全檢查表
- 豬營養體系課件
- 青少年模擬法庭劇本(敲詐勒索)
- 中考復習確定二次函數的解析式課件
評論
0/150
提交評論