久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

VB+Access學生公寓管理系統-論文

時間:2019-05-14 03:36:23下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《VB+Access學生公寓管理系統-論文》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《VB+Access學生公寓管理系統-論文》。

第一篇:VB+Access學生公寓管理系統-論文

VB+Access學生公寓管理系統-論文

中文摘要

隨著電腦的普及與使用,現在的管理也提升了一個檔次,漸漸實現了無紙化辦公,即從原來的人工記錄管理模式轉變為電腦一體化管理。高校是科研的陣地,后勤的公寓管理也應該一改傳統的人工管理,更加信息化,時代化,節省人力物力,提高效率。基于這一點,開發此學生公寓管理軟件。學生公寓管理軟件,是以高校的管理方式為實例而設計的一種實用型管理系統。本系統最大的特點是通用性、簡單操作性,適用于同行業以及一些同類型的企業管理。隨著學校寄宿人員的增多,公寓管理人員的負擔越來越重,為了讓所有公寓管理人員能從繁重的工作中解脫出來,實現無紙化辦公;使工作更有條理,更方便,更有效率而開發出這套公寓管理軟件。軟件從對學生的分房開始到最后的公寓管理全部電腦化。它主要包括:公寓、寢室的配置、住宿人員登記、衛生檢查、公寓資產、學生違紀、值班老師記錄以及對學生住宿情況查詢,可以更快地了解到每個學生的住宿情況,使公寓的管理效率更高,做的更好!

關鍵字:配置、登記、檢查 Abstract

With the popularization and use of the computer, present management has been promoted much, more and more jobs have been done by computer.It namely changes the original artificial record management mode into computer''s integrating and managing.The university is the position of scientific research, the apartment management should change traditional managing artificially too, for the efficiency.So , develop the management software of student''s apartment.Student Apartment Management System is a utility management system based on the managing mode of many universities and colleges.Universal and easy-operating are the greatest features of the system ,which is also applicable for enterprises of the same type.Apartment keepers bear a increasingly heavy burden because of the gradually added number of roomers.In order to free apartment keepers from the heave work,and make the work more convienent and efficient.The apartment management system is developed.The system computerized all the processes concerning the apartment management which include apartment,dormitory distribution,roomer registration,santitation examination,and the query for apartment property,students'' violation of discipline,teachers'' records and rooming situation.It makes the apartment management more efficient and much better.Key word: dispose、register、check 目錄

引言...4 第一章系統分析...5 1.1開發工具簡介及系統運行環境...5 1.2開發的必要性...6 1.3系統開發的可行性...7 1.4數據來源...8 1.5新系統數據流程圖...9 第二章 數據庫設計...12 第三章功能模塊設計...16 3.1新系統功能結構圖及運行圖如下:...16 3.2系統設置:.17 3.3公寓管理...18 3.4 衛生檢查...19 3.5 公寓資產...20 3.6 記錄查看與記錄刪除...20 3.7值班記錄...20 3.8幫助制作...21 第四章 程序設計...22 主程序流程圖...22 4.1 登錄界面...23 4.2 程序主界面...26 4.3系統設置...32 4.4公寓管理...57 4.5衛生檢查...60 4.6 公寓資產...64 4.7記錄查看...66 4.8記錄刪除...74 4.9值班記錄...81 4.10 Help制作...88 第五章 系統測試...90 總結...91 參考文獻...92 引言

隨著電腦的普及與應用,現在的管理也需要提升一個檔次。即從原來的手工記錄管理模式轉變為電腦一體化管理。這樣會給公寓的管理人員帶來很多好處,讓他們管理的效率更高、效果更好,管理起來更方便。由此而產生了本管理軟件――學生公寓管理軟件。學生公寓管理軟件是用Microsoft Visual Basic 編寫完成。由于Visual Basic率先采用了可視化(VISUAL)的程序設計方法。所以利用系統提供的大量可視化控件,可以方便的以可視化方式直接繪制用戶圖形界面,并可直觀,動態的調整界面的風格和樣式,直到滿意為止,從而克服了以前必須用大量代碼去描述界面元素的外觀和位置的傳統編程模式。做起來方便,使用起來更為快捷。

作為一個學生公寓的管理軟件,要十分全面的貼近以及適合大學公寓的管理方法。本軟件的參考資料主要有兩種來源:一是參考本學校公寓的管理結構,管理方法。如各個公寓的分布特色,以及公寓的各種管理制度。這些資料是本軟件的主要依據,也可以說這些資料來源于普通的生活,比較真實一些。二是來源于網絡上的各種同類軟件,通過這些軟件可以看出一個公寓最低需要哪些管理與設置,在這些軟件中,有些軟件功能比較齊全,但是在管理上顯的非常的不方便,使用起來十分麻煩、繁瑣,有些雖然簡單,但是功能上又不是十分完善,對這些軟件首先要進行取其精華,棄其糟粕,從而進行編寫。

本軟件主要包括以下方面:系統設置、公寓管理、衛生檢查、公寓資產、記錄查看、記錄刪除、值班記錄、幫助制作。

學生公寓管理軟件目前版本為1.0.1,為一個測試版本。它目前在功能上,以及操作的簡便上有很大的改進。但是還是存在一些不足,在有些功能的實現上還不是十分的理想,這也是本人在時間和精力上留下的遺憾。但是相信這些會在以后的版本中得到完善,使這個軟件成為一個功能上最全,使用上最簡捷方便的管理軟件。431

[10]...>> 第一章系統分析

系統采用MICROSOFT公司的 VISUAL BASIC語言編寫的學生公寓管理系統,本系統在研制開發過程中,嚴格遵循軟件工程方法,完全采用結構化程序設計方法。

本系統的主要功能可以方便的對學生公寓進行管理,系統采用ACCESS數據庫使數據具有較強的完整性、較好的數據安全性等特點以及提供了標準的幫助,使用戶方便的獲得所需的幫助。界面友好、操作簡單、功能齊全、具有較好的人機接口界面是本系統的最大優點。1.1開發工具簡介及系統運行環境 1.1.1

VB6簡介

本軟件的開發工具為VISUAL BASIC,作為一種開發語言,VISUAL BASIC率先采用了可視化(VISUAL)的程序設計方法。利用系統提供的大量可視化控件,可以方便的以可視化方式直接繪制用戶圖形界面,并可直觀、動態的調整界面的風格和樣式,直到滿意為止,從而克服了以前必須用大量代碼去描述界面元素的外觀和位置的傳統編程模式。

它還擁有面向對象的編程方法。面向對象的程序設計是伴隨WIDNOWS圖形界面的誕生而產生的一種新的程序設計思想,與傳統程序設計有著較大的區別,VISUAL BASIC采用了面向對象的程序設計思想。所謂“對象”就是現實生活中的每個一人,每一個可見的實體。同樣,在VISUAL BASIC中,用來構成用戶圖形界面的可視化控件,也可視為是一個對象。不同的對象,在程序中所賦給它的功能是不同的,比如,在圖形界面上有兩個命令按鈕,一個用來實現數據的統計計算,另一個用來實現數據的打印,這兩個按鈕就可視為是兩個不同的對象,為了實現這兩個對象各自不同的功能,接下來就應該分別針對這兩個對象編寫程序代碼,這種編程的思想和方法即為所謂的“面向對象的程序設計”。它還支持第三方軟件商為其開發的可視化控制對象,如本例中就用到了一個。這些可視化控件對應的文件擴展名這OCX。只要擁有控件的OCX文件,就可將其加入到VB系統中,從而大大增強VB的編程實力。使軟件做起來會更加得心應手。1.1.2 HELP 制作

制作help文檔需要一個專業制作軟件,本人使用的是破解版的QuickCHM,此軟件無論在功能上還在是操作上用起來都是很方便。它屬于一個傻瓜型的制作軟件,利用它可以快速的制作出各種你所需要的幫助文檔。但是如果想制作出幫助文檔,就需要使用制作網頁的軟件把內容先做成html形式,本人使用Dreamweaver制作的網頁,然后在用此軟件進行加載,最后生成chm文檔。1.2開發的必要性

信息資源已成為各個部門的重要財富和資源,建立一個滿足各級部門信息處理需要的信息系統,也一個企業或組織生存越來越重要的信息資源。長期以來,使用傳統人工的方法管理高校公寓,這種管理方式存在著許多缺點,如:效率低。而且時間一長,將產生大量的文件和數據,這對于查找、更新、維護都帶來了不少的困難。

隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發揮越來越重要的作用。學生公寓管理軟件,是以高校的管理方式為實例而設計的一種實用型管理軟件。

本系統最大的特點是通用性、簡單操作性。隨著學校寄宿人員的增多,公寓管理人員的負擔越來越重,為了讓所有公寓管理人員能從繁重的工作中解脫出來,實現無紙化辦公,使工作更有條理、更方便、更有效率,而開發出這套公寓管理軟件。1.3系統開發的可行性 1.3.1 技術上的可行性 我們正走進一個信息時代,信息技術將從根本上改變人類社會的生產方式和生活方式,各行各業的業務管理現在都已經相繼使用計算機來處理,可以說用計算機進行信息管理是一個總趨勢。學生公寓管理軟件主要是對公寓、寢室的配置、住宿人員登記、衛生檢查、公寓資產、學生違紀、值班老師記錄以及對學生住宿情況查詢,修改,更新等。可以更快地了解到每個學生的住宿情況。開發一個學生公寓管理系統可以達到事半功倍的效果。隨著數據庫管理系統的普及以及可視化編程軟件的出現,使數據庫管理信息系統的開發變得更為簡單,因此開發一個學生公寓管理系統是完全可行的。1.3.2 經濟上的可行性

本單位有自己的微機室可以使用,不必重新購置計算機,不需要花費大量資金,是一個節約人力物力的好辦法。

1.3.3 組織管理上的可行性

本單位的領導干部具有較高的素質,它們對管理現代化有較高的認識水平,并且有各級領導的大力支持和重視。

綜上所述,建立一個學生公寓管理軟件與人工操作相比具有速度更快,操作更準確,更節約開支等有利之處,因此建立一個學生公寓管理軟件是必要可行。

1.4數據來源

作為一個學生公寓的管理軟件,要十分全面的貼近以及適合大學公寓的管理方法。本軟件的參考資料主要有兩種來源:一是參考本學校公寓的管理結構,管理方法,這些資料是本軟件的主要依據,也可以說這些資料來源于普通的生活,比較真實一些。二是來源于網絡上的各種同類軟件,通過這些軟件可以看出一個公寓最低需要哪些管理與設置,在這些軟件中,有些軟件功能比較齊全,但是在管理上顯的非常的不方便,使用起來十分麻煩、繁瑣,有些雖然簡單,但是功能上又不是十分完善,對這些軟件首先要進行取其精華,棄其糟粕,從而進行編寫。

[10]...>> 1.5新系統數據流程圖

圖1.1數據流程圖

數據字典

圖1.2 數據元素 注:其它數據元素略

圖1.3 數據流 注:其它數據流略

圖1.4 加工 注:其它加工略

注:其它數據存儲略

第二章 數據庫設計

1、E-R圖

圖2.1 E-R圖

2、信息的數量越來越大,數據庫的作用越發突出,所以數據庫的建立是系統施實的主要部分之一,它關系到整個系統的運行情況,是整個系統的重要組成部分。本系統數據庫為db.mdb,在數據庫中包括十個表。分別是:用戶表、公寓表、班級表、寢室表、衛生等級表、學生基本情況表、學生請假情況表、學生違規情況表、寢室衛生情況表、資產表。下面介紹幾個主要的表:

⑴ 學生基本情況表主要是存放學生的基本情況,字段包括:姓名、性別、學號、班級、公寓、寢室、入學時間、年制、寢室電話、個人電話、備注。數據結構如下表:

字段名 數據類型 數據長度 姓名 文本 8 性別 文本 2 學號 文本 10 班級 文本 10 公寓 文本 20 寢室 文本 10 入學時間 文本 14 年制 文本 8 個人電話 文本 15 備注 備注

⑵ 學生請假情況表主要存放學生請假情況,字段包括:日期、姓名、班級、公寓、寢室、天數、原因、老師、備注。數據結構如下表: 字段名 數據類型 數據長度 日期 文本 14 姓名 文本 8 班級 文本 10 公寓 文本 20 寢室 文本 10 天數 文本 10 原因 備注

老師 文本 8 備注 備注

⑶ 學生違規情況表主要存放學生違規情況,字段包括:日期、姓名、班級、公寓、寢室、原因、程度、處罰、備注。數據結構如下表:

字段名 數據類型 數據長度 日期 文本 14 姓名 文本 8 班級 文本 10 公寓 文本 20 寢室 文本 10 原因 備注

程度 備注

處罰 備注

備注 備注

⑷ 衛生情況表主要存放寢室衛生情況,字段包括:日期、公寓、寢室、檢查1到

5、得分、減分、等級、備注。其中檢查1到5是為了在沒有使用者想輸入的記錄的情況下自己輸入而設計的,保證了系統的可修改性、可擴展性。數據結構如下表: 字段名 數據類型 數據長度 日期 文本 14 公寓 文本 20 寢室 文本 10 檢查1 文本 40 檢查2 文本 40 檢查3 文本 40 檢查4 文本 40 檢查5 文本 40 得分 文本 4 減分 文本 4 等級 文本 6 備注 備注

⑸ 資產表主要存放寢室新增資產情況,字段包括:日期、公寓、名稱、數量、單價、總價、用途、備注。數據結構如下表: 字段名 數據類型 數據長度 日期 文本 14 公寓 文本 20 名稱 文本 20 數量 文本 4 單價 文本 10 總價 文本 10 用途 備注

備注 備注

第三章功能模塊設計

3.1新系統功能結構圖及運行圖如下:

1、系統功能結構圖:

[10]...>> 圖3.1系統功能結構圖

2、系統功能結構圖運行圖:

圖3.2系統功能結構運行圖

經過系統分析,確定了本軟件主要包括以下方面:系統設置、公寓管理、衛生檢查、公寓資產、記錄查看、記錄刪除、值班記錄、幫助制作。3.2系統設置: 主要完成:用戶管理、公寓設置、數據備份、數據轉換、退出的功能。運行圖如下:

圖3.3系統設置運行圖 3.2.1 用戶管理

可以進行管理人員的添加和修改以及刪除操作。添加人員可以分為兩類:普通用戶、管理員。可以視不同人員而添加。管理員擁有所有權力,對整個系統的操作。普通用戶只有瀏覽、及一些簡單的添加操作權力。無用戶設置、公寓設置及記錄刪除等權力。3.2.2公寓設置

分為三個主要的操作:公寓設置、寢室設置、班級設置。在這里可以添加學校所有的公寓、所有班級、每個公寓的所有寢室,也可以用此軟件管理一幢公寓。這樣操作起來會更簡單、操作一目了然。3.2.3數據備份

這是一個數據管理軟件所必不可少的一部分,利用它可以及時的備份當前的數據庫以及在出現故障后利用已保存的數據進行恢復。3.2.4數據轉換

利用數據轉換將當前數據庫中的表轉換成Excel表格的形式,顯示更為直觀,可以進行打印等操作。3.3公寓管理

主要完成:學生請假、學生違規、床位設置的功能。運行圖如下:

圖3.4公寓管理運行圖 3.3.1學生請假

主要是對學生請假記錄做一個添加。利用它可以把學生的基本的請假資料保存起來。3.3.2學生違規

主要是對學生違規記錄做一個添加。利用它可以把學生的基本的違規資料保存起來。3.3.3床位設置

通過床位設置可以簡單查看每個公寓每個寢室的床位使用情況以及床位剩余情況。還可以通過詳細查看,查看到某個公寓某個寢室住宿人員的人數,以及具體的住宿人員的名字。3.4 衛生檢查

主要完成:添加檢查記錄的功能。衛生檢查可以對衛生檢查的結果進行記錄。這里的衛生標準一共有五項可以填寫,在每一項里已經基本設置了所不合標準的記錄,你可以在下拉列表框中進行選擇即可,但是如果沒有你想輸入的記錄的話,也可以自己輸入。運行圖如下:

圖3.5衛生檢查運行圖 3.5 公寓資產

主要完成:添加新增物品的功能。可以對公寓資產的收入或其它物品的入庫進行記錄。運行圖如下:

圖3.6公寓資產運行圖 3.6 記錄查看與記錄刪除

主要是對學生請假、學生違規、衛生記錄,公寓資產等記錄所進行的操作,利用這兩個功能可以對任一記錄進行查看與刪除。運行圖如下:

圖3.7記錄查看

圖3.8記錄刪除運行圖 3.7值班記錄

它的功能主要是針對值班人員開發出來的,在這里可以讓值班人員對當天值班情況進行一個小記,以便日后查看。運行圖如下:

圖3.9值班記錄運行圖 3.8幫助制作

對于一個稍顯正規的軟件來說幫助的制作都是必不可少的內容,本程序也不例外,制作了此幫助文檔。在程序中可以按F1或點擊幫助菜單來顯示此help.Chm文檔。以便對本軟件進行快速操作。運行圖如下:

圖3.10幫助運行圖

第四章 程序設計 主程序流程圖

4.1 登錄界面

此界面是由Photoshop制作而成。在做這個登錄面的時候想了很多,最后選擇了這種,感覺它看起來干凈,整齊。又不失其莊雅。加上本單位最有特色的建筑,會讓人一目了然。

4.1.1 登錄圖片顯示

圖4.1登錄界面

4.1.2 界面制作與實現

在這個界面中,主要處理的是判斷當前用戶輸入的信息是否正確。如果正確,那么它屬于哪種類型用戶。因為此管理軟件在登錄后不同類型的用戶顯示的窗體與實現的功能都不是一樣的,它們會有所差別!(1)浮動按鈕的實現

確定和取消兩個按鈕在鼠標沒有放上去之前看上去只是一個普通的平面字效果,但是當你把鼠標放在這幾個字上面后,它會顯示凸出的效果,按下后呈現凹陷的效果。總體實現立體的感覺。原理主要是在鼠標mousemove事件與線的顏色變化組合來實現。主要代碼如下:

在窗體中的鼠標移動過程中,以及在窗體初始化的時候,要把添加的線的.Visible 屬性設置為 False,只有在鼠標按下的時候在改變其顏色即

[10]...>> 可。

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)Line1.Visible = False Line2.Visible = False Line3.Visible = False Line4.Visible = False Line5.Visible = False Line6.Visible = False Line7.Visible = False Line8.Visible = False End Sub

鼠標按下的時候設置線條的顏色如下:

Private Sub Label3_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)Line1.BorderColor = &H808080 Line2.BorderColor = &H808080 Line3.BorderColor = &HE0E0E0 Line4.BorderColor = &HE0E0E0 End Sub

鼠標移動到標簽的時候設置線條的顏色如下: Private Sub Label3_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)Line1.BorderColor = &HE0E0E0 Line2.BorderColor = &HE0E0E0 Line3.BorderColor = &H808080 Line4.BorderColor = &H808080 Line1.Visible = True Line2.Visible = True Line3.Visible = True Line4.Visible = True End Sub(2)用戶類型判斷

在數據庫中建了一人yonghu表。在添加管理人員時有兩種默認級別。管理員、普通用戶。管理員擁有對數據庫操作的一切權限。普通用戶只有普通的查看,數據轉換等。沒有刪除等操作功能。前用戶成功登錄后,會在主窗體的狀態欄中顯示出當前用戶及其用戶類型。主要代碼如下:

設置當前控件連接的數據庫 Dim provider As String Dim datasource As String provider = “provider=Microsoft.jet.oledb.4.0” datasource = “data source=” & App.Path & “DB.mdb” With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & “;” & datasource.CommandType = adCmdTable.RecordSource = “yonghu”.Refresh.Recordset.MoveFirst End With 對用戶進行判斷

If Text1.Text = “" Then MsgBox ”請輸入用戶名!“, 48, ”提示“ Exit Sub End If Adodc1.Recordset.Find ”用戶=''“ & Text1.Text & ”''“ If Adodc1.Recordset.EOF = False And Text2.Text = Trim(Adodc1.Recordset.Fields(”pass“))Then main.Text1.Text = Adodc1.Recordset.Fields(”級別“)main.Text2.Text = Adodc1.Recordset.Fields(”用戶“)main.Show Unload Me Else Text1.Text = ”“ Text2.Text = ”“ MsgBox ”登錄不成功,請重新登錄!“, 48, ”提示“ End If 4.2 程序主界面

程序主界面為本軟件的顯示的核心部分。一切主要操作及顯示都通過這里完成。整個界面主要由五部分組成。菜單部分、工具欄、左側操作欄、右側顯示欄以及狀態欄。①界面效果圖如下:

圖4.2程序主界面

菜單欄的詳見附錄內容,這里就不提了。左側操作欄和右側顯示欄會在下面的內容中做介紹,現在只簡單介紹一下工具欄和狀態欄,以及主窗體的各個事件。

工具欄主要是由coolbar制作而成。由它制做的工具欄的顯示效果會更有立體感一些。這里只列出了幾個常用的按鈕。其中的添加按鈕是用來對公寓住宿人員進行添加,修改也是對所住宿人員進行修改,想要進行修改時必須顯示所有記錄時才可以進行。在這里值得一提的是刪除DataGrid的操作,由于不知道它的當前數據源是哪個,所以在刪除前要確定它的數據源,也就是它所鏈接的adodc1的數據源,或者是其它ado控件對它的數據源進行重新綁定后的數據庫表,也有可能是經過一個查詢后得到的記錄。②它的實現方法如下所示: Dim o As Adodc Set o = DataGrid1.datasource

o.Recordset.Delete

o.Recordset.Update 這里主要是用到了ado對像的方法。用這個方法得到數據源。

下面是整個工具欄運行時代碼: Select Case Button.Index Case 1 sel.Show 1 Case 3 add.Show 1 Case 5 On Error GoTo next2 Dim s As Adodc Set s = DataGrid1.datasource If s.RecordSource = ”users“ Then edit.Show 1 End If next2: Case 7 On Error Resume Next Dim o As Adodc Set o = DataGrid1.datasource

o.Recordset.Delete

o.Recordset.Update Case 9 back.Show 1 Case 11 With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”users“ ''.Refresh End With Set DataGrid1.datasource = Adodc1 DataGrid1.Refresh Call dx Case 13 Unload Me End Select 狀態欄分四個部分。第一個為固定顯示當前所用軟件名稱及作者。其中第二個和第三部分為動態顯示的,它會顯示出每次用戶登錄名稱及其管理模式。由上圖可以看出,lf為本軟件管理員。第四部分為日期與時間的顯示。其中第三部分的代碼實現如下: main.Text1.Text = Adodc1.Recordset.Fields(”級別“)main.Text2.Text = Adodc1.Recordset.Fields(”用戶“)StatusBar1.Panels(2).Text = ”當前用戶:“ & Text2.Text StatusBar1.Panels(3).Text = ”用戶模式:“ & Text1.Text StatusBar1.Panels(4).Text = Date & ”

