【正文】
驗(yàn)證用戶。驗(yàn)證用戶。驗(yàn)證用戶。 End SubOption ExplicitPrivate Declare Function FindWindow Lib user32 Alias FindWindowA (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Declare Function BringWindowToTop Lib user32 (ByVal hwnd As Long) As LongDim spath, ssource, sdest, s, sql1Private Sub MDIForm_Load() (3).Text = 當(dāng)前用戶是: amp。Data Source= amp。 If l = 3 Then Unload Me Else MsgBox 您的密碼有誤,請(qǐng)重新輸入!, vbExclamation End If End SubPrivate Sub cmd_qx_Click() Unload MeEnd SubPrivate Sub Command3_Click()Call cmd_qr_ClickEnd SubPrivate Sub Form_Load() MakeWindow Me l = 0 MyPath = fullpath() Set db1 = New Connection = adUseClient mysql = Provider=。 MyPath mysql Set adoPrimaryRS = New Recordset select * from user_set, db1, adOpenStatic, adLockOptimistic While Not u = adoPrimaryRS(user_xm) p = adoPrimaryRS(user_pw) If = u And = p Then user_name = user_limit = adoPrimaryRS(user_qx) Set adoPrimaryRS = Nothing Unload Me Exit Sub End If Wend l = l + 1 39。Persist Security Info=False。最后我還要感謝我的各位代課老師,是他們傳授了我知識(shí),教育了我,以及我的班主任老師和各位指導(dǎo)老師,在此衷心的謝謝你們!王老師嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵(lì)著我,對(duì)王老師的幫助和指導(dǎo),我在此表示真摯的感謝。附 錄致 謝本論文從選題到系統(tǒng)設(shè)計(jì),論文編寫,都是在王老師的親切關(guān)懷和悉心指導(dǎo)下完成的。通過(guò)這次開發(fā)使我對(duì)Visual 和Microsoft Access 2003數(shù)據(jù)庫(kù)有了更深的了解,對(duì)數(shù)據(jù)庫(kù)管理系統(tǒng)的實(shí)施方案和客戶、服務(wù)器(C/S)網(wǎng)絡(luò)設(shè)置進(jìn)行了實(shí)踐,理解了數(shù)據(jù)庫(kù)管理系統(tǒng)在實(shí)施過(guò)程的基本步驟、數(shù)據(jù)庫(kù)管理基本常識(shí),對(duì)我提高數(shù)據(jù)庫(kù)開發(fā)能力有很大的幫助。企業(yè)進(jìn)銷存物資管理系統(tǒng)從系統(tǒng)的嚴(yán)謹(jǐn)性、安全性、靈活性等方面考慮,生成一條物資鏈和資金鏈。從開始選定論文題目到系統(tǒng)的開發(fā)、軟件實(shí)現(xiàn),再到論文文章的完成,每走一步對(duì)我來(lái)說(shuō)都是新的嘗試與挑戰(zhàn)。這實(shí)際上在錯(cuò)誤處理程序內(nèi)生成一個(gè)運(yùn)行期錯(cuò)誤,從而迫使Visual Basic 通用調(diào)用列表繼續(xù)搜索能夠處理錯(cuò)誤的處理程序。此時(shí),過(guò)程可能會(huì)無(wú)休止的執(zhí)行下去,特別當(dāng)錯(cuò)誤處理程序還執(zhí)行Resume語(yǔ)句的話,情況更是如此。如果遇到一個(gè)已被激活但不是活動(dòng)的錯(cuò)誤處理程序,便執(zhí)行該錯(cuò)誤處理過(guò)程,然后在包含該處理程序的過(guò)程中繼續(xù)執(zhí)行。在有多個(gè)嵌套的過(guò)程中,如果在一個(gè)過(guò)程中出現(xiàn)錯(cuò)誤,而該過(guò)程并沒有以及獲得錯(cuò)誤處理程序,那么就要檢查調(diào)用帶有錯(cuò)誤過(guò)程的那個(gè)過(guò)程,以便找出已經(jīng)激活但并不是活動(dòng)的錯(cuò)誤處理程序。所謂活動(dòng)狀態(tài)是指錯(cuò)誤處理程序正在為了使錯(cuò)誤處理程序進(jìn)入活動(dòng)狀態(tài),首先應(yīng)激活它。盡管在任意時(shí)刻任意過(guò)程中只能激活一個(gè)錯(cuò)誤捕獲,但可建立幾個(gè)供選擇的錯(cuò)誤捕獲并在不同的時(shí)刻激活不同的錯(cuò)誤捕獲。當(dāng)Visual Basic 執(zhí)行On Error 語(yǔ)句時(shí),錯(cuò)誤捕獲被激活,GoTo則指定錯(cuò)誤處理代碼段。Resume 語(yǔ)句將執(zhí)行重新執(zhí)行產(chǎn)生錯(cuò)誤的語(yǔ)句,而Resume Next 語(yǔ)句將轉(zhuǎn)向執(zhí)行錯(cuò)誤語(yǔ)句的下一條語(yǔ)句。為了確保只有當(dāng)出現(xiàn)錯(cuò)誤時(shí)才執(zhí)行錯(cuò)誤處理過(guò)程,應(yīng)該在其前面加上Exit Sub 、ExitFunction或ExitProperty語(yǔ)句。錯(cuò)誤處理程序通用結(jié)構(gòu):一般的錯(cuò)誤處理框架過(guò)程為:Private Sub MyProcedure()On Error GoTo PROC_ERR(或On Error Resume Nex)……PROC_ERR:Exit SubEnd Sub當(dāng)出現(xiàn)錯(cuò)誤時(shí),可以用On Error Resume Next 跳過(guò)存在錯(cuò)誤的代碼行,忽略該錯(cuò)誤執(zhí)行下一語(yǔ)句。 VB錯(cuò)誤處理程序的設(shè)計(jì)在Visual Basic 應(yīng)用軟件的開發(fā)過(guò)程中往往會(huì)出現(xiàn)兩種類型的錯(cuò)誤代碼:一類是VB編譯器對(duì)代碼進(jìn)行編譯產(chǎn)生的錯(cuò)誤:另一類是對(duì)于已經(jīng)編譯通過(guò)的應(yīng)用程序,在運(yùn)用時(shí)遇到的錯(cuò)誤,例如:要打開的文件可能已被誤刪除、磁盤驅(qū)動(dòng)器沒有準(zhǔn)備好、網(wǎng)絡(luò)驅(qū)動(dòng)器意外的分離。若不對(duì),則進(jìn)行修改,再重復(fù)以上幾步。 第5步:打開[視圖]菜單,單擊[立即窗口]菜單項(xiàng),這時(shí)候,將出現(xiàn)[立即]窗口。 第1步:在代碼窗口中,把光標(biāo)移動(dòng)到要加斷點(diǎn)的位置; 第2步:打開它[調(diào)試]菜單,單擊[切換斷點(diǎn)]。 (3)立即窗口:當(dāng)應(yīng)用程序處于中斷模式時(shí),允許執(zhí)行代碼或查詢值。本程序中的調(diào)試工具主要有:(1)斷點(diǎn):在代碼窗口中選中一行,跟蹤到程序運(yùn)行到該行處將終止運(yùn)行。這時(shí)候便需要程序調(diào)試。編譯錯(cuò)誤是由于不正確編寫代碼而產(chǎn)生的,如,非法使用或丟失關(guān)鍵字,遺漏必須的標(biāo)點(diǎn)符號(hào),函數(shù)調(diào)用缺少參數(shù)或括號(hào)不匹配等。調(diào)試是解決程序錯(cuò)誤的主要手段,同時(shí)是程序開發(fā)周期中必不可少的階段。 調(diào)試過(guò)程 程序開發(fā)過(guò)程中難免會(huì)遇到各種錯(cuò)誤,這就需要調(diào)試。圖48 出庫(kù)信息第5章 系統(tǒng)調(diào)試與維護(hù) 程序在設(shè)計(jì)過(guò)程中要對(duì)所設(shè)計(jì)的每個(gè)模塊單獨(dú)進(jìn)行運(yùn)行。圖47 出庫(kù)登記 物資出庫(kù)信息 物資出庫(kù)信息用于保留所有出庫(kù)項(xiàng)目以便查對(duì),對(duì)有錯(cuò)誤的出庫(kù)登記可以做刪除,并對(duì)庫(kù)存做相應(yīng)改動(dòng)。 物資出庫(kù)登記用戶在出庫(kù)時(shí)只需要用鼠標(biāo)來(lái)選擇類型、類別等選項(xiàng),輸入品名可自動(dòng)列出規(guī)格及該物品的單價(jià),輸入數(shù)量自動(dòng)統(tǒng)計(jì)總金額,大大減少了在出庫(kù)時(shí)的出錯(cuò)率。庫(kù)存查詢是庫(kù)表中專門為此設(shè)計(jì)的一項(xiàng)數(shù)據(jù)庫(kù)存清單,以類型、類別、品名、規(guī)格、單價(jià)為關(guān)鍵字區(qū)別于其它記錄,并作以統(tǒng)計(jì),在此列表中庫(kù)管員能夠輕松統(tǒng)計(jì)和查詢某項(xiàng)物資的總量和單價(jià)是多少可以做相應(yīng)的調(diào)整。此模塊的窗體設(shè)計(jì)如圖所示:圖45 庫(kù)存信息只需打開該窗體便可以統(tǒng)計(jì)出庫(kù)存中物資的數(shù)量總計(jì)及物資的金額總計(jì),在此模塊中統(tǒng)計(jì)出同類型,同類別,同品名,同規(guī)格的物資數(shù)量和金額。 物資入庫(kù)信息維護(hù)圖44 入庫(kù)信息 入庫(kù)信息維護(hù)主要用于留底查詢用,方便于查詢某一天入庫(kù)的信息,某一月的入庫(kù)信息,某一年的入庫(kù)信息。圖42 主頁(yè)面 設(shè)置參數(shù)模塊此模塊可將物資分級(jí)管理,這樣就可以大大提高物資檢索的速度。用戶登陸時(shí)輸入自己的用戶名和密碼,點(diǎn)擊登陸可進(jìn)入系統(tǒng)主界面。 系統(tǒng)功能介紹 設(shè)置權(quán)限模塊設(shè)計(jì)此模塊的目的在于:把物資管理工作進(jìn)一步細(xì)化,使工作人員按照自己的權(quán)限行使自己的職能。數(shù)據(jù)消費(fèi)者(Data Consumer)。利用數(shù)據(jù)服務(wù)提供者、專門完成某種特定業(yè)務(wù)信息處理、可以重用的功能組件。SQL Server 的查詢處理程序就是這種組件的典型例子?! ?shù)據(jù)服務(wù)提供者(Data Service Provider)。提供數(shù)據(jù)存儲(chǔ)的軟件組件,小到普通的文本文件、大到主機(jī)上的復(fù)雜數(shù)據(jù)庫(kù),或者電子郵件存儲(chǔ),都是數(shù)據(jù)提供者的例子。 OLE DB 標(biāo)準(zhǔn)中定義的新概念 OLE DB 將傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)劃分為多個(gè)邏輯組件,這些組件之間相對(duì)獨(dú)立又相互通信。 OLE 是一種面向?qū)ο蟮募夹g(shù),利用這種技術(shù)可開發(fā)可重復(fù)使用的軟件組件(COM)。使用OLE DB的應(yīng)用程序會(huì)用到如下的請(qǐng)求序列: 初始化OLE 連接到數(shù)據(jù)源、發(fā)出命令、處理結(jié)果、釋放數(shù)據(jù)源對(duì)象并停止初始化OLE Object Linking and Embedding,對(duì)象連接與嵌入,簡(jiǎn)稱OLE技術(shù)?!∽鳛槲④浀慕M件對(duì)象模型(COM)的一種設(shè)計(jì),OLE DB是一組讀寫數(shù)據(jù)的方法(在過(guò)去可能被稱為渠道)。OLEDBOLE DB是微軟的戰(zhàn)略性的通向不同的數(shù)據(jù)源的低級(jí)應(yīng)用程序接口。主要用來(lái)存放從結(jié)果集中取回的記錄。 (3)Database對(duì)象:用其豐富的屬性和方法能使你靈活地對(duì)數(shù)據(jù)庫(kù)里的數(shù)據(jù)進(jìn)行控制; (4)Recordset對(duì)象:它是一批記錄的集合。(2)Workspace對(duì)象:不僅管理會(huì)話期間數(shù)據(jù)庫(kù)的連接方式,還要協(xié)調(diào)多個(gè)并發(fā)的事務(wù)。、如何加載DAO? (1)單擊工程菜單,選擇“引用…”項(xiàng); (2)出現(xiàn)引用對(duì)話框,在列表框中找到DAO Object Library,選擇該項(xiàng);(3)單擊確定即可。它是用對(duì)象集合來(lái)處理數(shù)據(jù)庫(kù)、表、視圖和索引的,此外它還提供標(biāo)準(zhǔn)的Add、Delete等方法來(lái)處理數(shù)據(jù)庫(kù)對(duì)象。也就是說(shuō),DAO是集合、對(duì)象、方法和屬性。可以使用HideColumnHeaders屬性決定是否在Listview控件中顯示列標(biāo)頭,列標(biāo)頭可以在設(shè)計(jì)時(shí)添加,也可在運(yùn)行時(shí)添加,該程序采用的是運(yùn)行時(shí)添加。Listview控件該控件可使用四種不同視圖顯示項(xiàng)目,通過(guò)此控件,可將項(xiàng)目組成有或沒有列標(biāo)頭的列,并顯示伴隨的圖標(biāo)和文本。MSFlexGrid控件該控件是Visual Basic ,它是以行與列的形式顯示數(shù)據(jù)。在本程序中使用它,主要顯示程序設(shè)計(jì)者、日期及時(shí)間。l 表41入庫(kù)登記表列名含義數(shù)據(jù)類型是否為空BH編號(hào)varchar(10)NOT NULLLX類型varchar(10)NULLLB類別varchar(10)NULLPM品名varchar(20)NULLGG規(guī)格varchar(20)NULLSL數(shù)量numeric(8)NULLDW單位varchar(10)NULLDJ單價(jià)numeric(8)NULLJE金額numeric(8)NULLRQ日期varchar(10)NULLCGR采購(gòu)人varchar(20)NULLl 表42入庫(kù)信息表列名含義數(shù)據(jù)類型是否為空BH編號(hào)varchar(10)NOT NULLLX類型varchar(10)NULLLB類別varchar(10)NULLPM品名varchar(20)NULLGG規(guī)格varchar(20)NULLSL數(shù)量numeric(8)NULLDW單位varchar(10)NULLDJ單價(jià)numeric(8)NULLJE金額numeric(8)NULLRQ日期varchar(10)NULLCGR采購(gòu)人varchar(20)NULLl 表43庫(kù)存信息表列名含義數(shù)據(jù)類型是否為空BH編號(hào)varchar(10)NOT NULLLX類型varchar(10)NULLLB類別varchar(10)NULLPM品名varchar(20)NULLGG規(guī)格varchar(20)NULLSL數(shù)量numeric(8)NU