【文章內(nèi)容簡介】
。 圖11置連接數(shù)據(jù)源 在“數(shù)據(jù)源名”文本框中添加一個(gè)名字,單擊“確定”按鈕完成系統(tǒng)默認(rèn)連接設(shè)置。然后在ODBC對話框中單擊“確定”按鈕完成ODBC設(shè)置。界面設(shè)計(jì) 設(shè)計(jì)好的界面(兩種界面選一)如圖12所示。圖12 圖書管理系統(tǒng)界面 這是一個(gè)多文檔界面(MDI)應(yīng)用程序,可以同時(shí)顯示多個(gè)文檔,每個(gè)文檔顯示在各自的窗體中。MDI 應(yīng)用程序中常有包含子菜單的“窗體”選項(xiàng),用于在窗體或文檔之間進(jìn)行切換?! 〔藛螒?yīng)用程序中,有5個(gè)菜單選項(xiàng),每個(gè)選項(xiàng)對應(yīng)著ER圖的一個(gè)子項(xiàng)目?! ?chuàng)建主窗體 首先創(chuàng)建一個(gè)工程,命名為圖書管理系統(tǒng),選擇“工程”→“添加MDI窗體”命令,則在項(xiàng)目中添加了主窗體。該窗體的一些屬性如表1所示?! ”? 主窗體的屬性屬 性值Caption圖書管理系統(tǒng)NameMainMenuMainmenu1WindowstateMaxsize Windowstate的值為Maxsize,即程序啟動(dòng)之后自動(dòng)最大化?! ⅰ安藛巍苯M件從“工具箱”拖到窗體上。創(chuàng)建一個(gè) Text 屬性設(shè)置為“文件”的頂級菜單項(xiàng),且?guī)в忻麨椤瓣P(guān)閉”的子菜單項(xiàng)。類似地創(chuàng)建一些菜單項(xiàng),如表2所示?! ”? 菜 單 項(xiàng) 表菜 單 名 稱Text屬性功 能 描 述MenuItem1圖書管理頂級菜單,包含子菜單MenuItem2圖書類別調(diào)出圖書登記窗體MenuItem3圖書信息調(diào)出圖書借閱窗體MenuItem4圖書資料頂級菜單,包含子菜單MenuItem5查詢輸出調(diào)出查詢輸出窗體MenuItem6系統(tǒng)管理頂級菜單,包含子菜單MenuItem7增加用戶調(diào)出用戶窗體MenuItem8修改密碼調(diào)出密碼窗體MenuItem9退出系統(tǒng)退出 創(chuàng)建各子窗體 選擇“工程”→“添加窗體”命令,添加子窗體?! ≡谛陆╒isual Basic工程時(shí)自帶的窗體中,將其屬性MIDChild改成True,則這個(gè)窗體成為MID窗體的子窗體?! ≡谶@個(gè)項(xiàng)目中,要?jiǎng)?chuàng)建的子窗體如表3所示?! ”? 所有子窗體子 窗 體 名Text圖書登記frmdengji圖書借閱frmjieyue增加新用戶frmadduser查詢輸出frmfind登錄系統(tǒng)frmlogin修改密碼frmchangepwd下面分別給出這些子窗體,以及它們所使用的控件。(1) 圖書登記子窗體控件如表4所示。表4 圖書登記子窗體控件控 件 類 別控件Name控件TextLabelLabel1編號Label2書名Label3類型Label4購買日期Label5TextBoxText1(空)Text2(空)Text3(空)Text4(空)Text5(空)CommandButtonCommand1Command2ADO DataAdodc1(空)DataGridDataGrid1(空) 圖書借閱和圖書賠償子窗體分別,因?yàn)樗鼈兊目丶c圖書登記子窗體的雷同,在此不作介紹。(2) 增加用戶子窗體如圖13所示,其控件如表5所示。圖13 增加用戶子窗體表5 增加用戶子窗體控件控 件 類 別控件Name控件TextLabelLabel1輸入用戶名Label2輸入密碼Label3確認(rèn)密碼TextBoxText1(空)Text2(空)Text3(空)ComboBoxComb1選擇權(quán)限CommandButtonCommandl確定Command2取消(3) 修改密碼子窗體如圖14所示。圖14 修改密碼子窗體(4) 用戶登錄子窗體如圖15所示?!D15 用戶登錄子窗體 (5) 添加讀者類別如圖16,其控件如表9所示?! D16建立公共模塊 顯示目錄 建立公共模塊可以提高代碼的效率,同時(shí)使得修改和維護(hù)代碼都很方便?! ?chuàng)建公共模塊的步驟如下: (1) 在菜單中選擇“工程”→“添加模塊”命令,則出現(xiàn)模塊對話框,如圖18所示?! ?2) 選擇模塊圖標(biāo)后,單擊“打開”按鈕,則模塊已經(jīng)添加到項(xiàng)目中了。默認(rèn)情況下名為Module1?! D17 模塊對話框(3) 在模塊中定義整個(gè)項(xiàng)目的公共變量?! ublic conn As New ’ 標(biāo)記連接對象 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 ’ 查詢語句 Public rs_data1 As New Public findok As Boolean Public frmdata As Boolean Public Const keyenter = 13 ’ enter鍵的ASCII碼 在主窗體添加完菜單之后,就要為各個(gè)子菜單創(chuàng)建事件處理程序。主窗體代碼 在本項(xiàng)目中,子菜單事件都是Click事件,這里先給出主窗體部分的代碼?! ∠旅媸琼憫?yīng)“增加用戶”子菜單Click事件,調(diào)出增加用戶窗體代碼。Private Sub add_admin_Click()End SubPrivate Sub add_back_book_Click()End SubPrivate Sub add_book_info_Click()End SubPrivate Sub add_book_style_Click()End SubPrivate Sub add_lend_book_Click()End SubPrivate Sub add_reader_info_Click()End SubPrivate Sub add_reader_style_Click()End SubPrivate Sub change_pwd_Click()End SubPrivate Sub del_book_info_Click()End SubPrivate Sub del_book_style_Click()End SubPrivate Sub del_reader_info_Click()End SubPrivate Sub del_reader_style_Click()End SubPrivate Sub exit_sys_Click()EndEnd SubPrivate Sub find_book_info_Click()End SubPrivate Sub find_lend_book_Click()End SubPrivate Sub find_reader_info_Click()End SubPrivate Sub Form_Load()End SubPrivate Sub modify_book_info_Click()End SubPrivate Sub modify_book_style_Click()End SubPrivate Sub modify_reader_info_Click()End SubPrivate Sub modify_reader_style_Click()End Sub各子窗體的代碼 (1) 圖書登記子窗體代碼 本窗體用來填寫圖書登記的信息,用ADO來連接數(shù)據(jù)庫,是本窗體的重點(diǎn)。采用MDI的子程序,所以運(yùn)行后,它出現(xiàn)在主程序的界面下,如圖18所示?! D18 圖書登記子窗體 按鈕控件要求先填寫基本信息,然后與數(shù)據(jù)庫信息比較?! ption ExplicitPrivate Sub Command1_Click()Dim rs_addbook As New Dim sql As StringIf Trim() = Then MsgBox 請選擇圖書種類, vbOKOnly + vbExclamation, Exit SubEnd IfIf Trim() = Then MsgBox 圖書編號不能為空, vbOKOnly + vbExclamation, Exit SubEnd IfIf Trim() = Then MsgBox 書名不能為空, vbOKOnly + vbExclamation, Exit SubEnd If If Not IsDate() Then MsgBox 請按照yyyymmdd格式輸入日期, vbOKOnly + vbExclamation, Exit Sub End If If Not IsDate() Then MsgBox 請按照yyyymmdd格式輸入日期, vbOKOnly + vbExclamation, Exit Sub End Ifsql = select *