“ & Time ''設置普通用戶模式

If Text1.Text = ”普通用戶“ Then yhgl.Visible = False g1.Visible = False jlsc.Visible = False gysz.Visible = False Toolbar1.Buttons(5).Visible = False Toolbar1.Buttons(6).Visible = False Toolbar1.Buttons(7).Visible = False Toolbar1.Buttons(8).Visible = False End If 主窗體在程序運行中會遇到不斷改變其大小,最小化,最大化,以及用鼠標來改變,這里需要在窗體的Resize事件中添加代碼,讓程序中用到的各個控件隨時可以適應窗體改變后的大小,在這里改變的控件主要有DataGrid、TreeView系列及Frame控件、StatusBar。下面就是設置它們大小的程序代碼:

DataGrid1.Width = main.WidthStatusBar1.Height750 SSTab1.Height = main.HeightCoolBar1.HeightStatusBar1.Height1200 Frame2.Height = main.HeightCoolBar1.HeightStatusBar1.Height1200 TreeView1.Height=main.HeightCoolBar1.HeightStatusBar1.Height1500 TreeView3.Height=main.HeightCoolBar1.Heightz)/ 4 StatusBar1.Panels(1).Width = u + x StatusBar1.Panels(2).Width = v + x StatusBar1.Panels(3).Width = w + x StatusBar1.Panels(4).Width = m + x 這個軟件的主要部分都在這里運行、查看,所以在主窗體的load事件里要把所用的到的東西都要加載進來,例如所在程序運行時所用到的表,左側treeview部分樹形顯示的初始化。在這里幾乎用到了所有的表,如下所示: provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”users“ ''.Refresh End With

With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”gongyu“.Refresh End With

With Adodc3.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”class“.Refresh End With

With Adodc4.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”weisheng“.Refresh End With

With Adodc5.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource End With

With Adodc6.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”dengji“.Refresh End With

With Adodc7.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”qinshi“.Refresh End With

With Adodc9.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”zichan“.Refresh End With treeview部分樹形顯示的初始化在這里已經做了幾個過程,調用即可。4.3系統設置 4.3.1用戶管理 ①界面效果圖

[10]...>>

② 界面制作與實現方法

這個界面總體來說各個控件比較簡單,但是作為一個添加刪除管理員的操作,它已經連接到了數據庫,與數據庫的yonghu表相聯。各個控件也與數據庫中表的字段綁定。在窗體初始化的時候要判斷當前數據庫表中是否有記錄,如果沒有記錄那么有些按鈕將會被設置成為失效狀態,否則會出現錯誤。設置代碼如下: Dim provider As String Dim datasource As String provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”yonghu“.Refresh End With Option1.Enabled = False Option2.Enabled = False If Adodc1.Recordset.RecordCount = 0 Then Command2.Enabled = False Command3.Enabled = False Command5.Enabled = False Command6.Enabled = False End If Text2.Text = Text3.Text 上一條與下一條的功能一目了然,它們可以對當前表進行上一條記錄或下一條記錄依次查看。當找到記錄后,可以對其進行相對的刪除、修改等操作。上一條記錄與下一條的記錄在查看時有一個判斷。當表中記錄移到最前面(BOF)或最后面(EOF)時,會把上一條或下一條其中的一個按鈕的enable屬性設置為true。即不可以前查看或向后查看。上一條與下一條主要代碼如下:

Adodc1.Recordset.MovePrevious ''移動記錄 Command6.Enabled = True If Adodc1.Recordset.BOF Then

Adodc1.Recordset.MoveFirst

Command5.Enabled = False End If Adodc1.Recordset.MoveNext ''移動記錄 Command5.Enabled = True If Adodc1.Recordset.EOF Then

Adodc1.Recordset.MoveLast

Command6.Enabled = False End If 添加用戶可以添加使用該管理軟件的用戶。添加的時候可以選擇所添加人物的級別。軟件默認為兩個級別:管理員、普通用戶。管理員擁有對此軟件管理操作等一切的權力。普通用戶,只有普通的查看、查詢、備份、添加等權力。沒有對記錄刪除等權力。在添加用戶時你可以選擇一個且必須選擇一個。然后輸入此用戶的用戶名和密碼即可!添加用戶主要代碼:

If Command1.Caption = ”添加“ Then Command2.Enabled = False Command5.Enabled = False Command6.Enabled = False Command1.Caption = ”確定“ Command3.Caption = ”取消“ Adodc1.Recordset.AddNew Option1.Enabled = True Option2.Enabled = True Text1.Enabled = True Text2.Enabled = True Text3.Enabled = True Text2.Text = ”“ ElseIf Text1.Text = ”“ Then MsgBox ”用戶名不能為空!“, 48, ”提示“ ElseIf Text2.Text = ”“ Then MsgBox ”密碼不能為空!“, 48, ”提示“ ElseIf Text2.Text <> Text3.Text Then MsgBox ”密碼兩次需一致!“, 48, ”提示“ ElseIf Text4.Text = ”“ Then MsgBox ”請選擇所建用戶類型!“, 48, ”提示“ Else Command2.Enabled = True Command3.Enabled = True Command5.Enabled = True Command6.Enabled = True Command3.Caption = ”編輯“ Command1.Caption = ”添加“ Adodc1.Recordset.Update Text1.Enabled = False Text2.Enabled = False Text3.Enabled = False Text4.Enabled = False Option1.Value = False Option2.Value = False Option1.Enabled = False Option2.Enabled = False End If 刪除操作可以把當前記錄刪除掉。一經刪除即不可以在恢復。所以在操作前要想好。刪除操作部分代碼:

If Adodc1.Recordset.RecordCount = 1 Then Command2.Enabled = False End If If(MsgBox(”你真的想刪除當前記錄嗎?“, vbOKCancel, ”系統提示“))= vbOK Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveFirst Adodc1.Refresh End If 編輯操作可以對當前所選擇的用戶進行編輯,可以修改其用戶名與密碼。當當前用戶感覺自己用戶名稱或密碼有泄露時,可以進行修改。修改記錄即更新表中的某一條記錄。編輯操作主要代碼如下: Command2.Enabled = False Text1.Enabled = True Text2.Enabled = True Text3.Enabled = True Text4.Enabled = True Option1.Enabled = True Option2.Enabled = True Command1.Caption = ”確定“ ElseIf Command3.Caption = ”取消“ Then Command3.Caption = ”編輯“ Command1.Caption = ”添加“ Command2.Enabled = True Command5.Enabled = True Command6.Enabled = True Text2.Text = Text3.Text Text1.Enabled = False Text2.Enabled = False Text3.Enabled = False Text4.Enabled = False Option1.Value = False Option2.Value = False Option1.Enabled = False Option2.Enabled = False End If 4.3.2 公寓設置

公寓設置可以說是本程序中一關鍵部分。因為所有的設置都在此進行。包括公寓添加、修改、刪除。寢室的添加、修改、刪除以及班級的添加、修改和刪除操作。只有正確的對這些設置進行添加修改,才能輸入正確的記錄。這里主要涉及到的問題是datagrid的顯示,以及treeview及時形成新的結構。還有一些就是對表記錄的復雜操作。在點擊sstab各版的時候,要在這時重新生成寢室設置中的樹型結構,Select Case PreviousTab

Case 0

Call startree1

Case 1

Combo1.Clear

Dim I As Integer

I = 1

If Adodc1.Recordset.RecordCount <> 0 Then

Adodc1.Recordset.MoveFirst

Do While I < Adodc1.Recordset.RecordCount

Combo1.AddItem(Adodc1.Recordset.Fields(”公寓名稱“))

Adodc1.Recordset.MoveNext

I = I + 1

Loop

End If

Call startree1

Case 2

Call startree1 End Select End Sub(1)公寓設置

① 公寓設置效果圖

圖4.4公寓設置

② 界面制作與實現方法

在這個界面中主要用到了一個Sstab控件與一個顯示表中內容的Datagrid控件。以及起到美觀作用的Frame控件。

在右下角的文本框中可以輸入想要添加的公寓名稱。然后點擊添加即可完成添加操作。Datagrid中會立即刷新顯示更新內容。要修改某條記錄時,要先對所要修改的記錄進行選擇,確認選擇后,點擊下面的修改按鈕,會在下面的文本中顯示出所要修改公寓的名稱,此時即可輸入要修改的名字。然后點擊更新就會完成此操作。Datagrid也會即時更新其內容。刪除操作更為簡單,選擇想要刪除的公寓名稱,點擊刪除,確認后完成此操作。但是刪除后不會影響其它表中的數據。其它表的有關此公寓的信息還會存在。在進行所有操作前,先要確定數據庫已連接。

在添加前要判斷所寫公寓名稱是否正確,即是否輸入名稱,該記錄不能為空,不為空則對數據庫表進行查找,判斷當前輸入記錄是否已在表中存在,如果已存在,則會給出提示,不存在,添加成功。

Adodc1.Recordset.Find ”公寓名稱=''“ & Text2.Text & ”''“ If Adodc1.Recordset.EOF = False Then MsgBox ”此公寓已存在“, , ”提示“ Adodc1.Recordset.MoveFirst Exit Sub End If Text3.Text = ”“ If Text2.Text = ”“ Then MsgBox ”輸入所要添加公寓的名稱“, , ”提示“ Exit Sub End If 添加:

Adodc1.Recordset.AddNew Adodc1.Recordset.Fields(”公寓名稱“)= Text2.Text Adodc1.Recordset.Update Adodc1.RecordSource = ”gongyu“ Text2.Text = ”“ Set DataGrid2.datasource = Adodc1 DataGrid2.Refresh

修改公寓名稱:

If Text3.Text = ”“ Then MsgBox ”選擇要修改的公寓“, , ”提示“ Exit Sub End If If Command12.Caption = ”修改“ Then Text2.Text = Text3.Text Label6.Caption = ”輸入想要修改的公寓名稱“ Command12.Caption = ”更新“ Command3.Enabled = False Command7.Enabled = False ElseIf Command12.Caption = ”更新“ Then Command3.Enabled = True Command7.Enabled = True Label6.Caption = ”輸入想要添加的公寓名稱“ Adodc1.Recordset.Fields(”公寓名稱“)= Text2.Text Adodc1.Recordset.Update Adodc2.Recordset.ActiveConnection.Execute ”update qinshi set 公寓名稱=''“ & Text2.Text & ”'' where 公寓名稱=''“ & Trim(Text3.Text)& ”''“ Adodc2.Recordset.Update Command12.Caption = ”修改“ End If Set DataGrid2.datasource = Adodc1 DataGrid2.Refresh Adodc5.Recordset.Update Set main.DataGrid1.datasource = Adodc5 main.DataGrid1.Refresh

刪除公寓名稱

If Text3.Text = ”“ Then MsgBox ”選擇所要刪除公寓的名稱“, , ”提示“ Exit Sub End If If(MsgBox(”你真的想刪除公寓名稱為

“ & Text3.Text & ” 的記錄嗎?“, vbOKCancel, ”系統提示“))= vbOK Then

Adodc1.Recordset.Delete

Adodc1.Recordset.Update End If Text3.Text = ”“ Set DataGrid2.datasource = Adodc1 DataGrid2.Refresh(2)寢室設置

①寢室設置效果圖

圖4.5寢室設置

②界面制作與實現方法 此界面實現相對比公寓設置來說相對復雜一些。用到的控件主要是Sstab與Treeview。但是在程序方面比較復雜。

在添加一個寢室前先要選擇所要添加寢室所在的公寓。這個公寓可以點擊下面的樹中的節點,也可以在列表框中選擇。樹中的節點在點擊后會把父節點顯示在選擇公寓后面的列表框中,而選中的節點會出現在寢室名稱里。你也可以自己進行添寫,確認公寓后即可添加完成了。添加后會把Treeview重新刷新一下。以顯示更新后的記錄。添加源碼: Adodc1.Refresh Adodc1.Recordset.Find ”公寓名稱=''“ & Combo1.Text & ”''“ If Adodc1.Recordset.EOF = True Then MsgBox ”此公寓不存在“, , ”提示“ Adodc1.Recordset.MoveFirst Exit Sub End If If Combo1.Text = ”“ Or Text1.Text = ”“ Then MsgBox ”請輸入所要添加的寢室及其所屬公寓“, , ”提示“ Exit Sub End If With Adodc2.Recordset.AddNew.Recordset.Fields(0).Value = Combo1.Text.Recordset.Fields(1).Value = Text1.Text.Recordset.Update End With Combo1.Text = ”“ Text1.Text = ”“ Call startree1 修改操作可以把當前選中的寢室進行名稱修改與其所屬公寓進行修改。當要對名稱進行修改時,先要選擇所要修改的寢室名,選擇后會在寢室名稱里顯示出來,把當前寢室名稱改成要修改的寢室名稱,然后點擊修改即完成名稱修改操作。當要對當前寢室的所屬公寓進行修改時,需要先選擇所要修改的寢室,然后在上面的公寓名稱后填寫所要修改的寢室名稱。點擊修改后完成此操作。但是這種操作不是常見。修改源碼: Adodc1.Refresh Adodc1.Recordset.Find ”公寓名稱=''“ & Combo1.Text & ”''“ If Adodc1.Recordset.EOF = True Then MsgBox ”此公寓不存在“, , ”提示“ Adodc1.Recordset.MoveFirst Exit Sub End If

Dim sql As String On Error Resume Next If Combo1.Text = ”“ Or Text1.Text = ”“ Then MsgBox ”請在下面選擇所要修改的寢室“, , ”提示“ Exit Sub End If ''sql = ”select * form qinshi where 公寓名稱=''“ & Trim(Combo1.Text)& ”'' and 寢室=''“ & Trim(Text1.Text)& ”''“

Adodc2.Recordset.ActiveConnection.Execute ”update qinshi set 寢室=''“ & Text1.Text & ”'',公寓名稱=''“ & Trim(Combo1.Text)& ”''where 寢室=''“ & Trim(Text6.Text)& ”''and 公寓名稱=''“ & Trim(Text7.Text)& ”''“ Adodc2.Recordset.Update Combo1.Text = ”“ Text1.Text = ”“ Call startree1 刪除操作可以刪除掉當前樹型顯示中的任何一個子節點,也就是這個樹型節點中的寢室名稱,注意的是,刪除后這個記錄只在qinshi表中刪除,其相關記錄不會被刪除掉的,如果想刪除,還需要人工操作。實現的方法主要是對qinshi表操作,先對其進行查詢,查詢當前想要被刪除的表是否存在,如果不存在,則給出提示,如果存在這條記錄,則在表中把它刪除掉,刪除后調用生成樹過程,把當前寢室設置中的樹型結構重新生成,更新記錄。實現的部分代碼如下所示:

If Combo1.Text = ”“ Or Text1.Text = ”“ Or Combo1.Text = ”公寓管理系統“ Then MsgBox ”選擇所要刪除的寢室“, , ”提示“ Exit Sub End If If(MsgBox(”你真的想刪除

“ & Combo1.Text & ” “ & ”寢室為“ & Text1.Text & ” 的記錄嗎?“, vbOKCancel, ”系統提示“))= vbOK Then Adodc2.Refresh

[10]...>>

Adodc2.Recordset.ActiveConnection.Execute ”delete from qinshi where 公寓名稱=''“ & Trim(Combo1.Text)& ”'' and 寢室=''“ & Trim(Text1.Text)& ”''“ Adodc2.Recordset.Update End If Combo1.Text = ”“ Text1.Text = ”“ Call startree1 在treeview點擊的時候,上面的文本框中會顯示相應的記錄,這主要是對treeview進行了設置,代碼如下:

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)On Error Resume Next Text1.Text = TreeView1.SelectedItem.Text Combo1.Text = TreeView1.SelectedItem.Parent Text6.Text = TreeView1.SelectedItem.Text Text7.Text = TreeView1.SelectedItem.Parent End Sub(3)班級設置

①班級設置效果圖

圖4.6班級設置

②界面制作與實現方法

此界面制作與公寓設置基本一致。在這個界面中主要用到了一個Sstab控件與一個顯示表中內容的Datagrid控件。以及起到美觀作用的Frame控件。

在右下角的文本框中可以輸入想要添加的班級名稱。然后點擊添加即可完成添加操作。Datagrid中會立即刷新顯示更新內容。要修改某條記錄時,要先對所要修改的記錄進行選擇,確認選擇后,點擊下面的修改按鈕,會在下面的文本中顯示出所要修改班級的名稱,此時即可輸入要修改的名字。然后點擊更新就會完成此操作。Datagrid也會即時更新其內容。刪除操作更為簡單,選擇想要刪除的班級名稱,點擊刪除,確認后完成此操作。添加班級源碼:

Adodc3.Recordset.Find ”class=''“ & Text4.Text & ”''“ If Adodc3.Recordset.EOF = False Then MsgBox ”此班級已存在“, , ”提示“ Adodc3.Recordset.MoveFirst Exit Sub End If Text5.Text = ”“ If Text4.Text = ”“ Then MsgBox ”輸入所要添加班級的名稱“, , ”提示“ Exit Sub End If Adodc3.Recordset.AddNew Adodc3.Recordset.Fields(”class“)= Text4.Text Adodc3.Recordset.Update Adodc3.RecordSource = ”class“ Text4.Text = ”“ Set DataGrid3.datasource = Adodc3 DataGrid3.Refresh 修改班級源碼:

If Command10.Caption = ”修改“ Then Text4.Text = Text5.Text Label6.Caption = ”輸入想要修改的班級名稱“ Command10.Caption = ”更新“ Command6.Enabled = False Command9.Enabled = False ElseIf Command10.Caption = ”更新“ Then Command9.Enabled = True Command6.Enabled = True Label6.Caption = ”輸入想要添加的班級名稱“ Adodc3.Recordset.Fields(”class“)= Text4.Text Adodc3.Recordset.Update Command10.Caption = ”修改“ End If 刪除班級源碼:

If Text5.Text = ”“ Then MsgBox ”選擇所要刪除班級的名稱“, , ”提示“ Exit Sub End If If(MsgBox(”你真的想刪除班級名稱 為

“ & Text5.Text & ” 的記錄嗎?“, vbOKCancel, ”系統提示“))= vbOK Then

Adodc3.Recordset.Delete

Adodc3.Recordset.Update End If Text5.Text = ”“ Set DataGrid3.datasource = Adodc3

DataGrid3.Refresh End Sub 4.3.3數據備份:

數據備份是一個數據庫軟件必不可少的一部分,利用它可以把當前數據庫表進行全面的備份,以備以后使用。因為在操作中可能會導致數據遭到破壞,或者是系統的原因使數據庫損壞,或者是一些其它的人為原因,這樣你可以用此功能把數據恢復到最后一次備份的狀態,使損失做到最少,經常備份,操作起來更有安全感。①數據備份效果圖

圖4.7數據備份效果圖 ② 功能實現

界面制作相對程序來說比較簡單,用到的是coolbar控件,點擊按鈕可以選擇備份路徑。然后點擊數據備份即可。窗體初始化部分代碼如下: Dim cnn1 As ADODB.Connection Dim rstschema As ADODB.Recordset Dim strcnn As String Set cnn1 = New ADODB.Connection strcnn = ”provider=Microsoft.jet.oledb.4.0;“ & ”data source=“ & App.Path & ”db.mdb“ cnn1.Open strcnn Set rstschema = cnn1.OpenSchema(adSchemaTables)Do Until rstschema.EOF temp = rstschema!Table_Name If Left(temp, 1)<> ”M“ Then End If rstschema.MoveNext Loop cnn1.Close On Error GoTo err PathName = App.Path & ”db.MDB“ dbasize = FileLen(PathName)err: Exit Sub 數據備份部分在本程序中用到了一個模塊,在模塊中有一個方法,dobackup。點擊備份按鈕后開始備份,代碼如下: If txtDestination <> ”“ Then DoBackup PathName, txtDestination MsgBox ”備份成功!“, , ”提示“ ElseIf txtDestination = ”“ Then MsgBox ”You must specify a distination for the backup“, vbCritical 其中DoBackup為模塊中已定義的方法,在這里進行調用。Dobackup實現方法代碼如下所示: Dim lFileOp As Long Dim lresult As Long Dim lFlags

As Long Dim SHFileOp As SHFILEOPSTRUCT Dim strSourceDir As String Dim strDestinationDir As String Screen.MousePointer = vbHourglass BackupFolderName = strDestinationPath MkDir BackupFolderName & ”Backup“ & Format(Date, ”yyyy.mm.dd“)& vbNullChar

.fFlags = lFlags End With lresult = SHFileOperation(SHFileOp)Screen.MousePointer = vbDefault frmBackupDba.lblStatus = ”Backup Complete“ 在備份分前先要選擇一個備份路徑,點擊…那個按鈕開始進行選擇,實現方法如下: Dim strTemp As String strTemp = fBrowseForFolder(Me.hwnd, ”Select backup path“)If strTemp <> ”“ Then

txtDestination = strTemp End If 數據恢復界面同上,它的功能主要是在當前數據庫遭到破壞后,可以利用它來進行數據恢復,在數據恢復前要選擇所要恢復的數據庫路徑,如下: Dim strTemp As String strTemp = fBrowseForFolder(Me.hwnd, ”Restore From“)If strTemp <> ”“ Then

txtSource = strTemp

dbasize2 = FileLen(txtSource & ”db.MDB“)

lblSelectedDba = ”Selected Backup Database is : “ & Format((dbasize2 / 1024)/ 1024, ”standard“)& ”MB.“

cmdRestore.Enabled = True End If Erro:

Select Case err.Number

Case 53 ''File Not Found

lblSelectedDba = ”No Backup at this location“

Toolbar2.Enabled = False

End Select 它主要是查看數據庫是否存在,如果所恢復的數據不存在,則會提示錯誤。數據恢復也用到了一個方法,在模塊中也已經定義了該方法DoRestore。數據恢復代碼如下: If MsgBox(”Restoring database from location “ & txtSource & ” will replace existing database files.Do you want to Contunue“, vbYesNo)= vbYes Then DoRestore txtSource.Text, App.Path If NoDba = True Then MsgBox ”Database Restored Click Ok to Exit Program“ frmRestoreDba.Hide Unload frmRestoreDba End If Else lblStatus.Caption = ”Database Restore Canceled“ End If 其中DoRestore實現的功能源碼如下所示:

DEFSOURCE = ”PROVIDER=Microsoft.jet.oledb.4.0;Persist Security Info=False;Data Source=“ DBName = ”db.MDB;Jet OLEDB:Database Password=matrix-se;“ Set Db = New ADODB.Connection

