已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
畢業(yè)設(shè)計(論文)題目 公交駕駛員安全信息管理系統(tǒng) 系 別 專 業(yè) 班 級 姓 名 學(xué) 號 指導(dǎo)教師(職稱) 日 期 *大學(xué)第一章需求分析11 引言 面對復(fù)雜的公交駕駛員安全信息方面的信息,數(shù)據(jù)。而就目前的現(xiàn)狀,全部是人工靠手工記錄的方式記錄和處理這些數(shù)據(jù)。這給公交公司帶來很多問題:(1)駕駛員信息不能及時反饋到公司上層機構(gòu)。(2)對駕駛員的信息經(jīng)過多年積累,出現(xiàn)很大的數(shù)據(jù)冗余。(3)對駕駛員的信息管理,公交公司得花很大的人力和物力去進(jìn)行管理。(4)公交公司的駕駛員信息,公司管理層需要得到及時的決策,而這些信息不能夠很快得到。而就現(xiàn)代社會的發(fā)展要求,給現(xiàn)在地的公交公司建立一個駕駛員安全信息管理系統(tǒng)勢在必行。實現(xiàn)公交公司駕駛員安全信息管理的現(xiàn)代化,信息化。這對公交公司:(1) 給管理層和決策層提供詳細(xì)和準(zhǔn)確的數(shù)據(jù)(2) 不再是靠以前的人工紙章記錄方式,節(jié)省的大量紙張資源。(3) 數(shù)據(jù)不再會出現(xiàn)過多冗余,對于各種信息能夠及時更新。(4) 對公交公司管理層管理公司駕駛員會具有及時,可靠,準(zhǔn)確,詳細(xì)的各種信息。12 可行性分析(1).經(jīng)濟的可行性分析公交公司只需投入少量資金做系統(tǒng)的開發(fā),而在系統(tǒng)運行到公司,公司只需有一名系統(tǒng)管理員就夠了,這對公司節(jié)省了很多的人力開支。所以,從經(jīng)濟方面,這是可行的。(2).技術(shù)的可行性分析 Visual Basic6.0是微軟推出的基于窗口的可視化開發(fā)工具。Visual所指的是開發(fā)圖形用戶界面的可視化方法,無需寫大量源代碼去描述用戶界面元素的外觀和位置,而只要把預(yù)先建立好的控件對象拖入到設(shè)計窗體上,著就是可視化。Visual Basic是Windows下最快捷,便利的通用開發(fā)工具之一,它具有智能特性集成開發(fā)環(huán)境。VB6.0的特有四大特點:可視化,面向?qū)ο?,部件編程,事件?qū)動等。 Microsoft公司的Access數(shù)據(jù)庫管理系統(tǒng)是目前國內(nèi)使用較為普遍的一種數(shù)據(jù)庫軟件。它既是一個獨立的數(shù)據(jù)庫平臺也是一個強大的數(shù)據(jù)庫開發(fā)工具,可以用來開發(fā)定制客戶機/服務(wù)器數(shù)據(jù)庫應(yīng)用程序。它包括了30多個向?qū)Э梢詧?zhí)行許多常見的任務(wù),如創(chuàng)建窗體,報表和查詢。Access數(shù)據(jù)庫在設(shè)計大量的用戶或頻繁的操作時,它的性能和可靠性會大幅度下降。 從以上兩點可以看出,以 Visual Basic6.0作為開發(fā)前臺,Access數(shù)據(jù)庫作為后臺來開發(fā)這套駕駛員安全信息管理系統(tǒng)在技術(shù)上是可行的。13 需求概述:(1) 瀏覽功能:以列表的形式顯示各種記錄。(2) 條件查詢功能:用戶可以任意選擇字段進(jìn)行各種查詢,本功能只可對管理員開放(3) 修改功能: 可修改任意字段,但逐漸不許為空,只對管理員開放(4) 添加功能:可以添加符合本系統(tǒng)任何信息記錄,只對管理員開放 (5) 刪除功能:可以刪除本系統(tǒng)任何一條或多條記錄,只對管理員開放 (6) 密碼管理:只能由管理員去管理密碼的各種操作 (7) 身份驗證功能:進(jìn)入系統(tǒng)后,對用戶的身份權(quán)限進(jìn)行驗證,保證用戶合法并具有權(quán)限級別。(8) 系統(tǒng)幫助功能: 為普通用戶提供使用本系統(tǒng)的功能 第二章 系統(tǒng)設(shè)計21模塊設(shè)計根據(jù)本系統(tǒng)的需求,結(jié)合實際中公交公司駕駛員安全信息管理的情況,本系統(tǒng)應(yīng)該具有一下功能:(1)用戶管理本系統(tǒng)用戶可以分二類用戶:普通類用戶(1),管理員類用戶(0)a. 駕駛員用戶 也就是公交駕駛員用戶,當(dāng)前系統(tǒng)中所有駕駛員。其用戶名為駕駛員姓名,密碼為駕駛員編號。該類用戶只能瀏覽自己的各種信息,不能對數(shù)據(jù)進(jìn)行任何的其他操作,也不能訪問其他駕駛員的信息。b. 管理員類用戶 也就是本系統(tǒng)的實際操作員和管理員,可實施信息的錄入,查找,刪除,修改,查詢等各項功能,并能根據(jù)實際需要實現(xiàn)對報表的打印工作。在最初的管理員的允許下,可實現(xiàn)新管理員的注冊。(2)駕駛員基本信息模塊設(shè)計此模塊將對駕駛員的基本信息做詳細(xì)的信息錄入,并包括增加,刪除,修改,瀏覽。查詢和報表生成的權(quán)限管理,此模塊駕駛員只能瀏覽自己的個人信息,并也有打印自己的信息的權(quán)限(3)安全公里數(shù)和年審模塊此模塊可對公交駕駛員的安全公里數(shù)和年審的信息錄入,并可進(jìn)行各項管理,普通用戶只能以瀏覽自己本人的基本信息,而管理員用戶可以進(jìn)行信息的錄入,修改,刪除,并可做查詢和報表生成以及打印工作。(4)獎懲管理模塊此模塊可對公交駕駛員的獲獎和懲罰信息做詳細(xì)發(fā)記錄,同樣也有各種管理功能,管理員用戶可以對此模塊的各種信息數(shù)據(jù)進(jìn)行增加,修改,刪除并可做查詢以及報表生成功能。普通用戶可以對自己的信息進(jìn)行瀏覽,以及自己的信息報表生成(5)違章肇事管理模塊此模塊可以對公交駕駛員的違章以及肇事信息做詳細(xì)的記錄,并也具有各種管理功能和瀏覽功能。普通用戶只能最自己的信息做瀏覽和報表生成。而管理員用戶可以對此模塊的各條信息進(jìn)行增加,刪除,修改和查詢以及報表生成。各功能模塊圖如圖一: 圖一2 2開發(fā)環(huán)境結(jié)合所要開發(fā)的系統(tǒng)的特點和此次畢業(yè)設(shè)計任務(wù)要求,系統(tǒng)采用將使用Visual Basic 6.0中文版作為開發(fā)工具,后臺數(shù)據(jù)庫則采用Access 200023系統(tǒng)的整體流程根據(jù)公交公司駕駛員的實際流程和設(shè)計任務(wù),結(jié)合上述的各功能模塊,系統(tǒng)的整體流程如圖二:流程處理說明:1. 系統(tǒng)啟動時,激活身份驗證模塊2. 通過身份驗證后,對系統(tǒng)初始化,根據(jù)系統(tǒng)配置文件將數(shù)據(jù)庫導(dǎo)入3. 系統(tǒng)進(jìn)入主窗體,通過事件驅(qū)動機制激活各功能模塊,并執(zhí)行指定模塊2.4 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫采用了Microsoft推出的Access數(shù)據(jù)庫,這是微軟集成到Office中的一個桌面數(shù)據(jù)庫,能夠快速方便的和Office的其他套件綜合使用。由于Access具有顯著的簡易性和有效性,大量的桌面數(shù)據(jù)庫系統(tǒng)都采用Access作為后臺數(shù)據(jù)庫。使用Access的好處還在于,如果你的系統(tǒng)擴展到Client/Server模式的時候,可以使用Microsoft的數(shù)據(jù)庫服務(wù)器軟件SQL Server,此時,程序只需要簡單的修改一下鏈接(ADO的數(shù)據(jù)源)就可以,這樣,為程序的平滑擴展提供了非常有力的條件。2.4.1本系統(tǒng)涉及到的主要實體有五個數(shù)據(jù)表:“基本”表員工編號,姓名,出生日期,性別,政治面貌,文化程度,駕駛證號,身份證號,準(zhǔn)駕車型,登記日期,單位,星級,備注“安全與年審”表編號,員工編號,上半年里程數(shù),下半年里程數(shù),年度,審驗日期,年審情況,備注“獎懲”表編號,員工編號,獎懲類型,獎懲名稱,獎懲日期,授予單位,備注“違章肇事”表編號,員工編號,違肇類型,違肇事日期,車型,經(jīng)過情況,處理結(jié)果,駕駛證情況,吊銷期限,吊扣期限,備注“用戶”表用戶編號,用戶名,密碼,權(quán)限,備注2.4.2各表的物理結(jié)構(gòu)如下: 駕駛員基本信息表(表一)字段名稱類型長度默認(rèn)值備注員工編號字符4無主鍵姓名文本8無可以為空出生日期日期無可以為空性別文本2“男”可以為空政治面貌文本10無可選擇型文化程度文本10無可選擇型駕駛證號字符10無可以為空身份證號字符20無可以為空準(zhǔn)駕車型字符4無可以為空登記日期日期無可以為空單位文本20無可以為空星級文本10無可選擇型備注文本60無可以為空這里的“可選擇型”:在詳細(xì)設(shè)計時固定可選項,用戶只可選擇型的添入。駕駛員安全公里數(shù)和年審表(表二)字段名稱類型長度默認(rèn)值備注編號字符4無主鍵員工編號字符4無主鍵上半年里程數(shù)數(shù)字長整型無可以為空下半年里程數(shù)數(shù)字長整型無可以為空年度數(shù)字長整型無可以為空審驗日期日期無可以為空年審情況字符20無可以為空備注字符60無可以為空駕駛員獎懲表(表三)字段名稱類型長度默認(rèn)值備注編號字符4無主鍵員工編號字符4無主鍵獎懲類型字符2無可選擇型獎懲名稱字符10無可以為空獎懲日期日期無可以為空授予單位字符15無可以為空備注字符60無可以為空駕駛員違章肇事表(表四)字段名稱類型長度默認(rèn)值備注編號字符4無主鍵員工編號字符4無主鍵違肇類型字符2無可選擇型違肇日期日期無不可為空車型字符4無可選擇型經(jīng)過情況字符20無可以為空處理結(jié)果字符20無可以為空駕駛證情況字符4無可選擇型吊銷情況字符4無根據(jù)駕駛證情況吊扣情況字符4無根據(jù)駕駛證情況備注字符60無可以為空系統(tǒng)用戶信息表:(表五)字段名稱類型長度默認(rèn)值備注用戶編號字符4無主鍵用戶名字符20無可以為空密碼字符16無可以為空權(quán)限字符1無不可以為空備注字符20無可以為空2.4.3關(guān)系:數(shù)據(jù)庫之間的關(guān)系指明兩個庫之間共享一個共同的關(guān)鍵字值。一個連接是指一種虛擬的表,這種表是在當(dāng)用戶要求從相互關(guān)聯(lián)的各個不同的表中獲取信息時建立的,關(guān)鍵字段用于在相互連接的不同表中查找匹配的記錄,一個更高級的連接形式稱為自然連接。這種連接是指一個表被連接到它自己的一個字段,或在不同的記錄中由重復(fù)數(shù)據(jù)的組合字段。數(shù)據(jù)庫有三種不同類型的關(guān)鍵字:主關(guān)鍵字,組合關(guān)鍵字和外關(guān)鍵字。在表中使用的關(guān)鍵字類型用于描述庫表示什么以及在數(shù)據(jù)庫中如何與其他的庫建立關(guān)系。關(guān)系是數(shù)據(jù)庫查詢設(shè)計的基礎(chǔ)。關(guān)系數(shù)據(jù)庫中表之間的關(guān)系有一對一的關(guān)系,一對多的關(guān)系以及多對多的關(guān)系,其中前兩種是最為常用的兩種關(guān)系。從實際的公交駕駛員安全信息管理來說,上述所涉及到的各表之間存在著緊密的聯(lián)系,根據(jù)這一情況需要建立各個表相應(yīng)字段之間的關(guān)系。定義了以下幾組參照完整性:由于每個公交駕駛員具有多條獎懲信息,所以,基本表和獎懲表,是一對多的關(guān)系。由于每個駕駛員在多年的積累中有多條的年審和安全公里數(shù)記錄,因而也是一對多的關(guān)系。由于每個駕駛員在其任職期間具有多個違章肇事的信息,所以也具有一對多的關(guān)系,因而也屬于一多的關(guān)系。因為用戶表不屬于具體的實際,而只是本系統(tǒng)使用人員的各項信息記錄表,所以的單獨的,不與其他任何表有任何關(guān)系。各表之間的關(guān)系圖(圖三): 圖三E-R圖(圖四):由于每個駕駛員可擁有駕證多個,所駕駛的車也有多輛,所屬單位也有多家,所以一個駕駛員與這些信息的一對多的關(guān)系。 圖四第三章 軟件總體設(shè)計3.1程序瀏覽:3.1.1系統(tǒng)歡迎界面(圖五): 圖五說明:由于是Splash窗體,所以在各個控件的單擊事件中寫如打開下一窗體(登錄窗體)的代碼。運行本系統(tǒng),將出現(xiàn)Splash窗體,在本系統(tǒng)中由于沒有初始化工作需要做,所以Splash窗體只起展示屏幕的作用。登錄界面:如果用戶在Splash窗體上單擊查上是任何部分或者按下任何一個鍵,將退出Splash窗體,并進(jìn)入系統(tǒng)登錄窗體。本系統(tǒng)的用戶分為兩種,管理員用戶和駕駛員用戶,使用者可以在組合框中選擇所要登錄的用戶類型,并輸入相應(yīng)的用戶名和密碼。3.1.2 登陸界面(圖六)圖六3.1.3主窗體界面: 附:菜單設(shè)計(圖七)考慮到系統(tǒng)使用的方便和快速使用,我們設(shè)計了菜單以便用戶使用(并設(shè)有快捷鍵):圖七 在登錄窗中如果用戶登錄成功將會出現(xiàn)以下窗體(圖八):圖八 用戶以管理員身份登陸后界面(圖九): 圖九用戶以駕駛員身份登陸后界面(圖十): 圖十如果單擊幫助菜單,系統(tǒng)將顯示系統(tǒng)歡迎界面(Splash窗體),但是此時單擊系統(tǒng)歡迎界面(Splash窗體),則將退出Splash窗體并直接返回到主窗體中,而不會出現(xiàn)登錄窗體。駕駛員信息管理窗體:報表界面:3.2建立數(shù)據(jù)庫連接3.2.1本系統(tǒng)將使用ADO作為數(shù)據(jù)連接的手段,在使用ADO之前,必須在工程中添加對ADO的引用 ADO簡介 ActiveX Data Objects(ADO) 是微軟公司最新的數(shù)據(jù)庫訪問技術(shù)。它被設(shè)計用來同新的數(shù)據(jù)訪問層OLE DB Provider一起協(xié)同工作,以提供通過數(shù)據(jù)訪問(Universal Data Access)。OLE DB是一個低層的數(shù)據(jù)訪問接口,用它可以訪問各種數(shù)據(jù)源,包括傳統(tǒng)的關(guān)系型數(shù)據(jù)庫以及電子郵件系統(tǒng)及自定義的商業(yè)對象。同傳統(tǒng)的數(shù)據(jù)對象層次(DAO和RDO)不同,ADO可以獨立創(chuàng)建,因此可以只創(chuàng)建一個Connection對象,但是可以有多個,獨立的Recordset對象來使用它。ADO 針對客戶/服務(wù)器以及Web 應(yīng)用程序作了優(yōu)化。以前的對象模型,如DAO和RDO是層次型的。在創(chuàng)建一個對象的實例之前,不能創(chuàng)建DAO Recordset對象的實例。但ADO卻不同,它定義了一組平面型頂級對象。最重要的3個ADO對象是Connection,Recordset和Command。在本系統(tǒng)中重要使用了Connection和Recordset兩個對象。每個Connection的屬性定義了與數(shù)據(jù)源的連接。Recordset對象接收來自數(shù)據(jù)源的數(shù)據(jù)。Recordset可以與Connection 一起使用,先建立一個連接,然后獲取數(shù)據(jù)。Recordset也可以被單獨創(chuàng)建,其connection參數(shù)可以在open屬性定義。 使用ADO連接Jet為了使用ADO連接一個Jet 數(shù)據(jù)庫,必須使用如下字符串:Provider=MSODAORA.1;Data source=vb6db.A如果在數(shù)據(jù)庫中指定了用戶級的安全性,并且希望在連接字符串中包括用戶ID和用戶密碼信息,也可以包括“User ID=”和“Password=”關(guān)鍵字,或者可以把它們作為Open 方法的參數(shù)。當(dāng)然,也可以使用Data LinkerProperties窗口來配置Jet提供者。選擇與使用的Jet版本相應(yīng)的提供者(參見圖29。1),單擊Next按鈕后,輸入數(shù)據(jù)庫的名字和訪問此數(shù)據(jù)庫所必需的用戶名和密碼。如果沒有實施用戶級的安全性,就應(yīng)該保留默認(rèn)的用戶名和密碼(密碼為空)。如果想檢測此連接,單擊TestConnection按鈕。 如果指定了數(shù)據(jù)庫密碼,可以指定Data Linker Properties窗口中所有選項卡中的值。只需選擇Jet OLEDB:Database Password字段,單擊Edit Value按鈕,并且輸入適當(dāng)?shù)闹怠?Jet安全性如同其他數(shù)據(jù)庫系統(tǒng)Jet 也內(nèi)置了自己的安全子系統(tǒng)。當(dāng)然,可以選擇使用此安全子系統(tǒng)或者忽略它。但如果計劃讓多于一個的用戶訪問數(shù)據(jù)庫,就應(yīng)該使此子系統(tǒng)。實際上,就算是只有一個用戶使用數(shù)據(jù)庫,也可以使用數(shù)據(jù)庫,也可以使用此安全系統(tǒng)。此安全子系統(tǒng)只是通過阻止用戶以任何其他的應(yīng)用程序打開數(shù)據(jù)庫來防止破壞數(shù)據(jù)庫。共享級安全性 在共享級安全性中,會給數(shù)據(jù)庫分配一個密碼,只有知道此密碼的用戶才能訪問此數(shù)據(jù)庫。當(dāng)然,它的安全性要低于用戶級安全性(接下來將要討論)。這種安全性體系將會阻止用戶以Excel或Access訪問數(shù)據(jù)庫。可以使用Access或Workspace對象中的DAOCreateDatabase方法來設(shè)置密碼,只需把字符串;pwd=MyPassword添加到Locale參數(shù)中的末尾以把數(shù)據(jù)庫密碼設(shè)置為MyPassword 。接下來,就應(yīng)該指定DAO OpenDatabase方法Connection參數(shù)中的密碼。在ADO中,通過使用;pwd=MyPassword關(guān)鍵字,只需指定密碼為Connnection字符串的一部分。用戶級安全性用戶級安全性與SOL Server和Oracle 8i中的安全性系統(tǒng)相似。系統(tǒng)為訪問數(shù)據(jù)庫的每一個用戶創(chuàng)建一個用戶ID和密碼,接下來,給每一個用戶ID給予訪問不同數(shù)據(jù)庫對象的權(quán)限。在用戶級安全性中,可以通過組來進(jìn)行管理??梢詣?chuàng)建一個組,并給予這個組適當(dāng)?shù)臋?quán)限,這就像是創(chuàng)建另一個用戶。接下來,就可以把組分配給不同的用戶ID。當(dāng)用戶登錄到數(shù)據(jù)庫中時,除了分配給每一個用戶自己的權(quán)限,他們還會繼承已經(jīng)分配給他們組的權(quán)限。3.3 數(shù)據(jù)環(huán)境設(shè)計器屬性設(shè)置; 3.3.1 在數(shù)據(jù)環(huán)境設(shè)計器中添加Connection1對象,查看其屬性,在“提供者”選項卡中選擇“Microsoft Jet 4.0 OLE Provider”項,如圖十一 圖十一 圖十二3.3.2 在“連接”選項卡中,在“數(shù)據(jù)庫名稱”中選擇jsy.mdb(這里數(shù)據(jù)庫的路徑和工程路徑在同一文件夾下),并選中“空白密碼”和“允許保存密碼”前面的單選框,如下圖所示。單擊“測試連接”按鈕,如果出現(xiàn)“連接成功”提示框,則表示設(shè)置成功,否則,需要檢查數(shù)據(jù)庫連接的設(shè)置。(如圖十二)經(jīng)過以上兩步設(shè)置,數(shù)據(jù)環(huán)境設(shè)計器的Connection數(shù)據(jù)連接的屬性設(shè)置如表六:對象屬性設(shè)置DEConnectionNameConnection1ConnectionStringCursorLocation3-adUseClient表六3.3.3 數(shù)據(jù)連接的初始化代碼在數(shù)據(jù)環(huán)境的初始化(Initialize)事件中,動態(tài)改變數(shù)據(jù)連Connection1的連接字段(ConnectionString)Private Sub DataEnvironment_Initialize() ADO中的數(shù)據(jù)連接所使用的字段 Dim strConn As String strConn = Provider=Microsoft.Jet.OLEDB.4.0;Password=;Data Source= strConn = strConn & App.Path & jsy.mdb & ;Persist Security Info=True Connection1.ConnectionString = strConn第四章 軟件詳細(xì)設(shè)計41 界面設(shè)計4.1.1歡迎窗體.在工程添加窗體form1.frm,并將其設(shè)置為啟動對象,該窗體上的控件及其屬性設(shè)置如表七。對象屬性設(shè)置FormNameForm1Caption公交駕駛員安全信息管理系統(tǒng)KeyPreviewTrueShowInTaskbarFalseStartUpPosition2-屏幕中心Label1nameLabel1caption公交駕駛員安全信息管理系統(tǒng)Label2nameLabel2caption開發(fā)環(huán)境:Visual Basic 6.0Label3nameLabel3caption數(shù)據(jù)環(huán)境: Access表七 4.1.2 .代碼設(shè)計本窗體主要具有兩個作用,其一為系統(tǒng)運行時的“關(guān)于”窗體,其二為系統(tǒng)啟動時的窗體,所以在“通用”部分定義模塊級的公共變量mbAbout,作為區(qū)別這來兩個作用的表識。 Option Explicit Public mbAbout As Boolean若mbAbout為true, 則表示為系統(tǒng)啟動時的窗體。若mbAbout為flase,則表示為系統(tǒng)運行時的“關(guān)于.”窗體。 UnloadForm子過程中,首先退出啟動窗體,然后對mbAbout做出判斷,如果mbAbout為false,即表示此時的窗體為Splash窗體,需要顯示登錄窗體,否則就表示該窗體為“關(guān)于”窗體,就不需要顯示登錄窗體。Sub UnloadForm1() Unload Me If Not mbAbout Then Form2.ShowEnd Sub以下各事件調(diào)用了UnloadForm1子過程Private Sub Form1_KeyPress(KeyAscii As Integer) UnloadForm1End SubPrivate Sub Label3_Click() UnloadForm1End SubPrivate Sub Label2_Click() UnloadForm1End SubPrivate Sub Label_Click(Index As Integer) UnloadForm1End Sub4.2 登錄窗體: 4.2.1 窗體個屬性設(shè)置如下:對象 屬性設(shè)置Form2 NameForm2Caption系統(tǒng)登錄Frame1Name Frame1Caption登錄Label1NameLabel1Caption用戶名:Label2NameLabel2Caption密碼:Password*Label3NameLabel3Caption選擇身份Text1NameText1Text2NameText2Combo1NameCombo1Text身份List管理員 公交駕駛員Command1NameCommand1Caption確定DefaultTrueCommand2NameCommand2Caption取消表八4.2.2 代碼設(shè)計 Option Explicit表示當(dāng)前用戶登錄所選擇的身份,即用戶類型0-表示管理員類用戶;1-表示普通類用戶Dim mnUserType As IntegerPrivate Sub Combo1_Change() mnUserType = Combo1.ListIndexEnd SubPrivate Sub Combo1_Click()mnUserType = Combo1.ListIndexEnd SubPrivate Sub Command1_Click()取得用戶輸入的用戶名和密碼 Dim user As String, pwd As String user = txtUser pwd = txtPwd 根據(jù)不同的身份,選擇不同的表用以查詢 Dim r As New ADODB.Recordset Set r = DataEnvironment1.rsygxm Dim strSQL As String Select Case mnUserType Case 0: 選擇身份為管理員 strSQL = select * from 用戶 where 用戶名= & user & and 口令= & pwd & Case 1: 選擇身份為駕駛員 strSQL = select * from 基本 where 姓名= & user & and 員工編號= & pwd & End Select On Error Resume Next If r.State = adStateOpen Then r.Close r.Open strSQL 用戶密碼錯誤的次數(shù),如果錯誤次數(shù)超過3次,則退出系統(tǒng) Static nTryCount As Integer If r.EOF Then 登錄失敗 MsgBox 對不起,無此用戶或者密碼不正確!請重新輸入!, vbCritical, 錯誤 txtUser.SetFocus txtUser.SelStart = 0 txtUser.SelLength = Len(txtUser) nTryCount = nTryCount + 1 If nTryCount = 3 Then MsgBox 您無權(quán)操作本系統(tǒng)!再見!, vbCritical, 無權(quán)限 Unload Me End If Else 登陸成功 顯示MDI窗體, 并將用戶類型和用戶名傳到MDI窗體中 Load MDIForm1 With MDIForm1 .mnUserType = Combo1.ListIndex .msUserName = pwd .Show End With Unload Me End IfEnd SubPrivate Sub Command2_Click() Unload MeEnd SubPrivate Sub Form_Load() Combo1.ListIndex = 0End Sub4.3 主窗體設(shè)計4.3.1主窗體個屬性設(shè)置如下:窗體屬性:對象屬性設(shè)置MDIForm1NameMDIForm1Caption公交駕駛員安全信息管理系統(tǒng)SartUpPosition3-窗口缺省表九菜單編輯:標(biāo)題名稱級別快捷鍵快捷方式管理員功能管理員功能一級駕駛員基本信息管理駕駛員基本信息管理二級E年審與安全公里數(shù)信息管理年審與安全公里數(shù)信息管理二極S駕駛員獎懲信息管理駕駛員獎懲信息管理二級J駕駛員違章肇事信息管理駕駛員違章肇事信息管理二級W用戶管理用戶管理二級Y重新登陸重新登陸二級C退出退出二級E駕駛員功能駕駛員功能一級基本信息基本信息二級B年審與安全公里數(shù)年審與安全公里數(shù)二級N獎懲信息獎懲信息二級M違章肇事信息違章肇事信息二級Z退出退出二級幫助幫助一級F1關(guān)于F2 表十4.3.2 代碼設(shè)計: 1定義模塊級變量: Option Explicit表示當(dāng)前的用戶類型0-管理員類型的用戶; 1-普通類型的用戶Public mnUserType As Integer表示當(dāng)前登錄的用戶名Public msUserName As String2判斷用戶權(quán)限,同時隱藏不可用的模塊。 Private Sub MDIForm_Activate()根據(jù)不同的用戶類型,使相應(yīng)的菜單項可見 Select Case mnUserType Case 0: 以管理員身份登錄 管理員功能.Visible = True 駕駛員功能 = True Case 1: 以駕駛員身份登錄, 只能查詢自己的信息 駕駛員功能.Visible = True 管理員功能 = False End SelectEnd Sub3 QueryUnload事件當(dāng)用戶要退出MDI窗體時,需要在QueryUnload事件中進(jìn)行訪問,詢問用戶是否真的要退出本系統(tǒng),如果用戶不要退出,則將Cancel值設(shè)為1 ,來取消整個退出過程。Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer) If MsgBox(真的要對出本系統(tǒng)嗎?, vbQuestion + vbYesNo + vbDefaultButton2, 退出) = vbNo Then Cancel = 1 End IfEnd Sub4“重新登錄”子菜單的代碼 用戶單擊了“重新登錄”,將會給出提示,如果用戶在提示框中按下“確定”按鈕,則退出整個MDI窗體,并顯示登錄窗體Private Sub 重新登陸_Click(Index As Integer)If MsgBox(若重新登錄,所有窗體都將關(guān)閉!是否重新登錄?, vbQuestion + vbYesNo + vbDefaultButton2, 重新登錄) = vbYes Then Unload MDIForm1 Form2.ShowEnd IfEnd Sub5 其他事件代碼 Private Sub 基本信息_Click()Form3.ShowEnd SubPrivate Sub 駕駛員基本信息管理_Click() Form4.SSTab1.Tab = 0 Form4.Frame1.Visible = True Form4.Frame15.Visible = TrueEnd SubPrivate Sub 駕駛員獎懲信息管理_Click()Form4.SSTab1 = 2Form4.Frame4.Visible = TrueForm4.Frame13.Visible = TrueEnd SubPrivate Sub 駕駛員違章肇事信息管理_Click()Form4.SSTab1 = 3Form4.Frame5.Visible = TrueForm4.Frame14.Visible = TrueEnd SubPrivate Sub 獎懲信息_Click()Form3.ShowEnd SubPrivate Sub 年審與安全公里數(shù)_Click()Form3.ShowEnd SubPrivate Sub 年審與安全公里數(shù)信息管理_Click()Form4.SSTab1 = 1Form4.Frame2.Visible = TrueForm4.Frame12.Visible = TrueEnd SubPrivate Sub 退出1_Click()Unload MeEnd SubPrivate Sub 違章肇事信息_Click()Form3.ShowEnd SubPrivate Sub 用戶管理_Click()Form4.SSTab1 = 4Form4.Frame8.Visible = TrueForm4.Frame15.Visible = TrueEnd Sub4.4 信息管理窗體用戶以管理員身份才可以訪問到此模塊。4.4.1 添加數(shù)據(jù)連接 在窗體實現(xiàn)代碼中,需要取得數(shù)據(jù)庫中的基本表的記錄。設(shè)置圖如圖十三圖十三 4.4.2窗體及個控件屬性設(shè)置如下:對象屬性設(shè)置Form4NameForm4Caption信息管理MDIChildTureSSTab1NameSSTab1Tab=0基本信息瀏覽Tab=1年審與安全公里數(shù)瀏覽Tab=2獎懲信息瀏覽Tab=3違章肇事信息瀏覽Tab=4用戶信息瀏覽表十一基本信息管理和瀏覽各控件屬性設(shè)置(由于篇幅的問題,這里只對基本表的設(shè)置列出)對象屬性設(shè)置DataGrid1NameDataGrid1DataSourceDataEnvironment1DataMember基本Caption信息瀏覽Frame1NameFrame1Caption基本信息管理Label1NameLabel1Caption員工編號Label2NameLabel2Caption姓名Label3NameLabel3Caption出生日期Label4NameLabel4Caption性別Label5NameLabel5Caption政治面貌Label6NameLabel6Caption文化程度Labe7NameLabel7Caption駕駛證號Label8NameLabel8Caption身份證號Label9NameLabel9Caption準(zhǔn)駕車型Label10NameLabel10Caption登記日期Label11NameLabel11Caption單位Label12NameLabel12Caption星級Label13NameLabel13Caption備注Text1NameText1DataField員工編號DateMember基本DataSourceDataEnvironment1Text2NameText2DataField姓名DateMember基本DataSourceDataEnvironment1Text3NameText3DataField出生日期DateMember基本DataSourceDataEnvironment1DataFormat日期Combo1NameCombo1DataField性別DateMember基本DataSourceDataEnvironment1List男 女Text4NameText4DataField政治面貌DateMemer基本DataSourceDataEnvironment1Combo2NameCombo2DataField文化程度DateMember基本DataSourceDataEnvironment1List初中 高中 大專 本科Text7NameText7DataField駕駛證號DateMember基本DataSourceDataEnvironment1Text8NameText8DataField身份證號DateMember基本DataSourceDataEnvironment1Combo3NameCombo3DataField準(zhǔn)駕車型DateMember基本DataSourceDataEnvironment1listA B C D E Text10NameText10DataField登記日期DateMember基本DataSourceDataEnvironment1Dataformat日期Text11NameText11DataField單位DateMember基本DataSourceDataEnvironment1Combo4NameCombo4DataField星級DateMember基本DataSourceDataEnvironment1list Text13NameText13DataField備注DateMember基本DataSourceDataEnvironment1MuLtiLineTrueFrame10NameFrame10Caption管理Command1NameCommand1Caption增加Command2NameCommand2Caption刪除Command3NameCommand3Caption修改Command4NameCommand4Caption查詢Frame12NameFrame12Caption瀏覽Command22NameCommand22CaptionCommand23Command23CaptionCommand25Command25Caption表十二4.4.2 代碼設(shè)計: 1模塊級變量聲明 Option ExplicitDim mbClose As Boolean 是否能關(guān)閉Dim msSerial As String 當(dāng)前編輯的駕駛員編號2基本表數(shù)據(jù)管理代碼設(shè)計 基本信息表代碼設(shè)計Private Sub Command1_Click()基本信息表增加DataEnvironment1.rs基本.AddNew Text1.SetFocus Frame1.Enabled = True Frame11.Enabled = False Command1.Enabled = False Command3.Enabled = False Command2.Enabled = False Command4.Enabled = True Command21.Caption = 取消 Command21.Enabled = True mbClose = FalseEnd SubPrivate Sub Command2_Click() 刪除On Error GoTo errHandler If MsgBox(要刪除記錄?, vbYesNo + vbQuestion + vbDefaultButton2, 確認(rèn)) = vbYes Then DataEnvironment1.Connection1.Execute delete from 基本 where 員工編號 = & Text1 & DataEnvironment1.rs基本.MoveNext If DataEnvironment1.rs基本.EOF Then DataEnvironment1.rs基本.MoveLast 刷新用戶導(dǎo)航的網(wǎng)格控件 Call RefreshGrid End If Exit Sub errHandler: MsgBox Err.Description, vbCritical, 錯誤End SubPrivate Sub Command3_Click() 修改 Frame1.Enabled = True Command1.Enabled = False Command3.Enabled = False Command2.Enabled = False Command4.Enabled = True Command21.Caption = 取消 更改為“取消更新”的狀態(tài) Command21.Enabled = True mbClose = False 不能關(guān)閉窗口End SubPrivate Sub Command4_Click() 更新 On Error GoTo errHandler: Dim str As String str = Text1.Te
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度夾板產(chǎn)品線上線下銷售合作協(xié)議4篇
- 二零二五年度民爆工程項目安全教育培訓(xùn)合同4篇
- 2025年度抖音平臺內(nèi)容創(chuàng)作者收益分成合同3篇
- 2025年度草原生態(tài)環(huán)境損害賠償與修復(fù)合同3篇
- 2025版高速公路橋梁錨桿錨鎖維護(hù)保養(yǎng)工程合同4篇
- 個人獨資企業(yè)清算協(xié)議書(2024版)
- 二零二五苗木種植基地建設(shè)與管理承包合同4篇
- 二零二五年度杭州房屋租賃市場租賃合同修改與補充服務(wù)協(xié)議3篇
- 生物安全實驗室建設(shè)與改造策略
- 教育科技對學(xué)生德業(yè)教育與心理健康的雙重影響
- 2025年安慶港華燃?xì)庀薰菊衅腹ぷ魅藛T14人高頻重點提升(共500題)附帶答案詳解
- 人教版(2025新版)七年級下冊數(shù)學(xué)第七章 相交線與平行線 單元測試卷(含答案)
- GB/T 44351-2024退化林修復(fù)技術(shù)規(guī)程
- 從跨文化交際的角度解析中西方酒文化(合集5篇)xiexiebang.com
- 中藥飲片培訓(xùn)課件
- 醫(yī)院護(hù)理培訓(xùn)課件:《早產(chǎn)兒姿勢管理與擺位》
- 空氣自動站儀器運營維護(hù)項目操作說明以及簡單故障處理
- 2022年12月Python-一級等級考試真題(附答案-解析)
- T-CHSA 020-2023 上頜骨缺損手術(shù)功能修復(fù)重建的專家共識
- Hypermesh lsdyna轉(zhuǎn)動副連接課件完整版
- 小學(xué)六年級數(shù)學(xué)計算題100道(含答案)
評論
0/150
提交評論