【正文】
etrow, 0) End If griderror: If 0 Then MsgBox End If End Sub Public Sub showdata() With MSFlexGrid2 .Rows = + 1 .Row = 0 If Not Then Do While Not .Row = .Row + 1 .Col = 0 If Not IsNull((0)) Then .Text = (0) Else .Text = .Col = 1 If Not IsNull((1)) Then .Text = (1) Else .Text = .Col = 2 If Not IsNull((2)) Then .Text = (2) Else .Text = .Col = 3 If Not IsNull((3)) Then .Text = (3) Else .Text = .Col = 4 If Not IsNull((4)) And CDbl((4)) 0 Then .Text = CDbl((4)) Else .Text = (4) End If .Col = 5 If Not IsNull((5)) Then .Text = (5) Else .Text = .Col = 6 If Not IsNull((6)) Then .Text = (6) Else .Text = .Col = 7 If Not IsNull((7)) And CDbl((4)) 0 Then .Text = CDbl((7)) Else .Text = (7) End If .Col = 8 If Not IsNull((8)) Then .Text = (8) Else .Text = Loop End If End With End Sub (5) 查詢子窗體代碼 查詢子窗體是用來查詢庫房中圖書資料明細(xì)的。其運(yùn)行效果如圖40所示。其運(yùn)行效果如圖38所示。采用MDI的子程序,所以運(yùn)行后,它出現(xiàn)在主程序的界面下,如圖33所示?! rivate Sub exit_Click() Unload Me End Sub 下面是響應(yīng)“圖書登記”子菜單Click事件,調(diào)出圖書登記窗體代碼。 標(biāo)記用戶權(quán)限 Public find As Boolean 39?! D31 投訴管理子窗體 建立公共模塊 顯示目錄 建立公共模塊可以提高代碼的效率,同時(shí)使得修改和維護(hù)代碼都很方便?! D27 庫房管理子窗體 其控件如表6所示?! ≡谛陆╒isual Basic工程時(shí)自帶的窗體中,將其屬性MIDChild改成True,則這個(gè)窗體成為MID窗體的子窗體。 創(chuàng)建主窗體 首先創(chuàng)建一個(gè)工程,命名為圖書管理系統(tǒng),選擇“工程”→“添加MDI窗體”命令,則在項(xiàng)目中添加了主窗體?! D17 ODBC對(duì)話框 單擊“添加”按鈕,出現(xiàn)“創(chuàng)建新數(shù)據(jù)源”對(duì)話框,如圖18所示。 圖14 投訴管理表 值班管理表,如圖15所示。 建立Access 數(shù)據(jù)庫 啟動(dòng)Access,如圖8所示?! D6 值班管理實(shí)體ER圖 查詢輸出實(shí)體ER圖如圖7所示?! ∠到y(tǒng)的功能模塊圖如圖1所示。VB+Access設(shè)計(jì)圖書管理系統(tǒng)設(shè)計(jì)書 一、需求分析 在進(jìn)行一個(gè)項(xiàng)目的設(shè)計(jì)之前,先要進(jìn)行必要的需求分析?! ”緦?shí)例根據(jù)上面的設(shè)計(jì)規(guī)劃出的實(shí)體有圖書登記實(shí)體、圖書借閱實(shí)體、圖書賠償實(shí)體、查詢輸出實(shí)體、值班管理實(shí)體、投訴管理實(shí)體?! D7 查詢輸出實(shí)體ER圖 二、結(jié)構(gòu)設(shè)計(jì) 根據(jù)上面的需求分析,設(shè)計(jì)好數(shù)據(jù)庫系統(tǒng),然后開發(fā)應(yīng)用程序可以考慮的窗體的系統(tǒng),每一個(gè)窗體實(shí)現(xiàn)不同的功能,可以設(shè)計(jì)下面的幾個(gè)模塊?! ∈褂贸绦蛟O(shè)計(jì)器建立系統(tǒng)需要的表格如下?! D15 值班管理表 連接數(shù)據(jù) 在Visual Basic環(huán)境下,選擇“工程”→“引用”命令,在隨后出現(xiàn)的對(duì)話框中選擇“Microsoft ActiveX Data Objects Library”,然后單擊“確定”按鈕,如圖16所示?! D18 “創(chuàng)建新數(shù)據(jù)源”對(duì)話框 選擇Microsoft Access Driver(*.mdb),單擊“完成”按鈕,出現(xiàn)如圖19所示對(duì)話框。該窗體的一些屬性如表1所示。 在這個(gè)項(xiàng)目中,要?jiǎng)?chuàng)建的子窗體如表3所示?! ”? 庫房管理子窗體控件控 件 類 別控件Name控件TextTextBoxText1(空)ComboBoxCombo1 創(chuàng)建公共模塊的步驟如下: (1) 在菜單中選擇“工程”→“添加模塊”命令,則出現(xiàn)模塊對(duì)話框,如圖32所示。 標(biāo)記查詢 Public sqlfind As String 39。 Private Sub checkin_Click() End Sub 下面是響應(yīng)“修改密碼”子菜單Click事件,調(diào)出修改密碼窗體代碼?! D33 圖書登記子窗體 按鈕控件要求先填寫基本信息,然后與數(shù)據(jù)庫信息比較?! D38 修改密碼子窗體運(yùn)行效果 在“確定”按鈕的Click事件中添加如下代碼: Private Sub Command1_Click() Dim rs_chang As New Dim sql As String If Trim() Trim() Then MsgBox 密碼不一致!, vbOKOnly + vbExclamation, = = Else sql = select * from 系統(tǒng)管理 where 用戶名=39?! D40 庫房管理子窗體 實(shí)際上,設(shè)計(jì)庫房管理子窗體的程序代碼與增加用戶子窗體的代碼在思路上是完全相同的。其運(yùn)行效果如圖41所示。 39。 Combod(0).Text), yyyymmdd) find_date2 = Format(CDate(Comboy(1).Text amp。 amp?! D42 查詢結(jié)果 200631 16:26:00 顯示目錄 (6) 用戶登錄子窗體代碼 運(yùn)行的用戶登錄子窗體如圖43所示。 amp?! D44 運(yùn)行的值班管理子窗體 先定義連接數(shù)據(jù)庫的變量: Option Explicit Dim rs_zhiban As New 然后列出窗體部分的代碼。 不可刪除 = False Set = rs_zhiban Exit Sub loaderror: MsgBox End Sub Private Sub Form_Unload(Cancel As Integer) Set = Nothing End Sub (8) 投訴管理子窗體代碼 投訴管理子窗體是為了對(duì)人員進(jìn)行更好的管理而設(shè)置的,可以向其添加投訴的對(duì)象、時(shí)間和內(nèi)容等。 圖45 運(yùn)行的投訴管理子窗體 以下為窗體的代碼: Private Sub Command1_Click() On Error GoTo adderr Exit Sub adderr: MsgBox End Sub Private Sub Command2_Click() On Error GoTo deleteerr With If Not .EOF And Not .BOF Then If MsgBox(刪除當(dāng)前記錄嗎?, vbYesNo + vbQuestion) = vbYes Then .Delete .MoveNext