Db.Open DEFSOURCE & App.Path & DBName Dim lFileOp As Long Dim lresult As Long Dim lFlags

As Long Dim SHFileOp As SHFILEOPSTRUCT Dim strSourceDir As String Dim strDestinationDir As String Db.Close Screen.MousePointer = vbHourglass BackupFolderName = strDestinationPath lFileOp = FO_COPY lFlags = lFlags And Not FOF_SILENT lFlags = lFlags Or FOF_NOCONFIRMATION lFlags = lFlags Or FOF_NOCONFIRMMKDIR lFlags = lFlags Or FOF_FILESONLY With SHFileOp

.wFunc = lFileOp

.pFrom = strSourcePath & ”db.MDB“ & vbNullChar

.pTo = strDestinationPath & vbNullChar

.fFlags = lFlags End With lresult = SHFileOperation(SHFileOp)Set Db = New ADODB.Connection Db.Open DEFSOURCE & App.Path & DBName Screen.MousePointer = vbDefault frmRestoreDba.lblStatus = ”Restore Complete“ 說明:本程序中此部分內容參考了網上的同類型代碼,對其進行修改后得到此成型作品,從功能上來講,它已經實現了它所要完成的工作,經過測試已經沒有問題,但是實現的源代碼,也只有部分掌握。這實屬本人精力與能力有限所置。4.3.4 數據轉換

這個功能可以把當前列表框中的任何一個表轉換成excel形式,轉換后你可以看到表中的內容,也可以對表進行操作,保存,修改,打印等。①界面效果圖

圖4.8數據轉換效果圖 ②實現方法

在這里用到了一個顯示gif圖片的控件。選擇左面list中的一個表后,點擊導出后即可完成,進度條中顯示當前轉換進度程度。

首先要在list中加載各表名。以便進行選擇轉換。添加表名部分在load進行加載,其中的導出與取消按鈕是由coolbar制作而成。Form的load事件處理內容如下:

TMaxAni1.FileName = App.Path & ”iconfind.gif“ TMaxAni1.ShowGif Dim cnn1 As ADODB.Connection Dim rstschema As ADODB.Recordset Dim strcnn As String Set cnn1 = New ADODB.Connection strcnn = ”provider=Microsoft.jet.oledb.4.0;“ & ”data source=“ & App.Path & ”db.mdb“ cnn1.Open strcnn Set rstschema = cnn1.OpenSchema(adSchemaTables)Do Until rstschema.EOF temp = rstschema!Table_Name If Left(temp, 1)<> ”M“ Then List2.AddItem temp End If rstschema.MoveNext Loop cnn1.Close List2.ListIndex = 0 On Error GoTo err PathName = App.Path & ”db.MDB“ dbasize = FileLen(PathName)數據轉換成excel用到了一個部件,在引用中用到了Microsoft Excel9.0 Object library。轉換代碼如下:

Select Case Button.Index Case 1 Dim provider As String Dim datasource As String provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = List2.Text.Refresh End With ProgressBar1.Max = Adodc1.Recordset.RecordCount ProgressBar1.Min = 0 ''開始轉換

Dim Irow, Icol As Integer

Dim Irowcount, Icolcount As Integer

Dim Fieldlen()

Dim xlApp As Excel.Application

Dim xlBook As Excel.Workbook

Dim xlSheet As Excel.Worksheet

Set xlApp = CreateObject(”Excel.Application“)

Set xlBook = xlApp.Workbooks.add

Set xlSheet = xlBook.Worksheets(1)With Adodc1.Recordset

.MoveLast

If.RecordCount < 1 Then

MsgBox(”Error!“)

Exit Sub

End If

Irowcount =.RecordCount

Icolcount =.Fields.Count

ReDim Fieldlen(Icolcount)

.MoveFirst

For Irow = 1 To Irowcount + 1

For Icol = 1 To Icolcount

Select Case Irow

Case 1

xlSheet.Cells(Irow, Icol).Value =.Fields(Icol1))= True Then

Fieldlen(Icol)= LenB(.Fields(Icol1))

End If

xlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol)

xlSheet.Cells(Irow, Icol).Value =.Fields(Icol1))

If Fieldlen(Icol)< Fieldlen1 Then

xlSheet.Columns(Icol).ColumnWidth = Fieldlen1

Fieldlen(Icol)= Fieldlen1

Else

xlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol)

End If

xlSheet.Cells(Irow, Icol).Value =.Fields(Icol1)).Font.Name = ”黑體“

.Range(.Cells(1, 1),.Cells(1, Icol1)).Borders.LineStyle = xlContinuous

End With

xlApp.Visible = True

'' xlBook.Save

''xlBook.Close

Set xlApp = Nothing

Adodc1.Recordset.ActiveConnection = Nothing End With Toolbar4.Buttons(1).Enabled = False Case 2 Unload Me End Select

[10]...>>

4.4公寓管理 4.4.1學生請假

學生請假與違規在一個公寓管理中是最常見的問題了,所以在此軟件中加上了這兩項功能。用它們可以隨時記錄請假記錄。①學生請假記錄圖片顯示

圖4.9學生請假效果圖 ② 界面制作與實現

此界面主要是對學生請假記錄做一個添加。利用它可以把學生的基本的請假資料保存起來。其中的日期是系統當前的日期,它是不可以進行更改的,然后在其它文本框中輸入其它詳細資料即可以。這里的添加操作用的是Adodc控件,所有的文本框在初始的時候沒有同Adodc綁定,而是在代碼中與數據庫中表的字段進行的綁定,然后進行添加操作。這樣做在使用的時候有很大的方便之處。第一是窗體在初始化時不會顯示任何記錄,不用設置文本框為空等一系列的操作。第二是當進行記錄輸入時,發現問題不用輸入時,不按添加按鈕記錄就不會進行添加。注意的是,在添加前要確定所有的文本框都要進行詳細填寫,否則會提示輸入詳細信息。添加主要代碼如下:

If Text1.Text = ”“ Or Text2.Text = ”“ Or Text3.Text = ”“ Or Text4.Text = ”“ Or Text5.Text = ”“ Or Text6.Text = ”“ Or Text7.Text = ”“ Or Text8.Text = ”“ Or Text9.Text = ”“ Then MsgBox ”請輸入詳細信息!“, , ”系統提示“ Else With Adodc1.Recordset.AddNew.Recordset.Fields(0).Value = Text1.Text.Recordset.Fields(1).Value = Text2.Text.Recordset.Fields(2).Value = Text3.Text.Recordset.Fields(3).Value = Text4.Text.Recordset.Fields(4).Value = Text5.Text.Recordset.Fields(5).Value = Text6.Text.Recordset.Fields(6).Value = Text7.Text.Recordset.Fields(7).Value = Text8.Text.Recordset.Fields(8).Value = Text9.Text.Recordset.Update End With Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh End If 4.4.2學生違規

①學生違規記錄圖片顯示

圖4.10學生違規效果圖

此界面與上面的請假記錄差不多。它主要是對學生的違規記錄做一個添加。其中的日期也是系統當前的日期,它是不可以進行更改的,然后在其它文本框中輸入其它詳細資料即可以這里的違規操作用的也是Adodc控件,所有的文本框在初始的時候也沒有同Adodc綁定,它也是在代碼中與數據庫中表的字段進行的綁定,然后進行添加操作。其它操作同上面基本是一致的,對于違規在主界面的左側并沒有快速顯示操作,只可以用記錄查看里面的違規查看進行選擇查看。在這里所添寫的記錄也要全面一些,主要是為了以后查找更為方便,如果不全,系統會提示的!②違規部分代碼如下:

在load事件里對數據庫鏈接的處理,以及日期文本框的設置,代碼如下: provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”qingjia“.Refresh End With Text1.Text = Date Text1.Enabled = False 確定無誤后,進行添加,代碼如下:

If Text1.Text = ”“ Or Text2.Text = ”“ Or Text3.Text = ”“ Or Text4.Text = ”“ Or Text5.Text = ”“ Or Text6.Text = ”“ Or Text7.Text = ”“ Or Text8.Text = ”“ Or Text9.Text = ”“ Then MsgBox ”請輸入詳細信息!“, , ”系統提示“ Else With Adodc1.Recordset.AddNew.Recordset.Fields(0).Value = Text1.Text.Recordset.Fields(1).Value = Text2.Text.Recordset.Fields(2).Value = Text3.Text.Recordset.Fields(3).Value = Text4.Text.Recordset.Fields(4).Value = Text5.Text.Recordset.Fields(5).Value = Text6.Text.Recordset.Fields(6).Value = Text7.Text.Recordset.Fields(7).Value = Text8.Text.Recordset.Fields(8).Value = Text9.Text.Recordset.Update End With Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh 4.5衛生檢查

公寓衛生可以說是一個公寓管理中最常見到的問題了。公寓衛生每天要清掃,寢室衛生每天要檢查,但是如果這些都用紙來進行填寫,一定會十分麻煩,且保存也不是十分方便,在一些評比中也會忙的很遭。所以在這個軟件中編寫了此功能。4.5.1 公寓衛生添加效果圖

圖4.11公寓衛生添加效果圖 ①在這個界面中主要用到了文本框以及起到美觀作用的frame控件。日期已經設置成只讀屬性,檢查記錄的日期是不能隨便改寫的。公寓名稱可以在下拉列表框中進行選擇,如果在下拉列表框中沒有發現,可以人工輸入,但是要確定公寓名稱的正確性。寢室名稱需要自己輸入。這里的衛生標準一共有五項可以填寫,在每一項里已經基本設置了所不全標準的記錄,你可以在下拉列表框中進行選擇即可,但是如果沒有你想輸入的記錄的話,你也可以自己輸入。輸入完成后,在減分后面的文本框中輸入一共要對此寢室減掉的分數,單擊得分后面的文本框會自動算出應該得到的分數。然后跟據得分的分數,你要選擇該寢室的衛生等級,衛生等級為必選值且為固定值,正確的選擇此項可以在主界面的左側中快速對衛生等級進行查看。②公寓選擇欄中代碼的實現: Combo3.Clear Dim I As Integer I = 1 If Adodc1.Recordset.RecordCount <> 0 Then Do While I < Adodc1.Recordset.RecordCount

Combo3.AddItem(Adodc1.Recordset.Fields(”公寓名稱“))

Adodc1.Recordset.MoveNext

I = I + 1 Loop End If 衛生選擇欄中的代碼實現基本同上,它也是一個表中的字段值!Dim J As Integer J = 1 If Adodc4.Recordset.RecordCount <> 0 Then Do While J < Adodc4.Recordset.RecordCount

Combo2.AddItem(Adodc4.Recordset.Fields(”等級“))

Adodc4.Recordset.MoveNext

J = J + 1 Loop End If Combo2.Text = ”優秀“ 不合標準的衛生記錄填寫情況如下: Combo4.AddItem(”門窗不干凈“)Combo4.AddItem(”地面不干凈“)Combo4.AddItem(”陽臺不干凈“)Combo4.AddItem(”床鋪不整齊“)Combo4.AddItem(”不疊被“)Combo4.AddItem(”桌面不整齊“)Combo4.AddItem(”書柜擺放不整齊“)由于此窗體中涉及到公寓與寢室,在填寫時要確定其名稱的正確,所以在添加記錄前要對它們進行檢查,如發現不存在的記錄,則顯示提示。檢查記錄時用的是adodc中的find命令。類似于用戶登錄時的判斷,同樣記錄的輸入也要詳細。代碼如下: Adodc1.Refresh Adodc1.Recordset.Find ”公寓名稱=''“ & Combo3.Text & ”''“ If Adodc1.Recordset.EOF = True Then MsgBox ”查無此公寓“, , ”提示“ Adodc1.Recordset.MoveFirst Exit Sub End If Adodc3.Refresh Adodc3.Recordset.Find ”寢室=''“ & Text5.Text & ”''“ If Adodc3.Recordset.EOF = True Then MsgBox ”查無此寢室“, , ”提示“ Adodc3.Recordset.MoveFirst Exit Sub End If If Combo3.Text = ”“ Or Combo2.Text = ”“ Or Text5.Text = ”“ Or Text2.Text = ”“ Or Text3.Text = ”“ Then MsgBox ”請輸入詳細信息!“, , ”系統提示“ Else 確認一切無誤后,開始對所填寫記錄進行添加并顯示: With Adodc2.Recordset.AddNew.Recordset.Fields(0).Value = Combo3.Text.Recordset.Fields(1).Value = Text5.Text.Recordset.Fields(2).Value = Combo4.Text.Recordset.Fields(3).Value = Combo5.Text.Recordset.Fields(4).Value = Combo6.Text.Recordset.Fields(5).Value = Combo7.Text.Recordset.Fields(6).Value = Combo8.Text.Recordset.Fields(7).Value = Text2.Text.Recordset.Fields(8).Value = Text3.Text.Recordset.Fields(9).Value = Combo2.Text.Recordset.Fields(10).Value = Text4.Text.Recordset.Fields(11).Value = Text1.Text.Recordset.Update End With Set main.DataGrid1.datasource = Adodc2 main.DataGrid1.Refresh 4.6 公寓資產

公寓資產可以及時對公寓里進出財務進行統計,以免遺忘,造成不必要的損失或不必要的麻煩,它的實現方法基本同上面的衛生記錄的添加,相對比來說比上面的簡單一些。不足的是目前只做出了入庫管理,對于出庫記錄還沒有實現。4.6.1公寓資產添加設置效果圖

[10]...>>

圖4.12公寓資產添加效果圖 4.6.2 界面制作與實現方法 日期的設置同上面一樣,只讀屬性。公寓名稱與寢室名稱要人工輸入,沒有選擇,這是因為考慮到它不會像衛生記錄那樣每天要添加一次,每次要添加很多,所以為了減少系統進程,它沒有使用combo,沒有在窗體中進行加載。窗體中的數量與單價在填寫之后會自動把總價格計算出來,類似于上圖中的得分一樣。部分代碼如下: If Text5.Text = ”“ Or Text2.Text = ”“ Or Text3.Text = ”“ Then MsgBox ”請輸入詳細信息!“, , ”提示“ Else With Adodc1.Recordset.AddNew.Recordset.Fields(0).Value = Text1.Text.Recordset.Fields(1).Value = Text8.Text.Recordset.Fields(2).Value = Text2.Text.Recordset.Fields(3).Value = Text3.Text.Recordset.Fields(4).Value = Text4.Text.Recordset.Fields(5).Value = Text5.Text.Recordset.Fields(6).Value = Text6.Text.Recordset.Fields(7).Value = Text7.Text.Recordset.Update End With Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh Text2.Text = ”“ Text3.Text = ”“ Text4.Text = ”“ Text5.Text = ”“ Text6.Text = ”“ Text7.Text = ”“ End If 4.7記錄查看

記錄查看可以讓你對已錄入的記錄進行各種符合條件的查找,顯示符合條件的記錄。這里主要包括四個方面的查看:衛生查看、請假查看、違規查看、資產查看。下面分別介紹。4.7.1 衛生查看 ①界面效果圖

圖4.13衛生查看效果圖 ②界面制作與實現方法

這是一個比較簡單的窗體操作。看起來精簡、小巧。它主要的功能是對已經錄入的衛生記錄進行符合條件的查詢。在查詢類別中選擇可以選擇全部查看以及按日期查看。查看全部即顯示所有記錄,選擇按日期查看后在下面的列表框中選擇所要查看的日期,點擊確定后即可以看到該日期的記錄。

在進行查詢前,要對所操作的表進行綁定,代碼如下: Dim s As String provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”weigui“.Refresh End With 日期后面的下拉列表框中可以顯示出所有已經錄入記錄的日期,它是通過對當前表進行分類查詢后得到的結果,然后將其添加在combo中,實現代碼如下: s = ”select distinct 日期 from weisheng“ With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = s.Refresh End With

For I = 1 To Adodc2.Recordset.RecordCount Combo1.AddItem(Adodc2.Recordset.Fields(”日期“))Adodc2.Recordset.MoveNext Next 查看全部,即把當前表中的記錄全部賦給當前用來顯示的表格,按日期查看,則是在表中先進行查詢,然后對結果進行重綁定,在賦值。它們的判斷主要是通過單選框的選取來完成的,實現方法如下: s = Combo1.Text If Option1.Value = True Then Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh ElseIf Option2.Value = True Then sql = ”select * from weisheng where 日期=''“ & Trim(s)& ”''“ With Adodc3.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = sql.Refresh End With Set main.DataGrid1.datasource = Adodc3 main.DataGrid1.Refresh End If Unload Me 4.7.2其它記錄查看 在記錄查看中還有其它三項查看方式,分別是請假、違規、資產三項記錄查看。它們的實現方法與窗體與上面的衛生查看基本相同。①請假查看

圖4.14請假查看效果圖

用它可以對當前所有記錄以及有效日期內的記錄進行查看。代碼如下:

Dim sql As String Dim s As String s = Combo1.Text If Option1.Value = True Then Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh ElseIf Option2.Value = True Then sql = ”select * from qingjia where 日期=''“ & Trim(s)& ”''“ With Adodc3.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = sql.Refresh End With Set main.DataGrid1.datasource = Adodc3 main.DataGrid1.Refresh End If Unload Me 在窗體的load中要設置已經添加的日期,需要對表進行條件查詢,代碼如下: s = ”select distinct 日期 from qingjia“ With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = s.Refresh End With For I = 1 To Adodc2.Recordset.RecordCount Combo1.AddItem(Adodc2.Recordset.Fields(”日期“))Adodc2.Recordset.MoveNext Next ②違規查看

圖4.15違規查看效果圖

目前此類功能還不是十分理想,有些查看方式會在以后的程序中進行升級。在Load事件設置了窗體運行時所有需要的東西。代碼如下:

Option1.Value = True Dim s As String provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”weigui“.Refresh End With s = ”select distinct 日期 from weigui“ With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = s.Refresh End With For I = 1 To Adodc2.Recordset.RecordCount Combo1.AddItem(Adodc2.Recordset.Fields(”日期“))Adodc2.Recordset.MoveNext Next 查看部分的源代碼如下: Dim sql As String Dim s As String s = Combo1.Text If Option1.Value = True Then Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh ElseIf Option2.Value = True Then sql = ”select * from weigui where 日期=''“ & Trim(s)& ”''“ With Adodc3.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = sql.Refresh End With Set main.DataGrid1.datasource = Adodc3 main.DataGrid1.Refresh End If Unload Me ③資產查看

圖4.16資產查看效果圖

在Load事件設置了窗體運行時所有需要的東西。代碼如下:

On Error Resume Next Option1.Value = True Dim s As String provider = ”provider=Microsoft.jet.oledb.4.0“ datasource = ”data source=“ & App.Path & ”DB.mdb“ With Adodc1.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdTable.RecordSource = ”zichan“.Refresh End With s = ”select distinct 日期 from zichan“ With Adodc3.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = s.Refresh End With For I = 1 To Adodc3.Recordset.RecordCount Combo1.AddItem(Adodc3.Recordset.Fields(”日期“))Adodc3.Recordset.MoveNext Next 查看部分代碼如下所示: On Error Resume Next Dim sql As String Dim s As String s = Combo1.Text If Option1.Value = True Then Set main.DataGrid1.datasource = Adodc1 main.DataGrid1.Refresh ElseIf Option2.Value = True Then sql = ”select * from zichan where 日期=''“ & Trim(s)& ”''“ With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = sql.Refresh End With Set main.DataGrid1.datasource = Adodc2 main.DataGrid1.Refresh End If Call dx1 Unload Me 4.8記錄刪除

刪除是一個數據庫軟件中最基本的操作之一。在本軟件的工具欄中也有一個刪除按鈕,其功能也是將所找到的記錄刪除,但是它每次只能刪除一條記錄,且此刪除記錄的前提是在右側的顯示中容易找出,即記錄不多的情況下使用。如果一旦數據記錄很多,一條條查找比較不方便時,即可以使用此窗體進行刪除。這里的刪除也有四個窗體,分別為衛生刪除、請假刪除、違規刪除、資產刪除。下面分別介紹。4.8.1 衛生刪除 ①效果圖

圖4.17衛生刪除效果圖

②界面制作與實現方法

這個界面總體來說各個控件比較簡單,但是作為一個刪除操作,它已經連接到了數據庫,與數據庫的表相聯。且有三種刪除記錄方式可以選擇。默認為單條刪除,選擇此項后需要在日期中選擇所刪除記錄的添加日期,以及所在的公寓與寢室,當這三條全部符合要求后,在表中進行查找,找到后確認刪除。選擇批量刪除后,在下面只有一個日期可以選擇,這樣將會把所選日期內的所有記錄都將刪除掉,所以稱其為批量刪除。全部即是把當前表清空,全部刪除掉,建議使用此操作前對當前數據庫進行備份處理,否則數據將不會恢復。首先要進行數據庫連接,如上面例子所示,這里就不在介紹,接下來要對本窗體中的日期進行加載,如下所示: s = ”select distinct 日期 from weisheng“ With Adodc2.Mode = adModeReadWrite.ConnectionString = provider & ”;“ & datasource.CommandType = adCmdText.RecordSource = s.Refresh End With For I = 1 To Adodc2.Recordset.RecordCount Combo1.AddItem(Adodc2.Recordset.Fields(”日期“))Combo2.AddItem(Adodc2.Recordset.Fields(”日期“))Adodc2.Recordset.MoveNext Next Option1.Value = True Frame3.Visible = True Frame5.Visible = False Frame6.Visible = False 在單條刪除前要確定所有條件符合要求,單條刪除操作的代碼主要部分如下:

If(MsgBox(”你真的想刪除日期為

“ & Combo1.Text & ”

公寓為

“ & Text1.Text & ”

寢室為

“ & Text2.Text & ” 的記錄嗎?“, vbOKCancel, ”系統提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from weisheng where 日期=''“ &

Trim(s)& ”''and 公寓=''“ & Trim(Text1.Text)& ”''and 寢室=''“ & Trim(Text2.Text)& ”''“

'', , adExecuteNoRecords Adodc1.Recordset.Update Combo1.Text = ”“ Text1.Text = ”“ Text2.Text = ”“ MsgBox ”刪除成功“, , ”系統提示“ End If Unload Me 當選擇某一日期后進行批量刪除代碼如下:

If(MsgBox(”你真的想刪除日期為

“ & Combo2.Text & ” 的記錄嗎?“, vbOKCancel, ”系統提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from weisheng where 日期=''“ & Trim(Combo2.Text)& ”''“ Combo2.Text = ”“ MsgBox ”刪除成功“, , ”系統提示“ End If Unload Me 清空數據表代碼為:

If(MsgBox(”你真的想刪除所有的記錄嗎?一旦刪除即不可恢復“, vbOKCancel, ”系統提示“))= vbOK Then For I = 1 To Adodc1.Recordset.RecordCount Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext Next I End If MsgBox ”刪除成功“, , ”系統提示“ Unload Me 4.8.2請假記錄 ①效果圖

[10]...>>

圖4.18請假記錄刪除效果圖 ②界面制作與實現方法

這個窗體與上面不同的是多了一個姓名條件,其它的都基本一致。由于在一個公寓中會有很多人要得名,但是在某一公寓某一寢室中只會有一個人,這也是一個公寓分配住宿人員時的基本標準,因為這樣也便于公寓本身的管理。此刪除窗體只有單條刪除與上面不同,單條刪除部分代碼如下:

If(MsgBox(”你真的想刪除日期為

“ & Combo1.Text & ”

公寓為

“ & Text1.Text & ”

寢室為

“ & Text2.Text & ”

姓名為

“ & Text3.Text & ” 的請假記錄嗎?“, vbOKCancel, ”系統提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from qingjia where 日期=''“ & Trim(s)& ”''and 公寓=''“ & Trim(Text1.Text)& ”''and 寢室=''“ & Trim(Text2.Text)& ”''and 姓名=''“ & Trim(Text3.Text)& ”''“

'', , adExecuteNoRecords Adodc1.Recordset.Update Combo1.Text = ”“ Text1.Text = ”“ Text2.Text = ”“ MsgBox ”刪除成功“, , ”系統提示“ End If 4.8.3 違規刪除 ①效果圖

圖4.19違規記錄刪除效果圖 ②界面制作與實現方法

違規刪除操作與請假刪除操作基本一致,不同之處只是在于后臺對不同的表進行處理,前臺界面大體相同。其實現方法與上現的也差不太多,這里就不在敘述。單條刪除記錄: Dim sql As String Dim s As String Dim panduan As Boolean If Combo1.Text = ”“ And Text1.Text = ”“ And Text2.Text = ”“ Then MsgBox ”請輸入刪除條件!“, , ”提示“ Exit Sub End If s = Combo1.Text If(MsgBox(”你真的想刪除日期為

“ & Combo1.Text & ”

公寓為

“ & Text1.Text & ”

寢室為

“ & Text2.Text & ”

姓名為

“ & Text3.Text & ” 的違規記錄嗎?“, vbOKCancel, ”系統提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from weigui where 日期=''“ & Trim(s)& ”''and 公寓=''“ & Trim(Text1.Text)& ”''and 寢室=''“ & Trim(Text2.Text)& ”'' and 姓名=''“ & Trim(Text3.Text)& ”''“

'', , adExecuteNoRecords Adodc1.Recordset.Update Combo1.Text = ”“ Text1.Text = ”“ Text2.Text = ”“ MsgBox ”刪除成功“, , ”系統提示“ End If Unload Me 成批刪除記錄:

If(MsgBox(”你真的想刪除日期為

“ & Combo2.Text & ” 的記錄嗎?“, vbOKCancel, ”系統提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from weigui where 日期=''“ & Trim(Combo2.Text)& ”''“ Combo2.Text = ”“ MsgBox ”刪除成功“, , ”系統提示“ End If Unload Me 刪除所有記錄:

If(MsgBox(”你真的想刪除所有的記錄嗎?一旦刪除即不可恢復“, vbOKCancel, ”系統提示“))= vbOK Then For I = 1 To Adodc1.Recordset.RecordCount Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext Next I End If MsgBox ”刪除成功“, , ”系統提示“ Unload Me 4.8.4 資產刪除 ①效果圖

圖4.20資產刪除效果圖 ② 界面制作與實現方法

與衛生記錄刪除不同的是寢室改為了名稱。值得注意的是,此處公寓與名稱都要人工輸入,所以在輸入的時候要注意不要有多余字符,否則會出錯刪除不掉的情況。單條刪除部分源碼如下:

If(MsgBox(”你真的想刪除日期為

“ & Combo1.Text & ”

公寓為

“ & Text1.Text & ”

名稱為

“ & Text2.Text & ” 的資產記錄嗎?“, vbOKCancel, ”系統提示“))= vbOK Then Adodc1.Refresh Adodc1.Recordset.ActiveConnection.Execute ”delete from zichan where 日期=''“ & Trim(s)& ”''and 公寓=''“ & Trim(Text1.Text)& ”''and 名稱=''“ & Trim(Text2.Text)& ”''“

'', , adExecuteNoRecords Adodc1.Recordset.Update Combo1.Text = ”“ Text1.Text = ”“ Text2.Text = ”“ MsgBox ”刪除成功“, , ”系統提示“ End If 4.9值班記錄

值班記錄這項可以說是此軟件的一個新增功能。它的界面小巧,并且它可以讓值班人員記錄前天發生的一些事情,字數在1000字左右。可以說是一個小型的日記本。4.9.1 值班記錄 ①值班記錄效果圖

圖4.21值班記錄效果圖 ② 實現思想與功能

此窗體的功能以及其源代碼是經過修改之后而形成的,源文件是一個電子記事本,發現后經過修改后做出一個日記本。

在上面的日期后面的文本框中,你可以輸入如窗口標題后面所示的日期格式后,點擊查看,即可以查看到所選日期的詳細記錄。這是一種查詢方法,當然你也可以用右面簡單的上一條與下一條進行快速查看,但是它只能查看當日日期起開始的記錄,如果與你所想要查看的日期相差很遠,那么你就需要使用第一種方法了。這個日記本還支持修改與刪除功能。當你想編輯或刪除某一日期的時候時,你需要用查看方法找到該記錄,然后對當前記錄使用編輯或刪除即可完成操作。刪除后,記錄即不可恢復,且此日記目前還沒有備份功能,慎重操作。

如果你今天值班,還沒有寫值班記錄,那么你可以點擊增加按鈕,開始寫當日的值班記錄,說明的是,每天只可以寫一次記錄。當你寫完今天記錄后,在點擊增加時會提示你今日已寫完。但是你可以對今日記錄進行編輯修改。

本程序源碼較為復雜,主要都是對文件進行操作,并沒有把記錄添加到數據庫中,所以不支持備份操作,且本窗體中的操作程序還用到了一個模塊。部分代碼如下: 查看上一條記錄:

If giCurrentRecord > 1 Then

giCurrentRecord = giCurrentRecord1

Form_Load

End If 4.9.2 增加記錄 ①增加記錄效果圖

圖4.22增加記錄效果圖 ② 實現思想與程序源碼

日期后顯示當前日期,但是可以修改。每篇記錄的字數要求在1000字以內。支持對當前字符輸入的統計,確定完成本日記錄后,點擊保存即可。部分代碼如下:

Dim bSaved As Boolean, bCF If txtDate = ”“ Or txtMemo = ”“ Then Exit Sub '' 如果記錄未填,則退出 If riji.Tag = ”addnew“ Then

If giRecordCount >= 1 Then

''新增時,檢查記錄是否重復

gsSql = frminput.txtDate

bCF = FindData(gsSql)

If bCF Then

MsgBox ”今天你已經寫過日記了!“, vbExclamation + vbOKOnly, ”每日一記“

txtMemo.SetFocus

Exit Sub

End If

End If

giRecordCount = giRecordCount + 1

bSaved = WriteData()ElseIf riji.Tag = ”modify“ Then ''

bSaved = ModifyData()End If If bSaved = True Then

AddNext = MsgBox(”保存完畢!“, vbExclamation + vbOKOnly, ”每日一記“)End If Unload Me 由于此段代碼中用到了一個模塊,在模塊中定義了很多過程,各過程實現功能及代碼如下所示:

讀取數據:

Public Sub ReadData(curRecord As Integer)''讀取數據 On Error Resume Next Dim strcaption$

riji.txtDate = goDiarys(curRecord).fldDate

riji.txtMemo = goDiarys(curRecord).fldMemo

strcaption = ”每日一記

[“ & Date & ”] “ & Time & ” WeekdayName(Weekday(Date))& “ 記錄:” & giCurrentRecord & “/” & giRecordCount

riji.Caption = strcaption End Sub 查詢數據:

Public Function FindData(sql As String)As Boolean ''查詢數據 On Error Resume Next

Dim I%

For I = 1 To giRecordCount

If goDiarys(I).fldDate = sql Then

giCurrentRecord = I

FindData = True

Exit For

End If

Next

ReadData giCurrentRecord End Function 新增數據:

Public Function WriteData()As Boolean ''新增數據 On Error Resume Next

Dim iFreefile%, I%

iFreefile = FreeFile()

Open gsPath & “DATA.DAT” For Random As #iFreefile Len = en(goDiary)

ReDim Preserve goDiarys(giRecordCount)

goDiarys(giRecordCount).fldDate = frminput.txtDate

goDiarys(giRecordCount).fldMemo = frminput.txtMemo

goDiary = goDiarys(giRecordCount)

Put #iFreefile, giRecordCount, goDiary

giCurrentRecord = giRecordCount

ReadData(giCurrentRecord)

Close #iFreefile

WriteData = True

“ & End Function 修改數據:

Public Function ModifyData()As Boolean ''修改數據 On Error Resume Next

Dim iFreefile%, I%

iFreefile = FreeFile()

Open gsPath & ”DATA.DAT“ For Random As #iFreefile Len =len(goDiary)

goDiarys(giCurrentRecord).fldDate = frminput.txtDate

goDiarys(giCurrentRecord).fldMemo = frminput.txtMemo

goDiary = goDiarys(giCurrentRecord)

Put #iFreefile, giCurrentRecord, goDiary

ReadData(giCurrentRecord)

Close #iFreefile

ModifyData = True End Function 刪除數據:

Public Sub DeleteData()''刪除數據 On Error Resume Next

Dim iFreefile%, I%, J%

I = 1: J = 1

iFreefile = FreeFile()

Open gsPath & ”temp.dat“ For Random As #iFreefile Len = Len(goDiary)

goDiarys(giCurrentRecord).fldMemo = ”IWantToKillIt*“ & goDiarys(giCurrentRecord).fldMemo ''加刪除標記

For I = 1 To giRecordCount

''無刪除標記的記錄保存到臨時文件,TEMP.DAT

If Left(goDiarys(I).fldMemo, 14)<> ”IWantToKillIt*“ Then

goDiary = goDiarys(I)

Put #iFreefile, J, goDiary

''在此必須有I,J兩個變量,因為使用二進制保存文件,J = J + 1

''從1開始到后面,中間如有間隔就會出現亂碼

End If

Next

Close #iFreefile

Kill gsPath & ”data.dat“

Name gsPath & ”temp.dat“ As gsPath & ”data.dat“

riji.txtDate = ”“

riji.txtMemo = ”“ End Sub 說明:由于本人能力有限,對文件部分還不算是很了解,這個功能的實現主要是借用了網上的一個電子記事本。本人只是對其做了一些修改,做成了這個每日一記,但個人認為此功能還算是可以。4.10 Help制作 Help文檔的制作也標志著本軟件基本完成。制作help文檔需要一個專業制作軟件,本人使用的是破解版的QuickCHM,此軟件無論在功能上還在是操作上用起來都是很方便。QuickCHM軟件的界面及其使用如下:

[10]...>>

圖4.23 QuickCHM軟件的界面 它屬于一個傻瓜型的制作軟件,利用它可以快速的制作出各種你所需要的幫助文檔。但是如果想制作出如下圖所示的文檔,那么需要使用制作網頁的軟件把內容先做成html形式,然后在用此軟件進行加載,最后生成chm文檔。在制作前要制作出相差的網頁形式,本人使用Dreamweaver。用它先做出要用到的相差頁面,大約一共為十個。然后在用QuickCHM把所有的網頁添加進去,然后對QuickCHM進行各項設置,最后點擊編譯即可生成help文檔,后綴為.Chm。在本管理軟件中可以按F1或點擊幫助菜單下的幫助主題即可顯示該幫助文檔,調用的過程也很簡單,兩條語句即可以實現。代碼如下:

在主窗體的load事件中添加下面語句: App.HelpFile = App.Path & ”help.chm“ 在幫助主題的click事件中添加下面語句: SendKeys ”{F1}" 上面這兩條語句即可以實現調用幫助文檔的功能。

第五章 系統測試

編寫出的各功能模塊需要進行測試,對于模塊化應用程序,軟件開發的最后一部分便是不斷的測試程序最終編譯成可執行的.exe文件,該階段主要對系統的正確性及完整性等方面進行測試。主要進行:功能確認測試、運行測試、健壯性測試、安全性測試以及查錯方面的測試等,系統測試的測試人員由測試組成員(或質量保證人員)或測試組成員與用戶共同測試,在整個系統開發完成,即將交付用戶使用前進行。在這一階段,對整個系統進行測試,系統測試結束后我們應該打軟件打包,使其脫離VB的環境下也能正常運行。打包應將所有程序需要的文件加載進去,如數據庫(DB.MDB),每日一記和幫助的文件都要進行加載。在調試程序過程中,由于某些內在的錯誤影響程序的運行,在采用上述調試方法對程序進行調試后,程序運行情況良好,達到了預期的設計目標,基本上滿足了用戶的需要。

總結

到目前為止,學生公寓管理軟件基本開發完畢,軟件界面美觀,運行時間短,執行功能強,其功能基本符合用戶需求。能夠完成對學生公寓中學生基本資料的存儲和查詢,并提供數據轉換、數據備份等系統維護功能,可以使用查找、修改、添加和刪除對學生公寓管理軟件的操作等。

由于本人知識有限,又是剛初學軟件,時間比較倉促,又缺乏經驗,必定有不足和不周之處,希望各位老師給予指導,本人將繼續完善修改,使此系統能更好地發揮性能。

參考文獻

Visual Basic 程序設計

王棟

清華大學出版社 Visual Basic 高級編程宋偉

吳建國

清華大學出版社 Visual Basic 6.0 入門與提高 戴紅 陳哲 清華大學出版社 Visual Basic 6.0應用指南

何斌 王運堅

馮峰 劉醒

人民郵電出版社

Visual Basic 高級編程技術 陳 明

楊勁松

北京希望電子出版社

Visual Basic實用教程

陳弘原

中國水利水電出版社

數據庫系統概論

薩師煊、王珊 高等教育出版社

軟件系統開發技術

潘錦平施小姚 西安電子科技大學出版

<<

[11]

第二篇:學生公寓管理系統

1.需求分析

需求分析的任務是通過詳細調查現實世界要處理的對象(組織、部門、企業等),充分了解原系統(手工系統或計算機系統)的工作概況,明確用戶的各種需求,然后在此基礎上確定新系統的功能。

學生公寓管理系統

學校有若干公寓,每棟5層,每層18個房間,每個房間4個學生,需要一個管理系統實現管理。

(1)寢室分配:根據系別、年紀、班級分配寢室,查詢寢室狀態和入住信息(2)學生管理:實現入住學生信息的維護和查詢功能(3)信息查詢:按公寓樓號、學生姓名等查詢住宿信息(4)出入登記:實現對外來人員進行登記功能

1.1 數據流圖(DFD)

數據流圖用于表達和描述系統的數據流向和對數據的處理功能。

畫數據流圖

學生入住信息學生入住入住信息信息登記住宿信息寢室信息學生學生信息公寓管理訪客信息訪客

圖1-1公寓管理系統1層數據流圖

公寓管理分配信息學生入住信息住宿信息訪客信息寢室分配管理學生管理寢室信息查詢管理分配信息學生入住信息住宿信息寢室分配信息學生入住信息住宿信息圖1-2公寓管理系統1層數據流圖

學生公寓管理入住信息入住信息入住信息匯入住查詢條件總報表學生入住入住信息查詢統計入住信息入住信息入住信息圖1-3學生管理2層數據流圖

訪客管理訪客信息訪客信息 訪客公寓管理訪客信息訪客信息統計登記訪客信息訪客信息統計訪客信息訪客信息 圖1-4訪客管理2層數據流圖

1.2 數據字典(DD)

數據字典是數據庫中各類數據描述的集合,是進行詳細的數據收集和數據分析所獲得的主要結果。數據文件:學生信息

信息組成:系別、年級、班級、姓名

數 據 項:系別 數據類型:字符型 數據長度:2

數 據 項:年級 數據類型:字符型 數據長度:2

數據組成:班級 數據類型:字符型 數據長度:2 數 據 項:姓名 數據類型:可變字符類型 數據長度:20

數據文件:信息查詢

信息組成:公寓樓號、學生姓名

數據組成:公寓樓號 數據類型:整型 數據長度:1

數 據 項:學生姓名 數據類型:可變字符類型 數據長度:20

數據文件:訪客信息

信息組成:訪客姓名、學生姓名、日期

數 據 項:訪客姓名 數據類型:可變字符類型 數據長度:20

數 據 項:學生姓名 數據類型:可變字符類型 數據長度:20

數 據 項:日期 數據類型:日期類型 數據長度:10

2.概念結構設計

概念結構設計階段的任務就是把這些實際需求抽象成計算機能夠識別的信息世界的結構,這種將需求分析階段得到的用戶需求抽象為信息結構即概念模型的過程就是概念結構設計。

E-R圖(在Powerdesigner中創建概念模型,粘貼圖)

圖2-1 E-R圖

3.邏輯結構設計

關系模式((在Powerdesigner中由概念模型轉化為物理數據模型,粘圖))

圖3-1物理數據模型圖

4.建表SQL語句

由物理數據模型生成SQL Server 2008數據庫的建表語句。

/*================*/ /* DBMS name: Microsoft SQL Server 2008 */ /* Created on: 2013-12-6 22:36:42 */ /*================*/

if exists(select 1 from sysindexes where id = object_id('學生')and name = '入住_FK' and indid > 0 and indid < 255)drop index 學生.入住_FK go

if exists(select 1 from sysobjects where id = object_id('學生')and type = 'U')drop table 學生 go

if exists(select 1 from sysobjects where id = object_id('宿舍')and type = 'U')drop table 宿舍 go

if exists(select 1 from sysindexes where id = object_id('訪客')and name = '探訪_FK' and indid > 0 and indid < 255)drop index 訪客.探訪_FK go

if exists(select 1 from sysobjects where id = object_id('訪客')and type = 'U')drop table 訪客 go

/*================*/ /* Table: 學生 */ /*================*/ create table 學生(姓名 varchar(20)not null, 公寓樓號 int null, 學生姓名 varchar(20)null, 系別 char(2)not null, 班級 char(2)not null, 年級 char(2)not null, constraint PK_學生 primary key nonclustered(姓名))go

/*================*/ /* Index: 入住_FK */ /*================*/ create index 入住_FK on 學生(公寓樓號 ASC, 學生姓名 ASC)go

/*================*/ /* Table: 宿舍 */ /*================*/ create table 宿舍(學生姓名 varchar(20)not null, 公寓樓號 int not null, constraint PK_宿舍 primary key nonclustered(公寓樓號, 學生姓名))go

/*================*/ /* Table: 訪客 */ /*================*/ create table 訪客(訪客姓名 varchar(20)not null, 日期 datetime not null, 姓名 varchar(20)null, constraint PK_訪客 primary key nonclustered(訪客姓名, 日期))go

/*================*/ /* Index: 探訪_FK */ /*================*/ create index 探訪_FK on 訪客(姓名 ASC)go

第三篇:VB+Access設計圖書管理系統

VB+Access設計圖書管理系統一、需求分析

在進行一個項目的設計之前,先要進行必要的需求分析。

現某圖書館需要管理其各種人員和圖書信息,希望實現辦公的信息化,通過建立一個圖書管理系統來管理圖書。其完成的功能如下:

(1)可以實現圖書的登記、借閱和賠償的管理。

(2)可以實現對圖書的各種信息的查詢,包括逐個瀏覽,以及對圖書信息的增加、刪除和編輯操作。另外,可以根據輸入的信息來檢索某個圖書的信息。

(3)可以實現對管理人員的投訴管理。

(4)可以實現對值班人員的管理。

系統的功能模塊圖如圖1所示。

本實例根據上面的設計規劃出的實體有圖書登記實體、圖書借閱實體、圖書賠償實體、查詢輸出實體、值班管理實體、投訴管理實體。各個實體具體的描述E-R圖如下。

圖書登記實體E-R圖如圖2所示。

圖書借閱實體E-R圖如圖3所示。

圖1 系統的功能模塊圖

圖2 圖書登記實體E-R圖

圖3 圖書借閱實體E-R圖

圖書賠償實體E-R圖如圖4所示。

圖4 圖書賠償實體E-R圖

投訴管理實體E-R圖如圖5所示。

圖5 投訴管理實體E-R圖

值班管理實體E-R圖如圖6所示。

圖6 值班管理實體E-R圖

查詢輸出實體E-R圖如圖7所示。

圖7 查詢輸出實體E-R圖

二、結構設計

根據上面的需求分析,設計好數據庫系統,然后開發應用程序可以考慮的窗體的系統,每一個窗體實現不同的功能,可以設計下面的幾個模塊。

● 圖書管理模塊:用來實現圖書的登記、借閱、賠償。

● 圖書資料模塊:用來實現圖書的查詢輸出。

● 值班管理模塊:用來實現管理人員的值班瀏覽。

● 投訴管理模塊:用來實現對管理人員的投訴管理。

● 系統管理模塊:用來實現用戶的增加、刪除和修改等操作。

三、數據庫設計

這里的數據庫采用Access,用ADO作為連接數據對象。

1、建立Access 數據庫

啟動Access,建立一個空的數據庫book.mdb,如圖8所示。

使用程序設計器建立系統需要的表格如下。

圖書登記表,如圖9所示。

圖8 建立數據庫book.mdb 圖9 圖書登記表

圖書借閱表,如圖10所示。圖書賠償表,如圖11所示。

圖10 圖書借閱表 圖11 圖書賠償表

圖書資料表,如圖12所示。系統管理表,如圖13所示。

圖12 圖書資料表 圖13 系統管理表

投訴管理表,如圖14所示。

圖14 投訴管理表

值班管理表,如圖15所示。

圖15 值班管理表

2、連接數據

在Visual Basic環境下,選擇“工程”→“引用”命令,在隨后出現的對話框中選擇“Microsoft ActiveX Data Objects 2.0 Library”,然后單擊“確定”按鈕,如圖16所示。

圖16 引用ADO連接數據庫

在程序設計的公共模塊中,先定義ADO連接對象。語句如下:

Public conn As New ADODB.Connection ' 標記連接對象

然后在子程序中,用如下的語句即可打開數據庫:

Dim connectionstring As String

connectionstring = “provider=Microsoft.Jet.oledb.4.0;” &_

“data source=book.mdb”

conn.Open connectionstring

3、設置ODBC

VB的ADO對象是通過ODBC來訪問數據庫,所以還要建立ODBC數據引擎接口。

打開控制面板中的“管理工具”→“數據源”(ODBC),出現如圖17所示的對話框。

圖17 ODBC對話框

單擊“添加”按鈕,出現“創建新數據源”對話框,如圖18所示。

圖18 “創建新數據源”對話框

選擇Microsoft Access Driver(*.mdb),單擊“完成”按鈕,出現如圖19所示對話框。

圖19 設置連接數據源

在“數據源名”文本框中添加一個名字,單擊“確定”按鈕完成系統默認連接設置。然后在ODBC對話框中單擊“確定”按鈕完成ODBC設置。

界面設計

設計好的界面如圖20所示。

圖20 圖書管理系統界面

這是一個多文檔界面(MDI)應用程序,可以同時顯示多個文檔,每個文檔顯示在各自的窗體中。MDI 應用程序中常有包含子菜單的“窗體”選項,用于在窗體或文檔之間進行切換。

菜單應用程序中,有5個菜單選項,每個選項對應著E-R圖的一個子項目。

1、創建主窗體

首先創建一個工程,命名為圖書管理系統,選擇“工程”→“添加MDI窗體”命令,則在項目中添加了主窗體。該窗體的一些屬性如表1所示。

表1 主窗體的屬性

Caption Name Menu Windowstate

性值

圖書管理系統 Main Mainmenu1 Maxsize

Windowstate的值為Maxsize,即程序啟動之后自動最大化。

將“菜單”組件從“工具箱”拖到窗體上。創建一個 Text 屬性設置為“文件”的頂級菜單項,且帶有名為“關閉”的子菜單項。類似地創建一些菜單項,如表2所示。

表2 菜 單 項 表

菜 單 名 稱 MenuItem1 MenuItem2 MenuItem3 MenuItem4 MenuItem5 MenuItem6 MenuItem7 MenuItem8 MenuItem9 MenuItem10 MenuItem11 MenuItem12

Text屬性 圖書管理 圖書登記 圖書借閱 圖書賠償 圖書資料 查詢輸出 值班管理 投訴管理 系統管理 增加用戶 修改密碼 退出

功 能 描 述

頂級菜單,包含子菜單 調出圖書登記窗體 調出圖書借閱窗體 調出圖書賠償窗體 頂級菜單,包含子菜單 調出查詢輸出窗體 頂級菜單,沒有子菜單 頂級菜單,沒有子菜單 頂級菜單,包含子菜單 調出用戶窗體 調出密碼窗體 系統退出

主窗體如圖21所示。

圖21 主窗體

2、創建各子窗體

選擇“工程”→“添加窗體”命令,添加子窗體。

在新建Visual Basic工程時自帶的窗體中,將其屬性MIDChild改成True,則這個窗體成為MID窗體的子窗體。

在這個項目中,要創建的子窗體如表3所示。

表3 所有子窗體

子 窗 體 名 圖書登記 圖書借閱 圖書賠償 增加新用戶 查詢輸出 登錄系統 修改密碼

Text frmdengji frmjieyue frmpeichang frmadduser frmfind frmlogin frmchangepwd

下面分別給出這些子窗體,以及它們所使用的控件。

(1)圖書登記子窗體如圖22所示,其控件如表4所示。

圖22 圖書登記子窗體

表4 圖書登記子窗體控件

控 件 類 別

控件Name Label1 Label2 Label

Label3 Label4 Label5 Text1 Text2 TextBox

Text3 Text4 Text5 Command1 Command2 Command3 CommandButton

Command4 Command5 Command6 Command7 ADO DataGrid

DataAdodc1 DataGrid1

控件Text 編號 書名 類型 購買日期 定價(空)(空)(空)(空)(空)增加記錄 刪除記錄 下一條 上一條 第一條 最后一條 退出(空)(空)

圖書借閱和圖書賠償子窗體分別如圖23和圖24所示,因為它們的控件與圖書登記子窗體的雷同,在此不作介紹。

圖23 圖書借閱子窗體

圖24 圖書賠償子窗體

(2)增加用戶子窗體如圖25所示,其控件如表5所示。

圖25 增加用戶子窗體

表5 增加用戶子窗體控件

控 件 類 別

控件Name 控件Text

Label1 Label

Label2 Label3 Label4 Text1 TextBox ComboBox CommandButton

Text2 Text3 Comb1 Commandl Command2

輸入用戶名 輸入密碼 確認密碼 選擇權限(空)(空)(空)(空)確定 取消

(3)修改密碼子窗體如圖26所示。

圖26 修改密碼子窗體

(4)庫房管理子窗體如圖27所示。

圖27 庫房管理子窗體

其控件如表6所示。

表6 庫房管理子窗體控件

控 件 類 別 TextBox ComboBox MSFlexGrid

控件Name Text1 Combo1 MSFlexGrid1

控件Text(空)

(5)查詢子窗體如圖28所示,其控件如表7所示。

圖28 查詢子窗體

表7 查詢子窗體控件

控 件 類 別 OptionButton

控件Name Option1 Option2 Label1 Label2 Label3 Label4 Label5 Label6 Label7 Label8 Label9 Label10

控件Text 按編號查詢 按購買日期查詢 從 到 從 年 月 日 到 年 月 日(空)(空)(空)(空)(空)(空)(空)(空)查詢 取消 Label Combo(0)ComboBox Combo(1)ComboBox Comboy(0)ComboBox Comboy(1)ComboBox Combom(0)ComboBox Combom(1)ComboBox Combod(0)ComboBox Combod(1)ComboBox CommandButton

Combo1 Combo1 Comboy Comboy Combom Combom Combod Combod Command1 Command2

(6)用戶登錄子窗體如圖29所示。

(7)值班管理子窗體如圖30所示,其控件如表8所示。

圖29 用戶登錄子窗體 圖30 值班管理子窗體

(8)投訴管理子窗體如圖31所示,其控件如表9所示。

圖31 投訴管理子窗體

建立公共模塊

1、顯示目錄

建立公共模塊可以提高代碼的效率,同時使得修改和維護代碼都很方便。

創建公共模塊的步驟如下:

(1)在菜單中選擇“工程”→“添加模塊”命令,則出現模塊對話框,如圖32所示。

(2)選擇模塊圖標后,單擊“打開”按鈕,則模塊已經添加到項目中了。默認情況下名為Module1。

圖32 模塊對話框

(3)在模塊中定義整個項目的公共變量。

Public conn As New ADODB.Connection ' 標記連接對象

Public userID As String ' 標記當前用戶ID

Public userpow As String ' 標記用戶權限

Public find As Boolean ' 標記查詢

Public sqlfind As String ' 查詢語句

Public rs_data1 As New ADODB.Recordset

Public findok As Boolean

Public frmdata As Boolean

Public Const keyenter = 13 ' enter鍵的ASCII碼

在主窗體添加完菜單之后,就要為各個子菜單創建事件處理程序。主窗體代碼

在本項目中,子菜單事件都是Click事件,這里先給出主窗體部分的代碼。

下面是響應“增加用戶”子菜單Click事件,調出增加用戶窗體代碼。

Private Sub adduser_Click()

frmadduser.Show

End Sub

下面是響應“查詢輸出”子菜單Click事件,調出查詢輸出窗體代碼。

Private Sub chaxunshuchu_Click()

frmfind.Show

End Sub

下面是響應“退出”子菜單Click事件,調出退出窗體代碼。

Private Sub exit_Click()

Unload Me

End Sub 下面是響應“圖書登記”子菜單Click事件,調出圖書登記窗體代碼。

Private Sub checkin_Click()

frmdengji.Show

End Sub

下面是響應“修改密碼”子菜單Click事件,調出修改密碼窗體代碼。

Private Sub changepwd_Click()

frmchangepwd.Show

End Sub

下面是響應“圖書借閱”子菜單Click事件,調出圖書借閱窗體代碼。

Private Sub borrow_Click()

frmjieyue.Show

End Sub

下面是響應“圖書賠償”子菜單Click事件,調出圖書賠償窗體代碼。

Private Sub tushupeichang_Click()

frmpeichang.Show 1

End Sub

下面是響應“值班管理”菜單Click事件,調出值班管理窗體代碼。

Private Sub zhibanguanli_Click()

frmzhiban.Show 1

End Sub

下面是響應“投訴管理”子菜單Click事件,調出投訴管理窗體代碼。

Private Sub tousuguanli_Click()

frmtousu.Show 1

End Sub

2、各子窗體的代碼

在各個子窗體建立好后,就可以根據各個子窗體的功能給它們添加相應代碼了。

(1)圖書登記子窗體代碼

本窗體用來填寫圖書登記的信息,用ADO來連接數據庫,是本窗體的重點。采用MDI的子程序,所以運行后,它出現在主程序的界面下,如圖33所示。

圖33 圖書登記子窗體

按鈕控件要求先填寫基本信息,然后與數據庫信息比較。Private Sub Command1_Click()On Error GoTo adderr Text1.SetFocus Adodc1.Recordset.AddNew Exit Sub adderr: MsgBox Err.Description End Sub Private Sub Command2_Click()On Error GoTo deleteerr With Adodc1.Recordset If Not.EOF And Not.BOF Then If MsgBox(“刪除當前記錄嗎?”, vbYesNo + vbQuestion)= vbYes Then.Delete.MoveNext If.EOF Then.MoveLast End If End If End With Exit Sub deleteerr: MsgBox Err.Description End Sub Private Sub Command3_Click()Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then MsgBox “這是最后一條記錄”, vbOKCancel + vbQuestion Adodc1.Recordset.MoveLast End If

End Sub

Private Sub Command4_Click()

Adodc1.Recordset.MovePrevious

If Adodc1.Recordset.BOF Then

MsgBox “這是第一條記錄”, vbOKCancel + vbQuestion

Adodc1.Recordset.MoveFirst

End If

End Sub

Private Sub Command5_Click()

If Adodc1.Recordset.EOF Then

MsgBox “記錄空”, vbOKCancel + vbQuestion

End

Else

Adodc1.Recordset.MoveFirst

Exit Sub

End Sub

Private Sub Command6_Click()

If Adodc1.Recordset.RecordCount = 0 Then

MsgBox “空記錄”, vbOKCancel + vbQuestion

End

Else

Adodc1.Recordset.MoveLast

End If

End Sub

Private Sub Command7_Click()

MDIForm1.Show

frmdengji.Hide

End Sub 圖書借閱和圖書賠償子窗體運行后如圖34和圖35所示,因為它們的代碼和圖書登記子窗體的代碼雷同,在此不做重復。

圖34 圖書借閱子窗體運行效果

示。

圖35 圖書賠償子窗體運行效果

(2)增加用戶子窗體代碼

增加用戶子窗體是用來增加用戶的用戶名、密碼和權限的。其運行效果如圖36所 單擊“確定”按鈕后,還要返回一個信息框,提示成功信息,如圖37所示。

圖36 增加用戶子窗體運行效果 圖37 成功信息框

窗體部分代碼的思路是,收集輸入的表中的字符串,然后與數據庫中的系統的用戶數據比較,如果不存在,則允許添加。

Private Sub Command1_Click()

Dim sql As String

Dim rs_add As New ADODB.Recordset

If Trim(Text1.Text)= “" Then

MsgBox ”用戶名不能為空“, vbOKOnly + vbExclamation, ”“

Exit Sub

Text1.SetFocus

Else

sql = ”select * from 系統管理“

rs_add.Open sql, conn, adOpenKeyset, adLockPessimistic

While(rs_add.EOF = False)

If Trim(rs_add.Fields(0))= Trim(Text1.Text)Then

MsgBox ”已有這個用戶“, vbOKOnly + vbExclamation, ”“

Text1.SetFocus

Text1.Text = ”“

Text2.Text = ”“

Text3.Text = ”“

Combo1.Text = ”“

Exit Sub

Else

rs_add.MoveNext

End If

Wend

If Trim(Text2.Text)<> Trim(Text3.Text)Then

MsgBox ”兩次密碼不一致“, vbOKOnly + vbExclamation, ”“

Text2.SetFocus

Text2.Text = ”“

Text3.Text = ”“

Exit Sub

ElseIf Trim(Combo1.Text)<> ”system“ And Trim(Combo1.Text)<> ”guest“ Then

MsgBox ”請選擇正確的用戶權限“, vbOKOnly + vbExclamation, ”“

Combo1.SetFocus

Combo1.Text = ”“

Exit Sub

Else

rs_add.AddNew

rs_add.Fields(0)= Text1.Text

rs_add.Fields(1)= Text2.Text

rs_add.Fields(2)= Combo1.Text

rs_add.Update

rs_add.Close 下面是返回成功信息對話框的代碼:

MsgBox ”添加用戶成功“, vbOKOnly + vbExclamation, ”“

Unload Me

End If

End If

End Sub

(3)修改密碼子窗體代碼

修改密碼子窗體是用來修改用戶密碼的。其運行效果如圖38所示。

圖38 修改密碼子窗體運行效果

在“確定”按鈕的Click事件中添加如下代碼: Private Sub Command1_Click()Dim rs_chang As New ADODB.Recordset

Dim sql As String If Trim(Text1.Text)<> Trim(Text2.Text)Then MsgBox ”密碼不一致!“, vbOKOnly + vbExclamation, ”“ Text1.SetFocus Text1.Text = ”“ Text2.Text = ”“ Else sql = ”select * from 系統管理 where 用戶名='“ & userID & ”'“ rs_chang.Open sql, conn, adOpenKeyset, adLockPessimistic rs_chang.Fields(1)= Text1.Text rs_chang.Update rs_chang.Close MsgBox ”密碼修改成功“, vbOKOnly + vbExclamation, ”“ Unload Me End If End Sub

在上述代碼中,首先比較兩個表中的數據是否一致,然后用rs_chang.Fields(1)= Text1.Text語句把代碼輸入到數據庫中。最后,用MsgBox ”密碼修改成功“, vbOKOnly + vbExclamation,”“語句彈出一個信息框,告訴修改成功,如圖39所示。

顯示目錄

(4)庫房管理子窗體代碼

庫房管理子窗體是用來管理圖書資料的。其運行效果如圖40所示。

圖40 庫房管理子窗體

實際上,設計庫房管理子窗體的程序代碼與增加用戶子窗體的代碼在思路上是完全相同的。就是在DataGrid的文本框中顯示圖書進出的清單,最后把填寫的明細存儲到數據庫中。

檢查代碼如下:

Option Explicit

Else

Dim rs_data2 As New ADODB.Recordset Dim select_row As String Dim showgrid2 As Boolean Dim rs_custom As New ADODB.Recordset Dim jinchu As String ' 進出庫標志

Dim modify As Boolean ' 修改狀態標志 Private Sub cmdexit_Click()Unload Me End Sub Private Sub Form_Load()On Error GoTo loaderror Dim sql As String sql = ”select * from 圖書資料“ rs_custom.CursorLocation = adUseClient rs_custom.Open sql, conn, adOpenKeyset, adLockPessimistic While Not rs_custom.EOF Combo1.AddItem rs_custom.Fields(0)rs_custom.MoveNext Wend findok = True modify = False ' 非修改狀態 showgrid2 = False displaygrid1 ' 調用顯示Datagrid1子程序 loaderror: If Err.Number <> 0 Then MsgBox Err.Description End If End Sub '顯示msflexgrid1子程序 Public Sub displaygrid1()Dim i As Integer On Error GoTo displayerror setgrid setgridhead MSFlexGrid1.Row = 0 If Not rs_data1.EOF Then rs_data1.MoveFirst Do While Not rs_data1.EOF MSFlexGrid1.Row = MSFlexGrid1.Row + 1 MSFlexGrid1.Col = 0 If Not IsNull(rs_data1.Fields(0))Then MSFlexGrid1.Text = rs_data1.Fields(0)MSFlexGrid1.Text = ”“ MSFlexGrid1.Col = 1 Else

Else

Else

Else

Else

If Not IsNull(rs_data1.Fields(1))Then MSFlexGrid1.Text = rs_data1.Fields(1)MSFlexGrid1.Text = ”“ MSFlexGrid1.Col = 2 If Not IsNull(rs_data1.Fields(2))Then MSFlexGrid1.Text = rs_data1.Fields(2)MSFlexGrid1.Text = ”“ MSFlexGrid1.Col = 3 If Not IsNull(rs_data1.Fields(3))Then MSFlexGrid1.Text = rs_data1.Fields(3)MSFlexGrid1.Text = ”“ MSFlexGrid1.Col = 4 If Not IsNull(rs_data1.Fields(4))Then MSFlexGrid1.Text = rs_data1.Fields(4)MSFlexGrid1.Text = ”“ MSFlexGrid1.Col = 5 If Not IsNull(rs_data1.Fields(5))Then MSFlexGrid1.Text = rs_data1.Fields(5)

MSFlexGrid1.Text = ”“ rs_data1.MoveNext Loop End If displayerror: If Err.Number <> 0 Then MsgBox Err.Description End If End Sub Public Sub setgrid()Dim i As Integer On Error GoTo seterror With MSFlexGrid1.ScrollBars = flexScrollBarBoth.FixedCols = 0.Rows = rs_data1.RecordCount + 1.Cols = 6.SelectionMode = flexSelectionByRow For i = 0 To.Rows1.ColWidth(i)= 1300 Next i End With Exit Sub

seterror: MsgBox Err.Description End Sub Public Sub setgridhead()On Error GoTo setheaderror MSFlexGrid1.Row = 0 MSFlexGrid1.Col = 0 MSFlexGrid1.Text = ”編號“ MSFlexGrid1.Col = 1 MSFlexGrid1.Text = ”購買日期“ MSFlexGrid1.Col = 2 MSFlexGrid1.Text = ”書名“ MSFlexGrid1.Col = 3 MSFlexGrid1.Text = ”類型“ MSFlexGrid1.Col = 4 MSFlexGrid1.Text = ”定價“ MSFlexGrid1.Col = 5 MSFlexGrid1.Text = ”備注“ Exit Sub setheaderror: MsgBox Err.Description End Sub Private Sub Form_Unload(Cancel As Integer)findok = False rs_data1.Close rs_custom.Close End Sub Private Sub MSFlexGrid1_Click()On Error GoTo griderror Dim getrow As Long getrow = MSFlexGrid1.Row If MSFlexGrid1.Rows = 1 Then MsgBox ”無相關記錄“, vbOKOnly + vbExclamation, ”“ Else select_row = MSFlexGrid1.TextMatrix(getrow, 0)End If griderror: If Err.Number <> 0 Then MsgBox Err.Description End If End Sub Public Sub showdata()With MSFlexGrid2.Rows = rs_data2.RecordCount + 1

.Row = 0

If Not rs_data2.EOF Then

rs_data2.MoveFirst

Do While Not rs_data2.EOF

.Row =.Row + 1

.Col = 0

If Not IsNull(rs_data2.Fields(0))Then.Text = rs_data2.Fields(0)Else.Text = ”“

.Col = 1

If Not IsNull(rs_data2.Fields(1))Then.Text = rs_data2.Fields(1)Else.Text = ”“

.Col = 2

If Not IsNull(rs_data2.Fields(2))Then.Text = rs_data2.Fields(2)Else.Text = ”“

.Col = 3

If Not IsNull(rs_data2.Fields(3))Then.Text = rs_data2.Fields(3)Else.Text = ”“

.Col = 4

If Not IsNull(rs_data2.Fields(4))And CDbl(rs_data2.Fields(4))< 0 Then

.Text =-CDbl(rs_data2.Fields(4))

Else

.Text = rs_data2.Fields(4)

End If

.Col = 5

If Not IsNull(rs_data2.Fields(5))Then.Text = rs_data2.Fields(5)Else.Text = ”“

.Col = 6

If Not IsNull(rs_data2.Fields(6))Then.Text = rs_data2.Fields(6)Else.Text = ”“

.Col = 7

If Not IsNull(rs_data2.Fields(7))And CDbl(rs_data2.Fields(4))< 0 Then

.Text =-CDbl(rs_data2.Fields(7))

Else

.Text = rs_data2.Fields(7)

End If

.Col = 8

If Not IsNull(rs_data2.Fields(8))Then.Text = rs_data2.Fields(8)Else.Text = ”“

rs_data2.MoveNext

Loop

rs_data2.MoveLast

End If

End With

End Sub(5)查詢子窗體代碼

查詢子窗體是用來查詢庫房中圖書資料明細的。其運行效果如圖41所示。

圖41 查詢子窗體運行效果

在列表框中給出編號或年月日后,“查詢”按鈕的Click事件將給出與數據庫查找比較的結果。

Private Sub Command1_Click()

On Error GoTo cmderror

Dim find_date1 As String

Dim find_date2 As String

If Option1.Value = True Then

sqlfind = ”select * from 圖書資料 where 編號 between '“ & _

Combo1(0).Text & ”'“ & ” and “ & ”'“ & Combo1(1).Text & ”'“

End If

If Option2.Value = True Then

find_date1 = Format(CDate(Comboy(0).Text & ”-“ & _

Combom(0).Text & ”-“ & Combod(0).Text), ”yyyy-mm-dd“)

find_date2 = Format(CDate(Comboy(1).Text & ”-“ & _

Combom(1).Text & ”-“ & Combod(1).Text), ”yyyy-mm-dd“)

sqlfind = ”select * from 圖書資料 where 購買日期 between #“ & _

find_date1 & ”#“ & ” and“ & ” #“ & find_date2 & ”#“

End If

rs_data1.Open sqlfind, conn, adOpenKeyset, adLockPessimistic

frmdatamanage.displaygrid1

Unload Me

cmderror:

If Err.Number <> 0 Then

MsgBox Err.Description

End If

End Sub

運行查詢子窗體時,組合框中就已經從數據庫中提取了貨單號和年月日兩個待查條件。

Dim i As Integer

Dim sql As String

If findok = True Then

rs_data1.Close

End If

sql = ”select * from 圖書資料 order by 編號 desc“

rs_find.CursorLocation = adUseClient

rs_find.Open sql, conn, adOpenKeyset, adLockPessimistic If rs_find.EOF = False Then ' 添加編號 With rs_find Do While Not.EOF Combo1(0).AddItem.Fields(0)Combo1(1).AddItem.Fields(0).MoveNext Loop End With End If For i = 2001 To 2005 ' 添加年 Comboy(0).AddItem i Comboy(1).AddItem i Next i For i = 1 To 12 ' 添加月 Combom(0).AddItem i Combom(1).AddItem i Next i For i = 1 To 31 ' 添加日 Combod(0).AddItem i Combod(1).AddItem i Next i End Sub 查詢完畢后,輸出查詢結果,如圖42所示。

圖42 查詢結果 顯示目錄

(6)用戶登錄子窗體代碼

運行的用戶登錄子窗體如圖43所示。

圖43 運行的用戶登錄子窗體

在本項目中,用戶登錄子窗體是運行的第一個界面,它的作用是檢查用戶名和密碼是否正確。由于用戶的資料是存放在數據庫中,所以在啟動該子窗體時,就已經連接了數據庫。其代碼如下:

Private Sub Form_Load()

Dim connectionstring As String

connectionstring = ”provider=Microsoft.Jet.oledb.4.0;“ & _

”data source=book.mdb“

conn.Open connectionstring

cnt = 0

End Sub

“確定”按鈕的作用是檢查輸入的數據是否與數據庫中的數據一致。

Private Sub Command1_Click()

Dim sql As String

Dim rs_login As New ADODB.Recordset

If Trim(txtuser.Text)= ”“ Then ' 判斷輸入的用戶名是否為空

MsgBox ”沒有這個用戶“, vbOKOnly + vbExclamation, ”“

txtuser.SetFocus

Else

sql = ”select * from 系統管理 where 用戶名='“ & txtuser.Text & ”'“

rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic

If rs_login.EOF = True Then

MsgBox ”沒有這個用戶“, vbOKOnly + vbExclamation, ”“

txtuser.SetFocus

Else ' 檢驗密碼是否正確

用戶名和密碼通過后,要關閉本窗體并打開主窗體。

If Trim(rs_login.Fields(1))= Trim(txtpwd.Text)Then

userID = txtuser.Text

userpow = rs_login.Fields(2)

rs_login.Close

Unload Me

MDIForm1.Show

Else

MsgBox ”密碼不正確“, vbOKOnly + vbExclamation, ”“

txtpwd.SetFocus

End If

End If

End If

' 只能輸入3次

cnt = cnt + 1

If cnt = 3 Then

Unload Me

End If

Exit Sub

End Sub(7)值班管理子窗體代碼

值班管理子窗體的作用是把值班人員的時間安排形成列表。運行的值班管理子窗體如圖44所示。

圖44 運行的值班管理子窗體

先定義連接數據庫的變量:

Option Explicit

Dim rs_zhiban As New ADODB.Recordset

然后列出窗體部分的代碼。

Private Sub cmdadd_Click()

On Error GoTo adderror

If cmdadd.Caption = ”新增記錄“ Then ' 當此按鈕的狀態為為“增加記錄”時

cmdadd.Caption = ”確定“ ' 按鈕名稱改“確定”

cmddel.Enabled = False

DataGrid1.AllowAddNew = True

DataGrid1.AllowUpdate = True ' 設定DataGrid可以增加記錄

Else

If Not IsNull(DataGrid1.Bookmark)Then

If Not IsDate(Trim(DataGrid1.Columns(”值班開始日期“).CellText(DataGrid1.Bookmark)))Then

MsgBox ”請按照格式yyyy-mm-dd輸入值班開始日期“, vbOKOnly + vbExclamation, ”“

Exit Sub

End If

If Not IsDate(Trim(DataGrid1.Columns(”值班開始時間“).CellText(DataGrid1.Bookmark)))Then

MsgBox ”請按照格式hh-mm輸入值班開始時間“, vbOKOnly + vbExclamation, ”“

Exit Sub

End If

If Not IsDate(Trim(DataGrid1.Columns(”值班截止日期“).CellText(DataGrid1.Bookmark)))Then

MsgBox ”請按照格式yyyy-mm-dd輸入值班截止日期“, vbOKOnly + vbExclamation, ”“

Exit Sub

End If

If Not IsDate(Trim(DataGrid1.Columns(”值班截止時間“).CellText(DataGrid1.Bookmark)))Then

MsgBox ”請按照格式hh-mm輸入值班截止時間“, vbOKOnly + vbExclamation, ”“

Exit Sub

End If

If Trim(DataGrid1.Columns(”值班人“).CellText(DataGrid1.Bookmark))= ”“ Then

MsgBox ”值班人不能為空!“, vbOKOnly + vbExclamation, ”“

Exit Sub

End If

rs_zhiban.Update MsgBox ”添加信息成功!“, vbOKOnly + vbExclamation, ”“

DataGrid1.AllowAddNew = False

DataGrid1.AllowUpdate = False

Else

MsgBox ”沒有添加信息!“, vbOKOnly + vbExclamation, ”“

End If

cmdadd.Caption = ”新增記錄“

cmddel.Enabled = True

End If

adderror:

If Err.Number <> 0 Then

MsgBox Err.Description

End If

End Sub

Private Sub cmdcancel_Click()

Unload Me

MDIForm1.Show

End Sub

Private Sub cmddel_Click()

Dim answer As String

On Error GoTo delerror

answer = MsgBox(”確定要刪除嗎?“, vbYesNo, ”“)

If answer = vbYes Then

DataGrid1.AllowDelete = True

rs_zhiban.Delete

rs_zhiban.Update

DataGrid1.Refresh

MsgBox ”成功刪除!“, vbOKOnly + vbExclamation, ”“

DataGrid1.AllowDelete = False

Else

Exit Sub

End If

delerror:

If Err.Number <> 0 Then

MsgBox Err.Description

End If

End Sub

Private Sub Form_Load()

Dim sql As String

On Error GoTo loaderror

sql = ”select * from 值班管理“

rs_zhiban.CursorLocation = adUseClient

rs_zhiban.Open sql, conn, adOpenKeyset, adLockPessimistic ' 打開數據庫

' 設定DataGrid控件屬性

DataGrid1.AllowAddNew = False ' 不可增加

DataGrid1.AllowDelete = False ' 不可刪除

DataGrid1.AllowUpdate = False

Set DataGrid1.DataSource = rs_zhiban

Exit Sub

loaderror:

MsgBox Err.Description

End Sub

Private Sub Form_Unload(Cancel As Integer)

Set DataGrid1.DataSource = Nothing

rs_zhiban.Close

End Sub

(8)投訴管理子窗體代碼

投訴管理子窗體是為了對人員進行更好的管理而設置的,可以向其添加投訴的對象、時間和內容等。投訴管理運行后的子窗體如圖45所示。

圖45 運行的投訴管理子窗體

以下為窗體的代碼:

Private Sub Command1_Click()

On Error GoTo adderr

Text1.SetFocus

Adodc1.Recordset.AddNew

Exit Sub

adderr:

MsgBox Err.Description

End Sub

Private Sub Command2_Click()

On Error GoTo deleteerr

With Adodc1.Recordset

If Not.EOF And Not.BOF Then

If MsgBox(”刪除當前記錄嗎?“, vbYesNo + vbQuestion)= vbYes Then

.Delete

.MoveNext

If.EOF Then.MoveLast

End If

End If

End With

Exit Sub

deleteerr:

MsgBox Err.Description

End Sub

Private Sub Command3_Click()

Adodc1.Recordset.MovePrevious

If Adodc1.Recordset.BOF Then

MsgBox ”這是第一條記錄“, vbOKCancel + vbQuestion

Adodc1.Recordset.MoveFirst

End If End Sub Private Sub Command4_Click()Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then MsgBox ”這是最后一條記錄“, vbOKCancel + vbQuestion Adodc1.Recordset.MoveLast End If End Sub Private Sub Command5_Click()If Adodc1.Recordset.EOF Then MsgBox ”記錄空“, vbOKCancel + vbQuestion End Else Adodc1.Recordset.MoveFirst End If Exit Sub End Sub Private Sub Command6_Click()If Adodc1.Recordset.RecordCount = 0 Then MsgBox ”空記錄", vbOKCancel + vbQuestion End Else Adodc1.Recordset.MoveLast End If End Sub Private Sub Command7_Click()MDIForm1.Show frmtousu.Hide End Sub 到這里,各個窗體的界面和代碼都介紹完了。發布后可以作為一個實際的項目應用。

第四篇:學生公寓管理系統-招標書

1.5 學生公寓管理系統

采用頂層設計、分級管理的設計思路,將宿舍資源管理、學生入住管理、宿舍日常管理、學生退宿管理、宿舍檢查管理、校外人員入住宿舍管理等模塊集成,實現學生宿舍管理的數據信息化、流程信息化、決策信息化,最終達到數據共享、管理自動化、管理智能化的目的。

目前我校宿舍管理方式如下:

? 迎新階段:

①.本科生:后勤分配新生房源給各學院,各學院在新生到校前安排新生到具體房間和床位,學生登錄迎新系統進行查詢。

②.碩士、博士生:新生到校報到時可人工分配床位,也可床位自選。? 在校階段:

在校生調宿、退宿、申請入住時提出申請意向,經過輔導員和學院審批后,由學生公寓審批通過,至財務處核算費用后,學生持材料(如:入住通知單)到公寓中心分配房間后在相關公寓樓棟辦理具體手續。

? 離校階段:

學生在結清相關費用后,在公寓服務中心辦理退宿手續,批量刪除畢業學生住宿信息。

? 在退宿、入住、調寢環節,學生信息和門禁系統實時對接,確保學生

入住情況準確。

系統包括6大模塊,具體功能說明如下:

1)宿舍基本數據管理

? 學生信息管理

各級管理老師可以維護和查詢自己管轄范圍內的學生信息;系統提供數據接口,可進行批量數據導入,或將查詢和統計的結果數據導出成EXCEL表格。系

統實現數據集成后,學生的部分信息可以通過數據集成平臺從教務、學工等系統共享而來;宿舍管理系統只對宿舍業務相關的學生信息內容進行維護。? 宿舍設備資源管理

學校管理人員按管理權限可以對學校的宿舍區、宿舍樓、宿舍等基本信息進行管理,如公共資源配置數量(如熱水器、洗衣機、開水爐、彩電等)、住宿費標準、住宿學生類別、備注等信息。

? 住宿變更流程管理:

宿舍流程管理實現學校管理人員對學生入住、退宿、宿舍調整的申請與審核流程的設置與管理。

2)學生住宿管理

人工分配宿舍:對新進學生分配宿舍,對住宿期間臨時調換宿舍、中途入住生進行調整安排。

自動分配宿舍:根據學院男女生入住人數在指定的樓棟、樓層、房間中自動分配宿舍床位。

學生自選床位:特定的學生在指定床位范圍內通過網絡自選床位。公寓空調安裝后,學生出現對空調需求差異,存在挑選有無空調宿舍的情況,學生可根據不同的需求選擇宿舍。

? 住宿管理:

學校相關管理人員對學生進行安排入住,住宿日常管理類型可包括:

中途變更住宿管理:入住登記、退宿登記、延期畢業登記等日常處理項目。批量管理:學生住宿信息的批量導入、變更、刪除等。可采用人工手動分配、電腦自動分配、自選床位分配的方式進行登記。

? 非在校住宿學生管理

學校相關管理老師直接維護學生校外住宿學生的基本信息,進行備案,供今后查詢使用,包括學號姓別、院系、年級、班級、校外住宿地址、聯系電話、聯系人、申請外住日期、家庭詳細信息等。

? 宿舍業務申請與受理

學生可以在線進行入住、退宿及宿舍調整的相關業務,填寫詳細的申請理由,并送達管理人員進行審核。各級管理老師對學生的入住、退宿、調整申請進行審

核,并填寫審批意見。

3)查詢統計

住宿信息管理功能主要用于住宿學生的各類信息查詢和統計,可以快速直接對住宿人員、宿舍房源)、公共設施設備、宿舍基礎數據進行查詢,滿足校內各部門對宿舍資源使用情況的實時查詢統計。查詢分為總體查詢、分類查詢、個別查詢、組合查詢。總體查詢可直接查詢校內/區域內總樓棟數、總床位數、總空床位數、總住宿人數等總體數據。分類查詢可以根據校區、樓棟號、樓層數、房間號進行統計查詢;也可以根據學院、年級、學生屬性進行統計查詢;或者根據繳費情況、住宿狀況進行統計查詢。個別查詢是根據學生個人信息進行詳細查詢,可以查到學生的住宿情況、繳費情況等。組合查詢是根據所需要的數據進行篩選綜合的一種查詢方式。

住宿管理系統要有比對功能,住宿名單要與財務處收費名單進行比對,可以實時查詢未交費學生情況。

系統提供全校學生住宿情況查詢統計報表、學生宿舍調動查詢統計報表。通過系統學校的相關管理人員可以查詢到各宿舍區房間總數、床位總數、已住總數、空余床位數等詳細信息。系統提供數據接口,可將查詢和統計的結果數據導出成EXCEL、WORD、PDF文件。

4)宿舍日常管理

? 樓棟管理員設置

學校相關管理老師設置樓棟管理人員清單以及其所管轄的樓棟。設置完成后,樓棟管理員可以維護本人管理范圍內的樓棟的學生住宿情況、衛生檢查情況等。? 衛生檢查管理

根據學校對宿舍衛生管理要求,學校相關管理老師或者樓棟管理員可對宿舍衛生檢查情況進行記錄和管理,具體可包括宿舍的房間號、檢查分數、檢查日期、操作日期和操作人等。系統支持定期檢查和抽查等多種檢查類型。

? 違章違紀管理

根據學校宿舍管理規定,學校相關管理老師或者樓棟管理員可對住宿人員的違章違紀情況進行登記,供相關管理人員查詢使用。系統可自定義多種違紀類型。其他數據的統計管理:對夜不歸宿、遲歸等學生情況的統計上傳,讓學院、輔導

員及時了解學生狀況,保障住宿生的人身安全,并為學生年終評優評獎提供依據。

5)公寓公共設施設備管理功能

公寓服務中心可通過該功能對公寓樓內公共設施設備數量、使用年限、維修更換情況進行有效地掌控。

將每棟公寓樓內的公用電器和基礎設施,如熱水器、開水爐、洗衣機、吸頂扇、空調、排風扇、家具、消防設施設備等公共設施數據編入系統。根據中心的工作節點對各類設施設備進行檢查、維修、更換,并及時更新系統數據。

6)系統管理

? 待辦事宜:可根據系統中業務開展情況,自動的生成事務性的提醒。可針對

不同的用戶提供不同的提醒。如:學生申請入住后,輔導員可收到待審的學生人數提醒。

? 系統設置:學校相關管理老師設置當前學年、當前學期等系統整體設置。? 日志管理:系統自行記錄每個用戶的訪問時間IP地址等信息;每個功能的訪問時間IP地址等信息;記錄系統的訪問日志、數據變化日志以及發生問題日志。

? 權限管理:可以靈活配置每個用戶所屬的用戶組,以及用戶組的的權限,保

證用戶在系統中的一切操作在授權范圍內進行,當用戶發生崗位調整或者崗位職責發生變化時系統可以靈活調整。

本系統與學校其他部門的信息互通

宿舍管理系統作為學校信息化建設中重要一環,不僅承載了和學生住宿相關的業務功能,在其他業務系統或科室信息化建設中也起到了不可替代的作用從迎新系統取得新生數據,宿管系統將新生宿舍分配結果發給迎新系統,讓學生未到校前在移動端或PC端即可查詢自己的住宿位置;宿管系統將宿舍分配結果和學生日常表現放到公共數據交換平臺供學工系統使用,用于學生日常管理;學工處、研工部將學生基本信息及變更信息發送至公共數據交換平臺供宿舍管理信息系統使用,實現信息互通;宿舍管理系統比對財務系統的學生住宿費繳納情況,為管理部門辦理學生入住調換退宿提供依據;宿舍管理系統通過集成門禁系統和一卡通系統,學生入住或退宿后系統學

生門卡可自動啟用或關閉對用樓棟的門禁。門禁出入記錄統計便于學工處或后勤管理部門實時掌握學生動向,提前預警。宿舍管理系統可與學校微信APP接口向學生推送相關信息,比如衛生檢查通知、個人宿舍繳費情況等等

第五篇:基于VB+ACCESS的車輛信息管理系統

華北水利水電大學畢業設計

目錄

摘要.....................................................................................................................................I Abstract..............................................................................................................................II 第一章 緒論......................................................................................................................1 1.1研究背景..............................................................................................................1 1.2研究現狀..............................................................................................................1 1.3研究內容..............................................................................................................2 第二章 系統的分析和設計..............................................................................................3 2.1系統的設計..........................................................................................................3 2.1.1系統設計的思想.......................................................................................3 2.1.2設計原則...................................................................................................3 2.1.3模塊劃分...................................................................................................3 2.2可行性分析..........................................................................................................5 第三章 系統功能的實現..................................................................................................7 3.1 工程與數據庫的創建.........................................................................................7 3.1.1創建工程...................................................................................................7 3.1.2創建數據庫...............................................................................................7 3.2登錄窗體和注冊窗體的設計..............................................................................8 3.2.1系統登錄表...............................................................................................8 3.2.2設置登錄窗體...........................................................................................9 3.2.3注冊窗體.................................................................................................12 3.2.4用戶信息管理窗體.................................................................................14 3.3用戶主窗體和管理員窗體................................................................................16 3.3.1普通用戶窗體.........................................................................................16 3.3.2管理員窗體.............................................................................................18 3.4車主信息管理窗體............................................................................................19 3.4.1車主信息表.............................................................................................19

I

華北水利水電大學畢業設計

3.4.2車主信息窗體設計.................................................................................20 3.5年檢信息管理窗體............................................................................................22 3.5.1年檢信息表.............................................................................................22 3.5.2年檢記錄窗體設計.................................................................................23 3.6事故信息管理窗體............................................................................................24 3.6.1事故信息表.............................................................................................24 3.6.2事故信息窗體設計.................................................................................25 3.7違章信息管理窗體............................................................................................26 3.7.1違章信息表.............................................................................................26 3.7.2違章信息窗體設計.................................................................................27 3.8保險信息管理窗體............................................................................................28 3.8.1保險信息表.............................................................................................28 3.8.2保險信息查詢窗體設計.........................................................................29 第四章 系統的具體實現與結論....................................................................................31 4.1軟件調試............................................................................................................31 4.2系統演示............................................................................................................32 4.2.1系統注冊與登錄.....................................................................................32 4.2.2普通用戶窗體.........................................................................................33 4.2.3管理員窗體.............................................................................................37 第五章 結論....................................................................................................................42 參考文獻..........................................................................................................................44 致

謝..............................................................................................................................46 附 錄1:外文原文.........................................................................................................48 附 錄2:外文譯文.........................................................................................................54 附 錄3:畢業設計任務書.............................................................................................58 附 錄4:開題報告.........................................................................................................60 附 錄5:程序.................................................................................................................66

II

華北水利水電大學畢業設計

車輛信息管理系統

摘要

進入21世紀,隨著人民生活質量水平的提高,私家車的數量越來越多,車輛信息的有效管理成為了厄待解決的任務。在車輛信息管理方面很多信息需要處理。比如車輛的車主信息,事故信息,違章信息,年檢信息,保險信息等等。人工處理這些信息會非常的繁瑣,而且容易出錯。所以需要個車輛信息管理系統來解決問題。

本次設計利用VB作為開發工具,Access作為后臺數據庫,并針對系統要求和車輛信息的分類劃分了功能模塊。首先是登錄設計,注冊賬號密碼之后可以登錄進入主窗體,通過主窗體普通用戶進入各查詢窗體包括車輛的車主信息,事故記錄,違章記錄,保險記錄,年檢記錄等各方面信息。管理員進入各查詢窗體包括車輛的車主信息,事故記錄,違章記錄,保險記錄,年檢記錄等各方面信息進行信息處理,并且可以對用戶的信息進行管理,還可以設置管理權限。系統采用分模塊,程序化的設計方法,既方便于系統功能的實現和調整,又便于管理人員的對數據信息的管理和維護。

車輛信息管理系統具備數據庫信息處理功能,可以根據用戶需要對車輛相關的信息進行查詢、添加、修改、刪除等操作。整個車輛信息管理系統體現了軟件工程的宗旨,并且使車輛信息管理變得規范化。系統還可以自動完成信息的處理,從而達到提高車輛信息管理的目的。

關鍵字:VB ;車輛信息;數據庫;管理系統

I

華北水利水電大學畢業設計

Vehicle information management system

Abstract With the improvement of people's living standard in 21st century, the effective management of vehicle information has become an urgent task because of more and more vehicles.A lot of aspects in the vehicle information management need to handle, such as, the owner of the vehicle information, accident, illegal information, yearly check information, insurance information and so on.Artificial processing this information is very cumbersome and error-prone.So we need a vehicle information management system to solve this problem.This design takes VB as the development tool, ACCESS database as the background and in view of the system requirements and vehicle information classification divides the function module.After the first login is designed, the registered account password can log into the main form, through the main form of ordinary users to enter the query form include the information of vehicle owners, accident record, endorsed, insurance records, annual inspection records and so on various aspects information.Administrators to enter the query form include the information of vehicle owners, accident record, endorsed, insurance records, annual inspection records information processing and so on various aspects information, and to manage the user's information, you can also set permissions management.System adopts modularized program design method, convenient for the combination of system function change, facilitate again complement and maintain that does not participate in the personnel.System has the function of database maintenance, timely data according to user needs to add, modify, delete, backup, etc.The development of the whole vehicle management system embodies the thought of software engineering and makes the vehicle information management systematization, standardization and automation, so as to achieve the goal of improving vehicle information management.Key words: VB;Vehicle information;Database;Management system.II

華北水利水電大學畢業設計

第一章緒論

1.1研究背景

進入21世紀人們的生活質量水平的提高,車輛的數量持續的增長。車輛的增多必然會給車輛管理帶來不便,而車輛的使用又是社會發展必備工具.車輛增加可以讓人們享受高質量的生活,但是如果沒有一個完善的車輛信息管理系統會隨之而來許多的社會問題,因此開發出一套功能完善的車輛信息管理系統成為一項十分重要的任務,特別是汽車的數量還在不斷的增長.所以開發車輛信息管理系統是管理車輛信息的主要措施.車輛信息管理系統的運用,使人們不僅可以享受車輛帶來的便捷,還不用因為車輛引起的諸多信息而感到煩躁.所以在這個背景下我們開發出車輛信息管理系統.方便人們對自己的愛車信息可以全面了解.數據庫是計算機設計信息管理系統的地一個重要組成部分,是人們進行數據儲存,分享,管理的工具.其實信息管理系統應用程序就是從數據庫獲取數據并進行處理。它是目前最流行計算機程序之一,應用范圍十分廣泛.。從簡單的數據錄入到表中到復雜的信息管理系統后臺數據庫的建立都是信息管理的應用。

Visual Basic 簡稱VB,VB是軟件開發領域開發效率較高程序設計語言,在設計小型的信息管理系統中有很大的優勢。利用VB開發數據庫應用系統,可以將所學習的知識融會貫通,培養自主學習能力,創新能力。數據庫開發應用管理系統包含測控,電子,計算機等多個學科的內容,具有深厚的研究價值。

1.2研究現狀

本人在查閱了眾多的參考資料之后,充分了解了國內現有的各種車輛相關的信息研究系統,我國利用計算機管理車輛信息的技術應用相對國外比較滯后,主要原因是國內計算機技術的普及不到位和社會發展水平不高。針對我所理解的車輛信息管理系統,國內現有研究狀況進行總結:首先,很多車輛信息管理系統設計不合理,系統內的各個模塊之間的數據信息有重復出現的情況,需要多次的屬入。不僅設計繁瑣,效率不高還容易產生錯誤。其次,大部分的設計軟件在人機交互功能方面設計力度不夠,沒有錯誤警報信息和關鍵操作驗證功能。對于車輛信息的整理也不夠全面,很多車輛信息管理系統只關心車輛的少部分信息,對車輛整體信息涵蓋不完整。

華北水利水電大學畢業設計

相比而言國外的信息管理系統就比較成熟,很早以前國外就產生了簡單的單位車輛管理系統,通過計算機對車輛的相關信息進行記錄,大大減少了人工進行錄入和管理的繁雜,提高了對車輛使用情況的了解,現在國外的管理系統已經十分的完善。

1.3研究內容

本次設計運用VB和ACCESS的基本理論知識,在此基礎上進行了系統數據庫的設計,訪問連接及數據源的配制方法.根據系統功能及設計要求,進行系統的模塊劃分,軟件流程的設計及系統的運行界面設計.通過VB的語言編寫出個功能模塊的代碼,實現數據庫訪問及系統界面的友好性設計,滿足應用系統的實際要求

首先是登錄設計,登錄進入主窗體,通過主窗體進入各查詢窗體包括車輛的車主信息,事故記錄,違章記錄,保險記錄,年檢記錄等各方面信息。對車輛的各種信息實現查詢、修改、刪除、添加等功能。系統采用分模塊,程序化的設計方法,既方便于系統功能的實現和調整,又便于管理人員的對數據信息的管理和維護。

華北水利水電大學畢業設計

第二章系統的分析和設計

經過對大量的資料進行研究,基本可以確定設計的方向。本章重點:對系統進行分析,制定設計的方案。

2.1系統的設計

系統設計是車輛信息管理系統開發的重要階段,在這一階段。首先要了解用戶對車輛信息有哪些方面的需求,然后對系統進行劃分,最后整理出各模塊之間的系統流程。這樣既提高了系統設計的準確性,又讓設計流規范化。

2.1.1系統設計的思想

⑴實用性:在各項基本功能使用上進一步完善系統。⑵先進性:簡化代碼去除多余,引用簡單的編程方式。⑶易用性:授權實體在所需時間可以簡單快捷的使用應用程序。⑷保密性:確保信息不會暴漏給未授權查看的人使用。⑸系統性:將各個功能模塊有機融合在一個系統的整體中。

2.1.2設計原則

⑴目標明確。在信息系統中的每一個子系統都是為了達到某種效果而設計。系統的邊界是否適合,系統內部的目標是否統一。這些將直接影響整個系統的功能。車輛信息管理系統就是實現一個節省人力,能使管理流程科學化的系統。

⑵結構清晰。系統與系統之間的層次分清楚,比較要分明吧,這樣便于實現總目標,使得信息交流方便。

2.1.3模塊劃分

數據庫的設計需求具體實現對各種信息的保存修改和查詢等方面。因此一個滿足系統數據庫必須充分的照顧到各種新的輸入輸出以免遺漏導致開發返工。通過對系統功能的分析,數據庫應該包括登錄表、車主信息表、年檢記錄表、保險信息表、違章記錄表、事故記錄表六個表。分別儲存我們必須的信息。

VB開發根據系統的功能要求將系統分解為三層六大模塊,三個層次分為:登錄界面,主窗體,子查詢窗體。

華北水利水電大學畢業設計

1、登錄界面:當我們打開應用程序的時候首先進入登錄界面,分為注冊和登錄兩個窗體分別實現注冊新用戶和通過用戶密碼認定進入車輛信息管理系統功能

2、主窗體:登錄成功之后普通用戶進入主窗體我們可以選擇我們要查詢的項目,管理員用戶可以進入管理員窗體對數據進行添加、修改、刪除、查詢功能。

3、子查詢窗體:普通用戶選擇查詢項目進入子項目,輸入相應的車牌號即可查詢相關的信息。管理員用戶進入管理窗體,對車輛信息進行添加、修改、刪除、查詢處理。

六大模塊分為:車主信息,年檢信息,事故信息,違章信息,保險信息,用戶信息。

1、車主信息:包含了車主的姓名,出生日期,發證日期,車輛類型,車主年齡,證件有效期,性別,證件號,籍貫幾個方面。

2、年間信息:本模塊包含了車輛年間的信息記錄,從購車到現在所有的年間信息在本模塊顯示

3、事故信息:事故的時間,地點,原因。對方姓名,對方的車號,處理方式,責任認定等等信息。

4、違章信息:包括違章的原因,處罰,時間,扣分情況,處理情況等信息。

5、保險信息:這里主要包括了保險日期,類型,備注生效情況。

6、賬戶信息:主要包括帳號,密碼,用戶類型信息。車輛信息管理系統流程圖如圖2-1所示。

華北水利水電大學畢業設計

圖2-1車輛信息管理系統流程圖

2.2可行性分析

1、經濟可行性分析

通過計算機對車輛信息進行全面的自動化管理,大大提高了信息的管理效率。通過對車輛信息進行全面的管理和分析,可以及時的發現各種問題。提高對車輛信息的掌握度,使車輛信息管理更加科學化系統化。

2、技術可行性分析

利用VB+Access實現簡單、實用、安全性高的技術特點、完全可以開發出一套適合個人的車輛信息管理,而且計算機自動化的辦公管理會使得車輛信息管理更加清晰,實現通過計算機對信息進行查詢,輸入,輸出等一系列功能。

3、社會可行性分析

對于車輛信息管理來說,主要考慮車輛信息獲取的獲取條件。在計算機軟硬件技術和網絡技術飛速發展與普及,要求車輛信息必須適應自動化管理的模式,而且軟件的易用性提高,可以使人們更方便快捷的使用車輛信息管理系統。

華北水利水電大學畢業設計

華北水利水電大學畢業設計

第三章系統功能的實現

經過上一章的分析,和整體設計的方案確定。接下來我們將進行具體的設計,去實現我們想要實現的功能。本章重點:創建數據庫,創建工程,數據表的設計,工程窗體的設計。

3.1工程與數據庫的創建

3.1.1創建工程

1、運行VB程序選擇標準EXE點擊打開創建工程界面如圖3-3所示。

圖3-1創建工程界面

2、保存工程:

保存工程界面如圖3-4所示文件名輸入車輛信息管理,下拉可以選擇文件的保存類型,點擊保存即可保存工程,工程創建完成。

圖3-2保存工程界面

3.1.2創建數據庫

首先我們打開VB程序,選擇我們創建好的工程初始界面如圖3-3所示在菜單欄藍

華北水利水電大學畢業設計

色標識處點擊外接程序之后選擇可視化數據程序管理器。

圖3-3初始界面

可視化數據管理器如圖3-2所示點擊文件,下拉新建選擇Access,保存7.0MDB文件生成數據庫,即可生成我們需要的數據庫。

圖3-4可視化數據管理器

3.2登錄窗體和注冊窗體的設計

3.2.1系統登錄表

系統登錄:包括登錄帳號、密碼、用戶類型。登錄信息E-R圖如圖3-5所示。

圖3-5登錄信息E-R圖

登錄表設計如圖3-6所示右鍵單擊表一部分可以進入設計視圖,這個時候會彈出對話框提示我們保存表。

圖3-6登錄表設計

華北水利水電大學畢業設計

保存對話框如圖3-7所示以賬戶登錄為表名稱保存之后進入設計視圖,可以繼續進行設計。

圖3-7保存對話框

賬戶信息表設計視圖如圖3-8所示,設置賬號為主鍵,密碼和用戶類型。帳號和密碼數據類型為數字,用戶類型的數據類型為文本。

圖3-8賬戶信息表設計視圖

完成了數據的屬性設置之后我們要對數據進行數據的錄入,錄入數據后的數據表視圖如圖3-9所示。

圖3-9數據表視圖

3.2.2設置登錄窗體

首先我們進行登錄表窗體的設計,控件的布局設置,登錄窗體設計視圖如圖3-10所示。

圖3-10登錄窗體設計視圖

華北水利水電大學畢業設計

登錄窗體包含用戶名,密碼兩個輸入框。登錄,退出兩個按鈕。三個標簽框,一個圖片框,一個ADO控件。

選擇Form窗體在屬性中把Caption改為車輛信息管理。

標簽控件Label1屬性中把Caption 改為車輛信息管理系統,Font字體設置為宋體粗體傾斜48號字體,Alignment設置為2-Center,Autosize設置為True,BackStyle選擇設為0-Transparent。

標簽控件Label2屬性設置中在Caption 后輸入帳號,標簽控件Label3屬性設置中在Caption 后輸入密碼。公用屬性Font字體選擇為宋體粗體傾斜二號號字體,Alignment選擇為2-Center,Autosize選擇為True.BackStyle選擇設為0-Transparent.文本控件Text1對應帳號標簽,文本控件Text2對應密碼標簽。公用屬性設置中把Text對應的名字刪除,字體選擇宋體三號字體。在Text2中另外設PaxxWordChar后邊輸入“*”,設置密文密碼。

按鈕控件Command1屬性設置中Caption 后邊輸入登錄,按鈕控件Command2屬性設置中Caption后輸入注冊, 公用屬性Font字體設置為宋體三號字體。

圖片控件Image1屬性中選擇Picture后邊可以選擇你喜歡背景的圖片,Stretch選擇設為True.使圖片適應控件大小。右鍵單擊圖片控件會出現一個選擇菜單,選擇置后可以使其他控件顯示在圖片之前顯示,圖片控件設置以后不在贅述。

ADO控件的屬性設置Visible設置為False,以后ADO控件均執行此設置以后出現不再贅述。

在工具欄右鍵單擊選擇部件,勾選添加控件圖如圖3-11所示,可以添加ADO控件到工具欄。

圖3-11添加控件圖

華北水利水電大學畢業設計

之后點擊確定即可在工具欄顯示ADO控件,添加進窗體即可。

ADO控件鏈接數據庫,右鍵點擊ADODC控件選擇屬性出現屬性頁如圖3-12所示。

圖3-12屬性頁

點擊生成選擇界面選擇數據鏈接界面如圖3-13藍線選項,點擊下一步進行鏈接。

圖3-13選擇數據鏈接界面

選擇已創建好的數據庫,測試鏈接成功測試連接界面如圖3-14所示點擊確定。提示測試鏈接成功就代表我們成功鏈接數據,之后我們可以對數據的信息進行操作。

圖3-14測試鏈接界面

華北水利水電大學畢業設計

返回屬性頁選擇記錄源命令類型,選擇2-adCndTable下邊可以選擇調用的表如果沒有出現需要調用表的名字,記錄源如圖3-15所示只需輸入表的名字即可,就可以選擇我們需要的數據打開的是哪個表。點擊確定即可確定我們需要鏈接的表。

圖3-15記錄源

登錄窗體關鍵程序如下:

Adodc1.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + App.Path + “車輛信息.mdb;” Adodc1.CommandType = adCmdText Adodc1.RecordSource = “select * from 登錄

where 帳號 ='”& Trim(Text1.Text)&“'” Adodc1.Refresh '(這是給ADODC設置數據庫及數據源并刷新數據源)If Adodc1.Recordset.Fields(“用戶類型”)= “管理員” Then

身份權限判斷 If Adodc1.Recordset.RecordCount >“ 0” Then

'查找存在該用戶 If Adodc1.Recordset.Fields(“密碼”)<> Text2.Text Then

'核對用戶密碼 MsgBox “密碼錯誤,請重新輸入!”

’消息盒子 Text2.SetFocus’獲取焦點

3.2.3注冊窗體

添加窗體在工程欄中右鍵單擊出現添加選項,再選擇窗體,點擊確定即完成創建窗體,右鍵單擊新建好的窗體選擇保存窗體即可保存新窗體。打開新的窗體跟登陸窗體操作類似。

對于注冊窗體的控件布局設置,注冊窗體的設計視圖如圖3-16所示。

華北水利水電大學畢業設計

圖3-16注冊窗體的設計視圖

選擇Form窗體在屬性中把Caption改為注冊界面。

標簽控件Label1屬性中Caption 改為歡迎注冊本系統,Font字體設置為宋體粗體傾斜48號字體,Alignment設置為2-Center,Autosize設置為True.BackStyle選擇設為0-Transparent.標簽控件Label2屬性中Caption 后輸入“帳號”,Font把字體設置為宋體粗體傾斜二號字體,Alignment選擇為2-Center,Autosize選擇為True, BackStyle選擇設為0-Transparent.標簽控件Label3屬性中Caption 后輸入密碼,Font字體選擇為宋體粗體傾斜二號號字體,Alignment選擇為2-Center,Autosize選擇為True.BackStyle選擇設為0-Transparent.文本控件Text1對應帳號標簽在屬性設置中把Text對應的名字刪除,字體選擇宋體常規三號字體。

文本控件Text2對應密碼標簽在屬性設置中把Text對應的名字刪除,字體選擇宋體三號字體。

按鈕控件Command1屬性設置界面中Caption 后邊改為注冊, ,Font字體設置為宋體三號字體。

按鈕控件Command2屬性設置界面中Caption 后邊改為返回,Font字體設置為宋體三號字體。

ADO的鏈接方法與登錄窗體的相同此處不再贅述。注冊程序代碼如下:

華北水利水電大學畢業設計

Adodc1.RecordSource = “ select * from 登錄” Adodc1.Refresh’獲取數據表信息 Adodc1.Recordset.AddNew Adodc1.Recordset.Fields(“帳號”)= Trim(Text1.Text)Adodc1.Recordset.Fields(“密碼”)= Trim(Text2.Text)Adodc1.Recordset.Update

’添加信息到登錄表

3.2.4用戶信息管理窗體

用戶信息窗體控件布局設置,用戶信息窗體設計圖如圖3-17所示。

圖3-17用戶信息窗體設計圖

選擇Form窗體在屬性中把Caption改為用戶信息管理。添加一個Frame1控件選擇置后可以在里邊添加控件。

標簽控件Label1屬性中Caption 后邊改為用戶信息管理界面,Font字體設置為宋體傾斜小初字體,Alignment設置為2-Center,Autosize設置為True.BackStyle選擇設為0-Transparent.標簽控件Label2屬性中Caption后邊改為帳號,標簽控件Label3屬性中Caption 后邊改為密碼,標簽控件Label4屬性中Caption 后邊改為用戶類型,公用屬性Font字體設置為宋體2號字體,Alignment設置為2-Center,Autosize設置為True.BackStyle選擇設為0-Transparent.文本控件Text1對應帳號標簽,文本控件Text2對應密碼標簽,文本控件Text3對應用戶類型標簽在屬性設置中把Text對應的名字刪除,字體選擇宋體常規三號字體。

按鈕控件Command1屬性中Caption 后邊改為查詢用戶, 按鈕控件Command2屬性

華北水利水電大學畢業設計

中Caption 后邊改為添加管理 ,按鈕控件Command3屬性界面中Caption 后邊改為刪除用戶 ,按鈕控件Command4屬性界面中Caption 后邊改為返回 ,他們的Font字體選擇為宋體三號字體。Style設置為1-Graphical,BackColor可以設置想要的顏色。

DataGrid控件在登錄界面引用ADO控件時已經引用過了,在工具欄里邊直接放進窗體即可,屬性中的DataSource選為Adoac1。本設置此控件設置屬性均相同其他窗體不再贅述。

ADO控件的設置與登錄窗體,不贅述。注冊窗體是添加按鈕,而添加管理,查詢用戶,刪除用戶分別是修改和查詢,查出功能的實現主要代碼如下:

Adodc1.RecordSource = “SELECT * FROM 登錄 WHERE 帳號='” + Trim(Text1.Text)+ “'” Adodc1.Refresh

’獲取查詢條件

With Text2

’設置控件綁定信息 Set Text2.DataSource = Adodc1 Text2.DataField = “密碼” End With With Text3 Set Text3.DataSource = Adodc1 Text3.DataField = “用戶類型” End With End Sub Private Sub Command2_Click()

’修改程序

Adodc1.RecordSource = “select * from 違章 where 車牌號碼=”& Text1.Text &“"

’ 通過主鍵修改

Adodc1.Recordset.Fields(”帳號“)= Text1.Text Adodc1.Recordset.Fields(”密碼“)= Text2.Text Adodc1.Recordset.Fields(”用戶類型“)= Text3.Text Adodc1.Recordset.Update MsgBox ”修改成功!“ End Sub

華北水利水電大學畢業設計

Private Sub Command3_Click()If Me.Adodc1.Recordset.RecordCount

=

0

Or

Me.Adodc1.Recordset.EOF Then

’判斷記錄是否為空

Exit Sub End If

Me.Adodc1.Recordset.Delete

’刪除記錄

Me.Adodc1.Recordset.MoveNext

’移到嚇一條記錄 If Me.Adodc1.Recordset.RecordCount = 0 Then Exit Sub End If If Me.Adodc1.Recordset.EOF Then Me.Adodc1.Recordset.MoveLast MsgBox ”刪除成功!" End Sub 3.3用戶主窗體和管理員窗體

3.3.1普通用戶窗體

普通用戶窗體控件布局設置,普通用戶窗體的設計視圖如圖3-19所示。

圖3-18普通用戶窗體的設計視圖

普通用戶窗體所示包含系統菜單欄,兩個標簽控件,六個按鈕控件,一個Timer1

華北水利水電大學畢業設計

控件。

Unload Me 關閉當前窗體。Form1.Show 打開相應的窗體。

右鍵單擊窗體空白部分選擇菜單欄編輯器,設置內容菜單欄編輯器視圖如圖3-19所示。

圖3-19欄編輯器視圖

輸入標題和名字,按向下的箭頭即可添加,添加結束后點擊確定按鈕即可完成創建,注意如果要創建子菜單可以選擇左右的箭頭來設置子菜單。菜單的效果可以設置與按鈕的效果相同可以打開其他的窗體,子窗體具有相同的效果。

選擇Form窗體在屬性中把Caption改為車輛信息管理系統。

時間顯示設置要添加Timer1控件,寫入代碼在窗體內加入Timer1.Interval = 1000,在控件內加入Label1.Caption = Now()即可顯示現在時間。把Timer1右鍵單擊選擇置后即可在運行界面不顯示。

標簽控件Label1屬性界面中Caption 后邊的值刪除,Font字體選擇為宋體三號字體。標簽控件Label2屬性中Caption 后邊改為現在時間,Font字體設置為宋體二號字體,公共屬性Alignment設置為2-Center,Autosize設置為True.BackStyle后選擇0-Transparent。

按鈕控件Command1屬性中Caption 后邊改為車主信息,按鈕控件Command2屬性界面中Caption 后邊改為年檢信息,按鈕控件Command3屬性中Caption 后邊改為保險信息,按鈕控件Command4屬性中Caption 后邊改為事故信息,按鈕控件Command5屬性中Caption 后邊改為違章信息, 按鈕控件Command6屬性中Caption 后邊改為退出, ,公用屬性Font字體選擇為宋體三號字體。

窗體的完整程序見附錄,以后不做特殊說明本論文所有程序均在附錄顯示。

華北水利水電大學畢業設計

3.3.2管理員窗體

管理員窗體的控件設置內容位置,管理員窗體的設計視圖如圖3-20所示。

圖3-20管理員窗體的設計視圖

管理員窗體有一個菜單欄,兩個標簽控件,六個按鈕控件,一個Timer1控件。首先是菜單欄的設置內容,菜單欄設計視圖如圖3-21所示。

圖3-21菜單欄設計視圖

選擇Form窗體在屬性中把Caption改為車輛信息管理系統。時間顯示設置要添加Timer1控件,屬性設置與普通用戶界面相同。標簽控件屬性與普通用戶界面相同此處不贅述。

按鈕控件Command1屬性中Caption 后邊改為車主信息管理,按鈕控件Command2

華北水利水電大學畢業設計

屬性中Caption 后邊改為年檢信息管理 ,按鈕控件Command3屬性中Caption 后邊改為保險信息管理 ,按鈕控件Command4屬性中Caption 后邊改為事故信息管理 ,按鈕控件Command5屬性中Caption 后邊改為違章信息管理,按鈕控件Command6屬性中Caption 后邊改為切換普通界面。公用屬性Font字體設置為宋體三號字體。

按Ctrl加鼠標左鍵可以選定多個按鈕控件,選擇菜單欄里邊的格式可以編輯控件的大小統一和位置的統一。可以頂端,底端,靠左右對齊可以使界面更加美觀優化。

主要用到程序語言Form3.CD.Visible = True可以使指定的窗體控件改變顯示屬性。

3.4車主信息管理窗體

3.4.1車主信息表

車主信息:包含了車主的姓名,車輛類型,車主年齡,性別,證件號,籍貫,駕駛信息等等。車主信息E-R圖如圖3-22所示。

圖3-22車主信息E-R圖

在工具菜單欄選擇創建,創建車主信息表對表內容的屬性設置,車牌號碼,車主的姓名,籍貫,車輛類型,性別,證件號,車主年齡,發證日期,證件有效期,出生日期。數據的屬性車主信息表設計視圖如圖3-23所示。

圖3-23車主信息表設計視圖

華北水利水電大學畢業設計

這里出生日期文本里邊日期可以輸入掩碼顯示格式,點擊輸入掩碼后邊彈出窗體,選擇長日期下一步即可設定提起掩碼。輸入掩碼圖如圖3-24所示。

圖3-24輸入掩碼圖

經過數據屬性的設計,對數據進行錄入之后車主信息表的數據表,數據表視圖如圖3-25所示。

圖3-25數據表視圖

3.4.2車主信息窗體設計

車主信息窗體主的控件布局視圖,車主信息窗體設計視圖如圖3-26所示。

圖3-26車主信息窗體設計視圖

車主信息窗體包括十個標簽控件,十個文本控件,六個按鈕控件,一個ADO控件,一個DataGrid控件。

選擇Form窗體在屬性中把Caption改為車輛信息管理系統。

標簽控件Label1屬性中Caption 后邊改為車牌號,標簽控件Label2屬性中Caption 后邊改為車牌類型,標簽控件Label3屬性中Caption 后邊改為性別, 標簽控件Label屬性

華北水利水電大學畢業設計

中Caption 后邊改為籍貫,標簽控件Label5屬性中Caption 后邊改為車主姓名,標簽控件Label6屬性中Caption 后邊改為證件有效期,標簽控件Label7屬性中Caption 后邊改為駕駛年齡,標簽控件Label8屬性中Caption 后邊改為證件號,標簽控件Label9屬性中Caption 后邊改為出生日期,標簽控件Label10屬性中Caption 后邊改為發證日期,公共屬性Font字體設置為宋體2號字體,Alignment設置為2-Center,Autosize設置為True.BackStyle選擇為0-Transparent.文本控件Text1對應車牌號標簽,文本控件Text2對應車輛類型標簽,文本控件Text3對應車主姓名標簽,文本控件Text4對應性別標簽,文本控件Text5對應出生日期標簽,文本控件Text6對應證件有效期標簽,文本控件Text7對應籍貫標簽,文本控件Text8對應駕駛年齡標簽,文本控件Text9對應發證日期標簽,文本控件Text10對應證件號標簽。公用屬性設置中把Text對應的名字刪除,字體選擇宋體常規三號字體。

按鈕控件Command1屬性中Caption 后邊改為查詢, 按鈕控件Command2屬性中Caption 后邊改為返回 ,公用屬性Font字體設置為宋體三號字體。

按鈕控件Command3屬性中Caption 后邊改為添加 按鈕控件Command4屬性中Caption 后邊改為修改 ,按鈕控件Command5屬性中Caption 后邊改為刪除,按鈕控件Command6屬性中Caption 后邊改為返回 ,公用屬性Font字體設置為宋體三號字體。Visible設置為False。Style設置1-Graphical,BackColor可以設置想要的顏色。

車主,年檢,保險,違章,事故。六個按鈕控件屬性設置是相同的其他窗體出現不再贅述。標簽控件和文本控件的公用屬性相同在其他窗體不再贅述。

ADO控件的操作與上邊的數據連接操作相同只有表記錄選擇改變,ADO控件記錄選擇車主屬性頁如圖3-27所示。

華北水利水電大學畢業設計

圖3-27車主屬性頁

3.5年檢信息管理窗體

3.5.1年檢信息表

年檢信息:包括從購車到現在所有的年間信息,年檢信息E-R圖如圖3-28所示。

圖3-28年檢信息E-R圖

年檢記錄表的設計為文本屬性,年檢記錄表設計視圖如圖3-29所示。

圖3-29年檢記錄表設計視圖

年檢記錄的數據輸入之后,年檢記錄數據表視圖如圖3-30所示。

圖3-30年檢記錄數據表視圖

華北水利水電大學畢業設計

3.5.2年檢記錄窗體設計

年檢記錄窗體的控件布局,年檢記錄窗體設計視圖如圖3-31所示。

圖3-31年檢記錄窗體設計視圖

年檢信息窗體包括七個標簽控件,七個文本控件,六個按鈕控件,一個ADO控件,一個DataGrid控件。

選擇Form窗體在屬性中把Caption改為年檢記錄。

標簽控件Label1屬性中Caption 后邊改為車牌號,標簽控件Label2屬性中Caption 后邊改為檢查日期,標簽控件Label3屬性中Caption 后邊改為檢查日期,標簽控件Label4屬性中Caption 后邊改為檢查日期,標簽控件Label5屬性中Caption 后邊改為備注,標簽控件Label6屬性中Caption 后邊改為備注,標簽控件Label7屬性中Caption后邊 改為備注。

文本控件Text1對應車牌號標簽,文本控件Text2對應檢查日期標簽,文本控件Text3對應檢查日期標簽,文本控件Text4對應檢查日期標簽,文本控件Text5對應備注標簽,文本控件Text6對應備注標簽,文本控件Text7對應備注標簽。

ADO控件的操作與上邊的數據連接操作相同只有表記錄選擇改變,ADO控件記錄選擇年檢屬性頁如圖3-32所示。

華北水利水電大學畢業設計

圖3-32年檢屬性頁

3.6事故信息管理窗體

3.6.1事故信息表

事故信息:包括事故的時間,地點,原因。對方姓名,對方的車號,處理方式,責任認定等信息。事故信息E-R圖如圖3-33所示。

圖3-33事故信息E-R圖

事故信息的數據屬性設置,事故信息設計視圖如圖3-34所示。

圖3-34事故信息設計視圖

華北水利水電大學畢業設計

事故信息輸入數據,事故信息數據表視圖如圖3-35所示。

圖3-35事故信息數據表視圖

3.6.2事故信息窗體設計

事故窗體的控件布局,事故窗體設計視圖如圖3-36所示。

圖3-36事故窗體設計視圖

事故信息窗體包括九個標簽控件,九個文本控件,六個按鈕控件,一個ADO控件,一個DataGrid控件。

選擇Form窗體在屬性中把Caption改為事故記錄。

標簽控件Label1屬性中Caption 后邊改為車牌號,標簽控件Label2屬性中Caption 后邊改為事故時間,標簽控件Label3屬性中Caption 后邊改為事故地點,標簽控件Label4屬性中Caption后邊改為事故原因,標簽控件Label5屬性中Caption 后邊改為對方車號,標簽控件Label6屬性中Caption 后邊改為對方姓名,標簽控件Label7屬性中Caption 后邊改為處理方式,標簽控件Label8屬性中Caption后邊 改為責任認定,標簽控件Label9屬性中Caption后邊改為賠付內容, 文本控件Text1對應車牌號標簽,文本控件Text2對應事故時間標簽,文本控件Text3對應事故地點標簽,文本控件Text4對應事故原因標簽,文本控件Text5對應對方車號標簽,文本控件Text6對應對方姓名標簽,文本控件Text7對應處理方式標簽,文本控件Text8對應責任認定標簽,文本控件Text9對應賠付內容標簽。

華北水利水電大學畢業設計

ADO控件的操作與上邊的數據連接操作相同只有表記錄選擇改變,ADO控件記錄選擇事故屬性頁如圖3-37所示。

圖3-37事故屬性頁

3.7違章信息管理窗體

3.7.1違章信息表

違章信息:包括違章的原因,處罰,時間,扣分情況,處理情況等等均在本模塊顯示。違章信息E-R圖如圖3-38所示:

圖3-38違章信息E-R圖

違章信息的數據屬性設置,違章信息表設計視圖如圖3-39所示。

圖3-39違章信息表設計視圖

違章信息輸入數據后數據表視圖,違章信息數據表視圖如圖3-40所示。

華北水利水電大學畢業設計

圖3-40違章信息數據表視圖

3.7.2違章信息窗體設計

違章信息窗體的控件布局設置,違章信息窗體設計視圖如圖3-41所示。

圖3-41違章信息窗體設計視圖

違章信息窗體包括六個標簽控件,六個文本控件,六個按鈕控件,一個ADO控件,一個DataGrid控件。

選擇Form窗體在屬性中把Caption改為違章記錄。

標簽控件Label1屬性中Caption 后邊改為車牌號,標簽控件Label2屬性中Caption 后邊改為違章原因,標簽控件Label3屬性中Caption 后邊改為違章時間,標簽控件Label4屬性中Caption 后邊改為處罰,標簽控件Label5屬性中Caption 后邊改為扣分,標簽控件Label6屬性中Caption 后邊改為備注, 文本控件Text1對應車牌號標簽,文本控件Text2對應違章原因標簽,文本控件Text3對應違章時間標簽,文本控件Text4對應處罰標簽,文本控件Text5對應扣分標簽,文本控件Text6對應備注標簽。

華北水利水電大學畢業設計

ADO控件的操作與上邊的數據連接操作相同只有表記錄選擇改變,ADO控件記錄選擇,違章屬性頁如圖3-42所示。

圖3-42違章屬性頁

3.8保險信息管理窗體

3.8.1保險信息表

保險信息:這里主要包括了保險日期,類型,備注生效情況。保險信息E-R圖如圖3-43所示。

圖3-43保險信息E-R圖

保險信息表數據屬性的設置,保險信息表設計視圖如圖3-44所示。

華北水利水電大學畢業設計

圖3-44保險信息設計視圖

數據屬如之后的數據表視圖,數據表視圖如圖3-45所示。

圖3-45數據表視圖

3.8.2保險信息查詢窗體設計

保險信息窗體的控件布局設置視圖,保險信息設計視圖如圖3-46所示。

圖3-46保險信息設計視圖

保險信息窗體包括四個標簽控件,四個文本控件,六個按鈕控件,一個ADO控件,一個DataGrid控件。

選擇Form窗體在屬性中把Caption改為保險記錄。

標簽控件Label1屬性中Caption 后邊改為車牌號,標簽控件Label2屬性中Caption 后邊改為保險日期,標簽控件Label3屬性中Caption 后邊改為保險類型,標簽控件Label4屬性中Caption 后邊改為備注, 文本控件Text1對應車牌號標簽,文本控件Text2對應保險日期標簽,文本控件Text3對應保險類型標簽,文本控件Text4對應備注標簽。

華北水利水電大學畢業設計

ADO控件的操作與上邊的數據連接操作相同只有表記錄選擇改變,ADO控件記錄選擇保險屬性頁如圖3-47所示。

圖3-47保險屬性頁

華北水利水電大學畢業設計

第四章系統的具體實現與結論

通過第三章的設計和制作,車輛信息管理系統以設計完成。現在進行系統功能的演示。本章重點:對軟件調試,生成應用程序,程序功能的演示與注釋。

4.1軟件調試

打開工程之后,點擊任務欄上的運行,啟動進行程序調試圖如圖4-1所示。

圖4-1調試圖

當所有程序運行正常時。點擊任務欄的運行結束運行,點擊文件下拉列表里邊有生成應用程序。保存文件名稱為車輛信息管理系統,保存到桌面成工程界面如圖4-2生所示。

華北水利水電大學畢業設計

圖4-2生成工程界面

生成桌面應用程序桌面圖如圖4-3所示,到此設計全部完成。

圖4-3桌面圖

4.2系統演示

4.2.1系統注冊與登錄

1,系統注冊演示:打開車輛信息管理應用程序,點擊注冊按鈕即可進入系統注冊窗體如圖4-4所示。通過注冊窗體用戶可以注冊新用戶使用本系統,點擊注冊會有注冊成功的提示并且跳轉到登錄窗體,返回可以返回到登錄窗體。

華北水利水電大學畢業設計

圖4-4系統注冊窗體

2,系統登錄演示:打開車輛信息管理程序首先是系統登陸窗體,登錄窗體實現對帳號密碼的判定,如果輸入為空則提示重新輸入,登錄成功若是普通用戶即進入普通用戶窗體,若是管理員用戶則進入管理員窗體。注冊按鈕可以進入注冊窗體。系統登陸窗體如圖4-5所示。

圖4-5系統登陸窗體

4.2.2普通用戶窗體

普通用戶登陸進入普通用戶窗體,該窗體有菜單欄按鈕,包括車主信息,年檢記錄,保險記錄,事故記錄,違章記錄,退出系統選項。可以進入對應的窗體,退出系統可退出系統。界面上的車主信息按鈕可以進入車主信息查詢窗體,年檢記錄按鈕可以進入年

華北水利水電大學畢業設計

檢記錄查詢窗體,保險記錄可以進入保險記錄查詢窗體,事故記錄按鈕可以進入事故記錄查詢按鈕,違章記錄按鈕可以進圖違章記錄查詢窗體,退出按鈕就是退出程序,普通用戶窗體運行圖如圖4-6所示。

圖4-6普通用戶窗體

車主信息查詢窗體可以對車輛的類型,車主姓名,性別,籍貫,出生日期,證件號,發證日期,證件有效期,駕駛年齡等信息進行查詢。車主信息查詢窗體運行程序如圖4-7所示。

華北水利水電大學畢業設計

圖4-7車主信息查詢窗體

年檢記錄查詢窗體可以對車輛近幾年的年檢記錄日期和備注信息進行查詢,年檢記錄查詢窗體運行程序如圖4-8所示。

圖4-8年檢記錄查詢窗體

保險記錄查詢窗體可以對車輛的保險日期,保險類型,保險備注信息進行查詢。保險記錄查詢窗體運行程序如圖4-9所示。

華北水利水電大學畢業設計

圖4-9保險記錄查詢窗體

事故記錄查詢窗體可以對車輛的事故時間,地點,原因,對方車號,對方姓名,處理方式,責任認定,賠付內容進行查詢。事故記錄查詢窗體運行程序如圖4-10所示。

圖4-10事故記錄查詢窗體

違章記錄查詢窗體可以對車輛的違章原因,時間,處罰,扣分,備注信息查詢。違章記錄查詢窗體程序運行如圖4-11所示。

華北水利水電大學畢業設計

圖4-11違章記錄查詢窗體

4.2.3管理員窗體

管理員登錄管理員窗體。管理員窗體有菜單欄按鈕,包括車主信息管理,年檢記錄管理,保險記錄管理,事故記錄管理,違章記錄管理,用戶信息管理,界面切換管理,退出系統選項。可以進入對應的窗體,退出系統可退出系統。界面上的車主信息管理按鈕可以進入車主信息管理窗體,年檢記錄管理按鈕可以進入年檢記錄管理窗體,保險記錄管理可以進入保險記錄管理窗體,事故記錄管理按鈕可以進入事故記錄管理按鈕,違章記錄管理按鈕可以進圖違章記錄管理窗體,切換普通界面就是切換至普通用戶窗體,管理員窗體視圖窗體程序運行如圖4-12所示。

圖4-12管理員窗體

華北水利水電大學畢業設計

車主信息管理窗體可以對車輛的類型,車主姓名,性別,籍貫,出生日期,證件號,發證日期,證件有效期,駕駛年齡等信息進行查詢,修改,添加和刪除操作。車主信息管理窗體程序運行如圖如圖4-13所示。

圖4-13車主信息管理窗體

年檢記錄管理窗體可以對對車輛近幾年的年檢記錄日期和備注信息進行查詢,添加修改和刪除操作,年檢記錄管理窗體運行程序如圖4-14所示。

圖4-14年檢記錄管理窗體

保險記錄管理窗體可以對車輛的保險日期,保險類型,保險備注信息進行查詢,添加,修改,刪除操作。保險記錄管理窗體運行程序如圖4-15所示。

華北水利水電大學畢業設計

圖4-15保險記錄管理窗體

事故記錄管理窗體可以對車輛的事故時間,地點,原因,對方車號,對方姓名,處理方式,責任認定,賠付內容進行查詢,添加,修改,刪除操作。事故記錄管理窗體程序運行如圖4-16所示。

圖4-16事故記錄管理窗體

違章記錄管理窗體可以對車輛的違章原因,時間,處罰,扣分,備注信息查詢,添加,修改和刪除操作。違章記錄管理窗體程序運行如圖4-17所示。

華北水利水電大學畢業設計

圖4-17違章記錄管理窗體

用戶信息管理窗體可以對用戶的信息進行查詢,設置管理員,刪除用戶操作。用戶信息管理窗體程序運行如圖4-18所示。

圖4-18用戶信息管理窗體

華北水利水電大學畢業設計

華北水利水電大學畢業設計

第五章結論

本次設計是車輛信息管理系統的設計,車輛信息管理系統是對車輛信息信息進行有效的管理的最高效的處理工具。信息管理學系統發展到今天,其技術已經成熟。但是對于我們還沒踏出校門的大學生來說。其中的設計思想還是值得我們去學習和研究的。

對于本設計的車輛信息管理系統來說,其特點是管理信息覆蓋所有車輛相關的信息,系統的整體設計條理清晰,分層次分模塊設計。三個層次登錄,主窗體,子查詢窗體和子管理窗體。登錄部分包括登錄和注冊,主窗體部分包括普通用戶窗體和管理員窗體。子查詢窗體包括普通用戶可以對車輛的相關信息進行查詢,子管理窗體可以對信息進行處理操作。五個模塊分別是車主信息,年檢信息,違章信息,事故信息,保險信息。另外我還在各個窗體上添加了時間的顯示控件,可以讓我們使用程序可以很方便的看到時間,除了在文本控件中顯示信息之外,我還在窗體控件中添加了表格。在我們進行查詢和修改時可以更加的直觀去了解車輛相關信息。

緊張忙碌的畢業設計已經接近尾聲,我所設計的車輛信息管理系統也已經完成。經過這次畢業設計我發現信息管理系統是通用的,不僅僅是車輛信息管理對于以后我們進入公司也可以制作相應員工信息管理系統,進出場物料信息管理系統等等。都可以稍加更改即可開發成功。另外本系統還可以與車牌號識別系統進行結合做成小型社區門禁系統。在小型社區車輛信息管理方面能得到廣泛的應用。但是由于畢業設計的時間較短,用戶界面還不夠完美,系統的反應速度不是很快。開始設計資料查找出錯浪費了好多時間,這些在以后的工作中都要避免。

經過本次為期半年的畢業設計,使自主學習的能力有了很大的提升,并且與同學之間的團結協作能力也有了很大的提高。我相信在以后的工作當中,我一定可以吧所學的知識融入到工作當中去,理論聯系實踐。把所學的理論知識充分的發揮,學以致用。為社會主義的建設貢獻自己的一份力量。

華北水利水電大學畢業設計

華北水利水電大學畢業設計

參考文獻

[1]:王世迪.Visual Basic程序設計教程[M].重慶:重慶大學出版社,2002.26-106 [2]:蔡翠平.Visual Basic程序設計[M].北京:清華大學出版社,2002.1-24 [3]:任芳芳,姚建軍,陳江等.圖解精通ACCESS2007中文版[M].北京:中國水利水電出版社,2008.26-28 [4]:明日科技.Visual Basic管理信息系統完整項目實例剖析[M].北京:人民郵電出版社,2006.36-48 [5]:白鵬.Visual Basic編程實例與技巧[M].北京:科學出版社,2003.48-58 [6]:李言照.Visual Basic 程序設計教程[M].北京:中國農業出版社,2007.70-104 [7]:李雁翎.Visual Basic程序設計 [M].北京:清華大學出版社,2005.60-90 [8]:羅朝盛.Visual Basic 6.0程序設計教程[M].北京:人民郵電出版社,2005.50-70 [9]:唐大仕.Visual Basic 程序設計[M].北京:清華大學出版社,2004.20-50 [10]:王樵民.ACCESS2003數據庫開發典型范例[M].北京:人民郵電出版社,2006.40-80

華北水利水電大學畢業設計

華北水利水電大學畢業設計

致謝

為期一個學期的畢業設計即將就要結束了。在本次畢業設計中,我從指導老師張濤老師身上學到了很多東西。他循循善誘的指導給予我很大的啟迪,他在學習工作中嚴謹細致,一絲不茍的工作作風將一直是我學習的榜樣。張濤老師認真負責的工作態度,嚴謹的治學精神更和深厚的理論水平都使我受益頗深。無論在理論還是實踐上都給予我很大的幫助,讓我得到了很大的提高。這對我以后的工作和學習都是巨大的幫主,感謝他耐心的指導,及華北水水電大學為我們提供的設計環境。并感謝我們一組的其他同學從他們身上我學到了很多東西并且培養團隊合作的精神。最后我還要感謝我的父母是他們一直在背后默默地支持我。畢業設計做為大學的最后一個教學環節。是對我們動手實踐能力,理論結合實踐的能力一個很好的檢驗方法。在這次的畢業設計過程中,我通過自己的努力學習,在老師的細心指導下,加上本小組同學的探討。讓我不僅在知識水平和解決實際問題的能力上有了很大的提高,認識到綜合掌握知識和合理運用知識解決實際問題的重要性。

下載VB+Access學生公寓管理系統-論文word格式文檔
下載VB+Access學生公寓管理系統-論文.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    學生信息管理系統全套(VB+ACCESS)

    學生信息管理系統全套(VB+ACCESS) [ 作者:Admin 來源:博景源 點擊數: 學生信息管理系統是典型的信息管理系統 (MIS),其開發主要包括后臺數據庫的建 2464 更新時間:2008-1-11 ] 立和......

    VB+ACCESS人事工資管理系統(精選五篇)

    05春計算機專業畢業論文第一章緒 論1.1 信息化的發展1.2 系統開發背景1.3 課題研究的目的1.4 系統設計的指導思想第二章人事管理系統的問題2.1人事管理系統的簡介2.2人事管......

    開題報告 學生公寓管理系統

    本科生畢業論文(設計)開題報告書題目高校學生公寓管理系統學生姓名 _李雙學號200817020120專業班級信管 08101班指導老師黃鐵2011年 11月......

    學生公寓管理系統立項報告

    學生公寓管理系統系統開發立項報告一.現行系統概述鄭州航院信息統計職業學院學生公寓管理對學生的信息登記、物品登記、來訪者信息登記等相關操作都采用手工操作,這樣的操作......

    學生公寓管理系統可行性報告

    學生公寓管理系統可行性報告一. 引言摘要隨著電腦的普及與使用,現在的管理也提升了一個檔次,漸漸實現了無紙化辦公,即從原來的人工記錄管理模式轉變為電腦一體化管理。高校是科......

    高校學生公寓管理系統設計

    畢業設計(論文)開題報告高校學生公寓管理系統設計學生姓名學號系別專業計算機畢業設計屆別指導教師職稱年月日......

    學生公寓管理系統需求分析說明書

    學生公寓管理系統需求概況 在學校面向現代化、面向世界、面向未來、面向互聯網的21世紀,現今社會是一個講究效率的社會,人們有很強的時間觀念,如果仍使用手工操作或使用相當繁......

    學生公寓管理

    學生公寓管理 1、學生公寓應該堅持什么的工作理念?A A 以人為本,育人為先 B 科學管理,育人為先 C 育人為先,物資獎勵 D 以人為本,科學管理 2、學生公寓應該堅持什么原則?D A 教......

主站蜘蛛池模板: 牲高潮99爽久久久久777| 亚洲熟妇少妇任你躁在线观看无码| 狠痕鲁狠狠爱2021在| 亚洲精品久久久久一区二区| 人妻无码不卡中文字幕在线视频| 国产又色又爽无遮挡免费软件| 国精品午夜福利视频导航| 在线看片免费人成视频播| 人妻无码中文字幕一区二区三区| 亚洲熟妇自偷自拍另欧美| 制服肉丝袜亚洲中文字幕| 亚洲性无码av在线| 少妇直播| 亚洲日韩av片在线观看| 国产女同疯狂作爱系列| 国产精品99久久免费观看| 午夜亚洲国产理论片中文飘花| 亚洲精品不卡无码福利在线观看| 精品亚洲欧美自拍| 亚洲国产成人无码av在线影院l| 中文字幕亚洲综合久久蜜桃| 强制高潮18xxxxhd日韩| 毛片在线播放a| 免费夜色污私人影院在线观看| 无码高潮爽到爆的喷水视频| 午夜福利午夜福利1000| 99久热国产精品视频尤物| 久久久久久人妻精品一区二区三区| 牲交欧美兽交欧美| 狠狠人妻久久久久久综合蜜桃| 国产精品午夜剧场免费观看| 国产午夜av秒播在线观看| 性久久久久久| 人人摸人人搞人人透| 欧美日韩一区二区免费视频| 海角国精产品一区一区三区糖心| 欧美人与动牲猛交xxxxbbbb| 牛和人交xxxx欧美| 麻豆精品国产精华精华液好用吗| 亚洲另类自拍丝袜第五页| 亚洲人成色4444在线观看|