畢業(yè)設(shè)計(jì)-貨物進(jìn)出庫管理系統(tǒng)論文.doc
畢業(yè)設(shè)計(jì)(論文) 貨物出入庫管理系統(tǒng)目 錄摘 要1第一章、緒論31.1管理信息系統(tǒng)的概述31.2數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)簡(jiǎn)介31.3貨物進(jìn)出庫管理系統(tǒng)簡(jiǎn)介5第二章 數(shù)據(jù)庫理論基礎(chǔ)82.1數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)82.2 SQL語言介紹9第三章 應(yīng)用系統(tǒng)開發(fā)工具103.1 Visual Basic簡(jiǎn)介及實(shí)現(xiàn)原理103.2 數(shù)據(jù)庫組件介紹103.3 SQL語言在VB中的應(yīng)用113.4 Access 2000簡(jiǎn)述12第四章 貨物進(jìn)出庫管理系統(tǒng)設(shè)計(jì)分析134.1需求分析134.2系統(tǒng)模塊圖144.3數(shù)據(jù)流程圖154.4數(shù)據(jù)庫設(shè)計(jì)16第五章 應(yīng)用程序設(shè)計(jì)205.1程序結(jié)構(gòu)205.2 程序源代碼20設(shè)計(jì)總結(jié)37參考文獻(xiàn)38摘 要隨著現(xiàn)代工業(yè)的發(fā)展,計(jì)算機(jī)信息管理系統(tǒng)越來越受到企業(yè)重視。本文主要分析了貨物進(jìn)出庫管理系統(tǒng)的一些基本功能和組成情況,包括系統(tǒng)的需求分析、系統(tǒng)結(jié)構(gòu),功能模塊劃分以及數(shù)據(jù)庫模式分析等,重點(diǎn)對(duì)應(yīng)用程序的實(shí)際開發(fā)實(shí)現(xiàn)作了介紹。達(dá)到了數(shù)據(jù)的一致性和安全性,且應(yīng)用程序功能完備,符合了貨物進(jìn)出庫管理系統(tǒng)作為典型的信息管理系統(tǒng)(MIS)的要求。同時(shí)簡(jiǎn)單介紹了Visual Basic編程環(huán)境和Access數(shù)據(jù)庫管理系統(tǒng)的功能特點(diǎn),貨物進(jìn)出庫管理系統(tǒng)是企業(yè)物流管理中不可或缺的一部分。關(guān)鍵詞:倉庫管理,數(shù)據(jù)庫,信息管理,VB第一章、緒論貨物進(jìn)出庫管理系統(tǒng)是一個(gè)企事業(yè)單位不可缺少的一部分,貨物進(jìn)出庫管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?,傳統(tǒng)的人工方式管理倉庫存在著許多缺點(diǎn),諸如效率低,保密性差等,而且時(shí)間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來了不少的困難。使用計(jì)算機(jī)對(duì)產(chǎn)品倉庫信息進(jìn)行管理,具有著人工管理無法比擬的優(yōu)點(diǎn),它檢索迅速、查找方便、存儲(chǔ)量大、保密性好、成本低等,可減少更多的人力物力和財(cái)力,這些都能夠極大地提高貨物倉庫的管理效率,也是企業(yè)倉庫管理科學(xué)化、正規(guī)化,與世界接軌的重要條件。因此,開發(fā)一個(gè)貨物進(jìn)出庫管理系統(tǒng)是很有必要的,具有其特有的技術(shù)意義和管理意義。1.1管理信息系統(tǒng)的概述管理信息系統(tǒng)是在管理科學(xué)、系統(tǒng)科學(xué)、計(jì)算機(jī)科學(xué)等的基礎(chǔ)上發(fā)展起來的綜合性邊緣科學(xué)。在當(dāng)今信息高速發(fā)展的社會(huì)中,管理信息系統(tǒng)具有很重要的作用。管理信息系統(tǒng)是一個(gè)由人、機(jī)(計(jì)算機(jī))組成的能進(jìn)行管理信息的收集、傳遞、存儲(chǔ)、加工、維護(hù)和使用的系統(tǒng)。它是一個(gè)以計(jì)算機(jī)為工具,具有數(shù)據(jù)處理、預(yù)測(cè)、控制和輔助決策功能的信息系統(tǒng)。管理信息系統(tǒng)是一個(gè)人機(jī)系統(tǒng)也是一個(gè)一體化集成系統(tǒng)。管理信息系統(tǒng)是信息系統(tǒng)的一個(gè)子系統(tǒng),它以計(jì)算機(jī)技術(shù)、通訊技術(shù)和軟件技術(shù)為技術(shù)基礎(chǔ),同時(shí)將現(xiàn)代管理理論、現(xiàn)代管理方法及各級(jí)管理人員融為一體,為某個(gè)組織整體的管理與決策服務(wù),是由人和計(jì)算機(jī)組成的能進(jìn)行管理信息的收集、傳遞、存儲(chǔ)、加工、維護(hù)和使用的系統(tǒng)。管理信息系統(tǒng)的基本結(jié)構(gòu)可以概括為四大部件,即信息源、信息處理器、信息用戶和信息管理者。因此,一個(gè)成功的管理信息系統(tǒng)應(yīng)該具有可靠的硬件、實(shí)用的軟件、強(qiáng)有力的現(xiàn)代化管理水平。管理信息系統(tǒng)的三大支柱是:計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)庫和現(xiàn)代化的管理。1.2數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)簡(jiǎn)介數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)的目標(biāo)是建立一個(gè)滿足用戶長期需求的產(chǎn)品。開發(fā)的主要過程為:理解用戶的需求,把它們轉(zhuǎn)變?yōu)橛行У臄?shù)據(jù)庫設(shè)計(jì)。把設(shè)計(jì)轉(zhuǎn)變?yōu)閷?shí)際的數(shù)據(jù)庫并且功能完備、高效能。數(shù)據(jù)庫技術(shù)產(chǎn)生于60年代,30多年來數(shù)據(jù)庫技術(shù)得到了迅速發(fā)展,并已形成較為完整的理論體系。隨著World Wide Web(WWW)的猛增及Internet技術(shù)的迅速發(fā)展,使得數(shù)據(jù)庫技術(shù)成為最熱門技術(shù)之一。1.2.1數(shù)據(jù)庫數(shù)據(jù)庫由DBMS(數(shù)據(jù)庫管理系統(tǒng))處理,DBMS則由開發(fā)人員和用戶通過應(yīng)用程序直接或間接地使用。它主要包括四個(gè)要素:用戶數(shù)據(jù)、元數(shù)據(jù)、索引和應(yīng)用元數(shù)據(jù)。一、用戶數(shù)據(jù)目前,大多數(shù)主流數(shù)據(jù)庫管理系統(tǒng)把用戶數(shù)據(jù)表示為關(guān)系?,F(xiàn)在把關(guān)系看作數(shù)據(jù)表。表的列包含域或?qū)傩?,表的行包含?duì)應(yīng)的實(shí)體的記錄。并非所有的關(guān)系都同樣符合要求,有些關(guān)系比其它關(guān)系更結(jié)構(gòu)化一些。二、元數(shù)據(jù)數(shù)據(jù)庫是自描述的,也就是它自身包含了它的結(jié)構(gòu)的描述,這種結(jié)構(gòu)的描述稱作元數(shù)據(jù)。因?yàn)镈BMS是用來存儲(chǔ)和操縱表的,因此大多數(shù)產(chǎn)品把元數(shù)據(jù)以表的形式存儲(chǔ),有時(shí)稱作系統(tǒng)表。這些系統(tǒng)表存儲(chǔ)了數(shù)據(jù)庫中表的情況,每一個(gè)表中有多少列,哪一列是主關(guān)鍵字,各列的數(shù)據(jù)類型的描述,它也存儲(chǔ)索引、關(guān)鍵字、規(guī)則和數(shù)據(jù)庫結(jié)構(gòu)的其他部分。三、索引第三種類型的數(shù)據(jù)改進(jìn)了數(shù)據(jù)庫的性能和可訪問性,這種數(shù)據(jù)被稱作開銷數(shù)據(jù),盡管有時(shí)采用其他類型的數(shù)據(jù)結(jié)構(gòu),但它主要還是索引。索引可以用來排序和快速訪問數(shù)據(jù)。索引用于快速訪問數(shù)據(jù)。例如,一個(gè)用戶只想訪問貨物信息表中類別值為01的那些貨物。如果沒有索引,則必須搜索整個(gè)源表;但有了索引之后,可以找到索引條目,并使用它來挑選所有合適的行。索引對(duì)排序和查找是有幫助的,但是有代價(jià)的。貨物信息表中的行每次改變時(shí),索引也 必須隨之改變,這意味著索引并不是隨意的,應(yīng)該在真正需要時(shí)保存。四、應(yīng)用元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中的第四種數(shù)據(jù)是應(yīng)用元數(shù)據(jù),它用來存儲(chǔ)用戶窗體、報(bào)表、查詢和其他形式的查詢組件。不是所有的DBMS都支持應(yīng)用組件,支持組件的DBMS也不一定把全部組件的結(jié)構(gòu)作為應(yīng)用元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中。但是大多數(shù)現(xiàn)代的DBMS產(chǎn)品存儲(chǔ)這種數(shù)據(jù)作為數(shù)據(jù)庫的一部分。1.2.2數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)是指數(shù)據(jù)庫系統(tǒng)中管理數(shù)據(jù)的軟件系統(tǒng)。DBMS是數(shù)據(jù)庫系統(tǒng)的核心組成部分。對(duì)數(shù)據(jù)庫的一切操作,都是通過DBMS進(jìn)行的。DBMS總是基于某種數(shù)據(jù)模型,根據(jù)數(shù)據(jù)模型的不同,DBMS可以分成層次型、網(wǎng)狀型、關(guān)系型、面向?qū)ο笮偷?。關(guān)系模型。關(guān)系模型主要是用二維表格結(jié)構(gòu)表達(dá)實(shí)體集,用外鍵表示實(shí)體間聯(lián)系。關(guān)系模型是由若干個(gè)關(guān)系模式組成的集合。關(guān)系模型和層次、網(wǎng)狀模型的最大判別是用關(guān)鍵碼而不是用指針導(dǎo)航數(shù)據(jù),表格簡(jiǎn)單用戶易懂。關(guān)系模型是數(shù)學(xué)化模型,SQL語言是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)化語言,已得到了廣泛的應(yīng)用。DBMS的特點(diǎn)和功能可以分為三個(gè)子系統(tǒng):設(shè)計(jì)工具子系統(tǒng)、運(yùn)行子系統(tǒng)和DBMS引擎。設(shè)計(jì)子系統(tǒng)有一個(gè)方便數(shù)據(jù)庫及其應(yīng)用創(chuàng)建的工具集。它典型地包含產(chǎn)生表、窗體、查詢和報(bào)表的工具。DBMS產(chǎn)品還提供編程語言和對(duì)編程語言的接口。運(yùn)行子系統(tǒng)處理用設(shè)計(jì)子系統(tǒng)開發(fā)的應(yīng)用組件。它所包含的運(yùn)行處理器用來處理窗體和數(shù)據(jù)庫的數(shù)據(jù)交互,以及回答查詢和打印報(bào)表等。DBMS引擎從其他兩個(gè)組件接受請(qǐng)求,并把它們翻譯成對(duì)操作系統(tǒng)的命令,以便讀寫物理介質(zhì)上的數(shù)據(jù)。DBMS引擎還涉及事務(wù)管理、鎖、備份和恢復(fù)。1.3貨物進(jìn)出庫管理系統(tǒng)簡(jiǎn)介當(dāng)今時(shí)代是信息大爆炸的時(shí)代,在各行各業(yè)中離不開信息處理,計(jì)算機(jī)被廣泛應(yīng)用于信息處理系統(tǒng)的環(huán)境。利用計(jì)算機(jī)能夠進(jìn)行信息管理,進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。計(jì)算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān)的,系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。倉庫作為一種貨物資源的集散地,貨物的種類繁多,包含很多的信息數(shù)據(jù)的管理。以前倉庫進(jìn)行信息管理的方式主要是基于文本、表格等紙介質(zhì)的手工處理,對(duì)管理者的管理權(quán)限等不受約束,這樣容易引起資料外泄。此外,數(shù)據(jù)信息處理工作量大,容易出錯(cuò),數(shù)據(jù)繁多,容易丟失,且不易查找??偟膩碚f,缺乏系統(tǒng)、規(guī)范的信息管理手段。因此,很有必要建立一個(gè)貨物進(jìn)出庫管理系統(tǒng),使貨物管理工作規(guī)范化,系統(tǒng)化,程序化。提高信息處理的速度和準(zhǔn)確性。1.3.1國內(nèi)外同類管理軟件的研究現(xiàn)狀與發(fā)展趨勢(shì)現(xiàn)在對(duì)這類系統(tǒng)的開發(fā)與研究很有實(shí)用性的,基本上能滿足各企業(yè)的自身特點(diǎn),對(duì)倉庫的管理,同時(shí),這類系統(tǒng)在不斷地深入與發(fā)展,從而適用更多的企業(yè),但是都沒有針對(duì)大眾的廣泛應(yīng)用,只能運(yùn)用某個(gè)企業(yè)或單位,所以這一點(diǎn)還有待于進(jìn)一步開發(fā)與實(shí)踐。此類管理軟件將會(huì)向帶條碼貨物進(jìn)出庫管理系統(tǒng)方向發(fā)展,伴隨這著管理信息化、網(wǎng)絡(luò)化的發(fā)展,采用條碼技術(shù)進(jìn)行倉庫管理,將是一個(gè)必然的發(fā)展趨勢(shì),也是要迫切解決的現(xiàn)實(shí)問題。隨著信息化技術(shù)的不斷提高和應(yīng)用的日漸普及,更多的商品擁有自己的條碼,采用條碼不但可以作業(yè)效率,而且能確保資料正確,同時(shí)可以減少因人為失誤所造成的損失。1、技術(shù)應(yīng)用于倉庫管理是實(shí)現(xiàn)倉庫管理自動(dòng)化的有效途徑倉庫品種多,數(shù)量大。因此,要實(shí)現(xiàn)快速、準(zhǔn)確、高效的收發(fā)作業(yè),倉儲(chǔ)管理自動(dòng)化勢(shì)在必行。而實(shí)現(xiàn)管理自動(dòng)化利用條碼技術(shù),也就是說入庫及其包裝上貼條碼,用倉庫信息管理系統(tǒng)進(jìn)行作業(yè),不光可以大大提高效率,同時(shí)也降低作業(yè)強(qiáng)度,還提高了產(chǎn)品收發(fā)作業(yè)準(zhǔn)確率,進(jìn)而實(shí)現(xiàn)倉庫管理的全面自動(dòng)化。2、技術(shù)應(yīng)用于倉庫管理對(duì)提高倉庫作業(yè)效率有重要作用將條碼技術(shù)和倉庫管理信息系統(tǒng)結(jié)合起來,用于產(chǎn)品收、發(fā)、保管等全過程控制和管理,不僅改變了信息采集傳統(tǒng)的手工作業(yè)方式,同時(shí)也降低了作業(yè)強(qiáng)度,還可避免由此造成的各種差錯(cuò),提高作業(yè)效率和科學(xué)管庫水平。3、技術(shù)應(yīng)用于倉庫管理是完善產(chǎn)品保障信息網(wǎng)絡(luò)的重要手段儲(chǔ)存產(chǎn)品信息是產(chǎn)品保障信息網(wǎng)絡(luò)的重要組成部分,是做好產(chǎn)品供應(yīng)保障工作的基礎(chǔ)。產(chǎn)品保障信息網(wǎng)是實(shí)現(xiàn)物資儲(chǔ)運(yùn)全過程可視化的前提。條碼技術(shù)在儲(chǔ)存管理中的應(yīng)用,可進(jìn)一步完善系統(tǒng)各倉庫之間及各倉庫與作業(yè)主管部門之間的信息共享和交換功能,最終達(dá)到對(duì)產(chǎn)品的全程跟蹤管理。 1.3.2貨物進(jìn)出庫管理系統(tǒng)研究背景與意義目前,市場(chǎng)上也有很多軟件商提供倉儲(chǔ)管理方面的軟件來滿足各行業(yè)客戶的需求,配合企業(yè)的信息化發(fā)展。但據(jù)抽樣調(diào)查,這些軟件的主要作用體現(xiàn)在提高效率和規(guī)范管理方面,而對(duì)企業(yè)業(yè)務(wù)流程優(yōu)化和直接效益相關(guān)不高,倉儲(chǔ)管理部門需要一套成本低、性能高、方便使用、功能完善的綜合倉庫管理信息系統(tǒng)來提供幫助。隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,計(jì)算機(jī)在企業(yè)中應(yīng)用的普及為了滿足信息化管理的需要,實(shí)現(xiàn)倉庫的電腦化管理很需要一個(gè)貨物出入庫管理系統(tǒng)第二章數(shù)據(jù)庫理論基礎(chǔ)2.1數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)一個(gè)成功的信息管理系統(tǒng),是建立在許多條件之上的,而數(shù)據(jù)庫是其中一個(gè)非常重要的條件和關(guān)鍵技術(shù)。信息管理系統(tǒng)所涉及的數(shù)據(jù)庫設(shè)計(jì)分五個(gè)步驟:數(shù)據(jù)庫需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)與加載測(cè)試。數(shù)據(jù)庫設(shè)計(jì)的步驟主要是:(1)數(shù)據(jù)庫結(jié)構(gòu)定義:目前的DBMS有的是支持聯(lián)機(jī)事務(wù)處理CLTP的操作型DBMS,有的可支持?jǐn)?shù)據(jù)倉庫、有聯(lián)機(jī)分析處理CLAP功能的大型DBMS,有的數(shù)據(jù)庫是關(guān)系型的、有的可支持面向?qū)ο髷?shù)據(jù)庫。所以選擇DBMS,需要數(shù)據(jù)庫結(jié)構(gòu)定義。(2)數(shù)據(jù)表定義:數(shù)據(jù)表定義指定義數(shù)據(jù)庫中數(shù)據(jù)表的結(jié)構(gòu),數(shù)據(jù)表的邏輯結(jié)構(gòu)包括:屬性名稱、類型、表示形式、缺省值、校驗(yàn)規(guī)則、是否關(guān)鍵字、可否為空等。關(guān)系型數(shù)據(jù)庫要盡量按照關(guān)系規(guī)范化要求進(jìn)行數(shù)據(jù)庫設(shè)計(jì),為了使效率提高,規(guī)范化程度應(yīng)根據(jù)應(yīng)用環(huán)境和條件來決定。數(shù)據(jù)表設(shè)計(jì)不僅要滿足數(shù)據(jù)存儲(chǔ)的要求,還要增加一些如反映有關(guān)信息、操作責(zé)任、中間數(shù)據(jù)的字段或臨時(shí)數(shù)據(jù)表。(3)存儲(chǔ)設(shè)備和存儲(chǔ)空間組織:確定數(shù)據(jù)的存放地點(diǎn)、存儲(chǔ)路徑、存儲(chǔ)設(shè)備等,備份方案,對(duì)多版本如何保證一致性和數(shù)據(jù)的完整性。(4)數(shù)據(jù)使用權(quán)限設(shè)置:針對(duì)用戶的不同使用要求,確定數(shù)據(jù)的用戶使用權(quán)限,確保數(shù)據(jù)安全。(5)數(shù)據(jù)字典設(shè)計(jì):用數(shù)據(jù)字典描述數(shù)據(jù)庫的設(shè)計(jì),便于維護(hù)和修改。2.2 SQL語言介紹2.2.1 SQL基礎(chǔ)SQL(Structured Query Language,結(jié)構(gòu)查詢語言)是一個(gè)功能強(qiáng)大的數(shù)據(jù)庫語言。SQL通常使用于數(shù)據(jù)庫的通訊。ANSI即美國國家標(biāo)準(zhǔn)學(xué)會(huì)稱,SQL是關(guān)系數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言。SQL語句通常用于完成一些數(shù)據(jù)庫的操作任務(wù),比如在數(shù)據(jù)庫中更新數(shù)據(jù),或者從數(shù)據(jù)庫中檢索數(shù)據(jù)。使用SQL的常見關(guān)系數(shù)據(jù)庫管理系統(tǒng)有:Oracle、 Sybase、 Microsoft SQL Server、 Access、 Ingres等等。標(biāo)準(zhǔn)的SQL命令,比如Select、 Insert、 Update、 Delete、 Create和 Drop常常被用于完成絕大多數(shù)數(shù)據(jù)庫的操作。SQL語言的突出優(yōu)點(diǎn)就是它的非過程化、統(tǒng)一,而且還是所有關(guān)系數(shù)據(jù)庫的公共語言。SQL語言一次處理一個(gè)記錄,對(duì)數(shù)據(jù)提供自動(dòng)導(dǎo)航,它允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對(duì)單個(gè)記錄進(jìn)行操作,可操作記錄集,所有SQL語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結(jié)果作為另一條SQL語句的輸入。不要求用戶指定對(duì)數(shù)據(jù)的存放方法,用戶更易集中精力于要得到的結(jié)果;作為統(tǒng)一的語言,SQL可用于所有用戶的DB活動(dòng)模型,包括系統(tǒng)管理員、數(shù)據(jù)庫管理員、 應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶。2.2.2 SQL語句SQL語句概括起來可以分為數(shù)據(jù)操作語言,數(shù)據(jù)定義語言和數(shù)據(jù)控制語言幾大組,它們用于對(duì)數(shù)據(jù)庫數(shù)據(jù)的查詢,修改和更新,是一種完備的數(shù)據(jù)處理語言。主要用到的數(shù)據(jù)操作語言主要是:SELECT:用于數(shù)據(jù)檢索;INSERT:用于增加數(shù)據(jù)到數(shù)據(jù)庫;UPDATE:用于從數(shù)據(jù)庫中修改現(xiàn)存的數(shù)據(jù);DELETE:用于從數(shù)據(jù)庫中刪除數(shù)據(jù)。第三章應(yīng)用系統(tǒng)開發(fā)工具3.1 Visual Basic簡(jiǎn)介及實(shí)現(xiàn)原理Visual Basic(簡(jiǎn)稱VB)是美國微軟公司(Microsoft)于1990年推出的一套完整的Windows系統(tǒng)軟件開發(fā)工具,可用于開發(fā)Windows環(huán)境下的各類應(yīng)用程序,是一種可視化、面向?qū)ο?、用事件?qū)動(dòng)方式的結(jié)構(gòu)化高級(jí)程序設(shè)計(jì)語言和工具,是目前使用最廣泛的編程語言之一。至今以升級(jí)到了6.0版。VB的重要特點(diǎn)之一是可視性。系統(tǒng)引進(jìn)了窗體和控件的機(jī)制,用于設(shè)計(jì)應(yīng)用程序界面。用戶通過在屏幕上生成窗體,在窗體中繪制所需要的控件和按鈕,設(shè)計(jì)菜單和對(duì)話框,VB會(huì)自動(dòng)生成相應(yīng)的代碼。VB的另一重要特點(diǎn)是事件驅(qū)動(dòng)。當(dāng)窗體或控件上發(fā)生一個(gè)事件時(shí),VB立即把控制權(quán)交給程序員。程序員不必?fù)?dān)心如何判斷事件是否已發(fā)生,只需要編寫一段代碼告訴計(jì)算機(jī)在事件發(fā)生以后應(yīng)該做什么工作就可以了。這樣,設(shè)計(jì)一個(gè)Windows應(yīng)用程序簡(jiǎn)化為用鼠標(biāo)在屏幕上點(diǎn)擊、拖拽并添加少量的代碼就可以完成了,大大降低了對(duì)程序設(shè)計(jì)的要求,提高了應(yīng)用程序的開發(fā)效率。利用VB的可視性特點(diǎn),可方便的設(shè)計(jì)了程序的窗體界面,并在各個(gè)窗體中的合適位置繪制所需的每種控件。如要修改窗體或控件的某項(xiàng)屬性,只需在相應(yīng)的窗體或控件的屬性窗口修改相應(yīng)的參數(shù)便可達(dá)到需要的設(shè)計(jì)效果。利用VB的事件驅(qū)動(dòng)性特點(diǎn),只需在窗體或控件上的代碼窗口中添加少量的代碼,便可達(dá)到告訴當(dāng)在相應(yīng)的窗體或控件上發(fā)生某一事件時(shí),它們?cè)谑录l(fā)生后應(yīng)該做什么工作的目的。例如幾個(gè)窗體上的添加、刪除、返回按鈕的作用,就是通過在各個(gè)相應(yīng)按鈕的代碼窗口中輸入相應(yīng)的代碼,來達(dá)到當(dāng)在幾個(gè)按鈕上出現(xiàn)單擊(Click)事件后,相應(yīng)按鈕實(shí)現(xiàn)添加、刪除、返回的功能的。3.2 數(shù)據(jù)庫組件介紹在使用Visual Basic開發(fā)數(shù)據(jù)庫應(yīng)用程序的時(shí)候,會(huì)經(jīng)常使用數(shù)據(jù)庫訪問控件。這些控件包括:Data控件;ADO Data控件;DataList控件/DataCombo控件;DataGrid控件;MSChart控件。下面將分別對(duì)這些控件的主要功能及使用方法進(jìn)行介紹。3.2.1Data控件Data控件是Visual Basic中最基本的數(shù)據(jù)庫操作控件。它使用Recordset對(duì)象提供對(duì)存儲(chǔ)在數(shù)據(jù)庫中數(shù)據(jù)的訪問。Data控件允許從一個(gè)記錄移動(dòng)到另一個(gè)記錄,并顯示和操縱來自被連接控件的記錄的數(shù)據(jù)。許多其他的數(shù)據(jù)庫操作控件都需要Data控件或類似的數(shù)據(jù)源控件(比如ADO Data控件)。Data控件可以執(zhí)行大部分?jǐn)?shù)據(jù)庫訪問操作,但是它并不能顯示數(shù)據(jù)庫中數(shù)據(jù)的內(nèi)容。Data控件通常需要與其他控件結(jié)合使用。這些與Data控件結(jié)合使用的控件,可以稱之為“數(shù)據(jù)覺察控件”。因?yàn)槌绦騿T無需編寫任何代碼,就可以在這些控件中顯示當(dāng)前記錄的數(shù)據(jù)。當(dāng)Data控件中當(dāng)前記錄發(fā)生變化時(shí),數(shù)據(jù)覺察控件的內(nèi)容也會(huì)隨之發(fā)生變化。當(dāng)與Data控件相連接時(shí),DataList、DataCombo、DataGrid和MSHFlexGrid控件都能管理記錄集合。所有這些控件都允許一次顯示或操作幾個(gè)記錄。內(nèi)部的Picture、Label、TextBox、CheckBox、Image、OLE、ListBox和ComboBox控件也是數(shù)據(jù)覺察的,能和由Data控件管理的Recordset對(duì)象的某個(gè)字段相連接。3.2.2ADO Data控件ADO Data控件與內(nèi)部Data控件以及Remote Data控件(RDC)相似。用戶可以使用ADO Data控件快速地創(chuàng)建一個(gè)到數(shù)據(jù)庫的連接。3.2.3DataList控件/DataCombo控件DataList控件是一個(gè)數(shù)據(jù)綁定列表框,它可以自動(dòng)地由一個(gè)附加數(shù)據(jù)源中的一個(gè)字段充填,并且可選擇地更新另一個(gè)數(shù)據(jù)源中一個(gè)相關(guān)表的一個(gè)字段。DataCombo控件的功能與DataList控件完全相同,只不過DataCombo控件是一個(gè)組合框。3.2.4DataGrid控件在許多情況下,需要使用表格形式來顯示數(shù)據(jù)庫中的數(shù)據(jù)。這時(shí)就要借助于DaatGrid控件。用戶可以設(shè)置DataGrid控件的DataSource屬性為一個(gè)ADO Data控件,從而將ADO Data中的數(shù)據(jù)自動(dòng)地填充到DataGrid表格中。這個(gè)DataGrid控件實(shí)際上是一個(gè)固定的列集合,每一列的行數(shù)都是不確定的。3.2.5MSChart控件MSChart控件的功能是以圖形方式顯示數(shù)據(jù)的圖表。這會(huì)使枯燥的數(shù)據(jù)變得更加生動(dòng)直觀,增加了程序的實(shí)用價(jià)值。MSChart控件支持一下特性:1、真三維表示;2、支持所有主要的圖表類型;3、數(shù)據(jù)網(wǎng)絡(luò)成員支持隨機(jī)數(shù)據(jù),數(shù)據(jù)數(shù)組。3.3 SQL語言在VB中的應(yīng)用1.SQL提供的實(shí)用函數(shù)為實(shí)現(xiàn)使用VB程序調(diào)用SQL語言訪問Access數(shù)據(jù)庫多個(gè)記錄的目的,我們利用SQL提供的函數(shù)。Davg Function(求平均值)Dcount Function(計(jì)算滿足條件的記錄數(shù))Dfirst Function(返回記錄集的第一個(gè)記錄的某個(gè)域值)Dlast Function(返回記錄集的最后一個(gè)記錄的某個(gè)域值)Dlookup Function(返回記錄集中滿足待定條件的記錄的域值)Dsum Function(求和計(jì)算)Dmax Function(求最大值)Dmin Function(求最小值)利用以上的SQL函數(shù)能夠方便地進(jìn)行數(shù)據(jù)庫文件記錄地查詢和統(tǒng)計(jì)工作,以Dsum為例,語法如下:Dsum(expr,clomain,criteria)例:計(jì)算目的港為英國地所有訂單地運(yùn)費(fèi)總和。假定“Orders”是數(shù)據(jù)庫文件中地一張表格,則x=Dsum(“Feight”,”O(jiān)rder”.”ship country=UK”)2.利用SQL訪問多個(gè)記錄地方法在進(jìn)信息查詢和統(tǒng)計(jì)地過程中,我們往往需要從記錄集中根據(jù)待定的條件提取其中的一部分記錄信息。這種改變基于數(shù)據(jù)庫關(guān)系視圖的記錄集,這里我們介紹提取記錄信息的有效方法。(1)建立一個(gè)新的查詢set mydb=Open Database(“c:DIR1manage.mdb”)(打開數(shù)據(jù)庫文件c:DIR1manage.mdb)set myquery=mydb.creat QueryDef(“monthquery”)(創(chuàng)建查詢名為monthquery的查詢)Myquery.SQL=”select*from OPNRPT where mid $(year,7,2)=”&yeartext.text&”(利用查詢的SQL屬性,建立查詢依據(jù),即查詢的條件。這里用到了Setect Statement)以后如果需要這樣的查詢,只需要引用查詢名”monthquery”即可。需要說明的兩點(diǎn)是:使用前先定義Dim mydb AS Database及myquery AS querydef.查詢”monthquery”沒有使用Data控件,也就不直接顯示信息。(2)如何設(shè)置Data控件的Recordsource屬性設(shè)置Datasource屬性的命令為:Data.Recordsource=”Setect Vss_code,voyage,Sum(weight)AS Weight20 from monthquery where ctn_size=20group by Vss_code,Voyage”在這個(gè)命令中字段名Vss_code為船名代碼,Voyage為航次,ctn_size為集裝箱號(hào),weight為集裝箱重量。計(jì)算機(jī)通過增加了條件的monthquery查詢組成了新的記錄集。AS為關(guān)鍵字表示,并定義了別名。通過這一個(gè)方法定義的記錄集可以使用move和Find方法逐條記錄的進(jìn)行操作。3.4 Access 2000簡(jiǎn)述Access2000 是關(guān)系數(shù)據(jù)庫開發(fā)工具,1992年,Microsoft Access作為第一個(gè)面向Windows操作平臺(tái)的桌面數(shù)據(jù)庫管理系統(tǒng)而誕生,它不但充分體現(xiàn)了面向?qū)ο蟮乃枷?,提供可視化的編程手段,而且充分利用了Windows操作平臺(tái)的優(yōu)越性,采用與Windows完全一致的界面風(fēng)格,使界面非常友好。在Access中,用戶不需要編寫復(fù)雜的程序就可以建立一個(gè)完整的數(shù)據(jù)庫應(yīng)用系統(tǒng),是一個(gè)典型的開放式數(shù)據(jù)庫系統(tǒng),它可以和Windows下的其他應(yīng)用程序共享數(shù)據(jù)庫資源。數(shù)據(jù)庫能匯集各種信息以供查詢、存儲(chǔ)和檢索。Access 的優(yōu)點(diǎn)在于它能使用數(shù)據(jù)表示圖或自定義窗體收集信息。數(shù)據(jù)表示圖提供了一種類似于 Excel 的電子表格,可以使數(shù)據(jù)庫一目了然。另外,Access 允許創(chuàng)建自定義報(bào)表用于打印或輸出數(shù)據(jù)庫中的信息。Access也提供了數(shù)據(jù)存儲(chǔ)庫,可以使用桌面數(shù)據(jù)庫文件把數(shù)據(jù)庫文件置于網(wǎng)絡(luò)文件服務(wù)器,與其他網(wǎng)絡(luò)用戶共享數(shù)據(jù)庫。Access 是一種關(guān)系數(shù)據(jù)庫工具,關(guān)系數(shù)據(jù)庫是已開發(fā)的最通用的數(shù)據(jù)庫之一。如上所述,Access 作為關(guān)系數(shù)據(jù)庫開發(fā)具備了許多優(yōu)點(diǎn),可以在一個(gè)數(shù)據(jù)包中同時(shí)擁有桌面數(shù)據(jù)庫的便利和關(guān)系數(shù)據(jù)庫的強(qiáng)大功能。第四章 貨物進(jìn)出庫管理系統(tǒng)設(shè)計(jì)分析.4.1 開發(fā)現(xiàn)狀.4.1.1 自己開發(fā)的現(xiàn)狀 到目前為止通過我大量的搜集資料已經(jīng)基本了解設(shè)計(jì)這套系統(tǒng)所需要的模塊以及各個(gè)模塊的功能是什么。4.1.2 存在的問題 雖然知道這個(gè)系統(tǒng)的主要模塊是什么,但是要實(shí)現(xiàn)這些模塊的功能還需要知道該怎么樣才能實(shí)現(xiàn)各個(gè)模塊的功能。4.1.3 邏輯設(shè)計(jì)方案 1 弄清這個(gè)系統(tǒng)的流程是什么。 2 流程中的各個(gè)模塊是什么及其功能。4.1.4 怎么樣解決方案 通過總體設(shè)計(jì)來規(guī)劃整個(gè)系統(tǒng)的結(jié)構(gòu)和流程 4.2需求分析本套應(yīng)用程序名稱為“貨物進(jìn)出庫管理系統(tǒng)”,主要用于倉庫貨物信息的管理,系統(tǒng)包括倉庫管理、入庫、出庫、一些統(tǒng)計(jì)查詢和報(bào)表等幾部分組成。貨物進(jìn)出庫管理系統(tǒng)需滿足倉庫管理員及工作人員的需求,他們具有登陸應(yīng)用系統(tǒng)的權(quán)限,所以需要對(duì)工作人員的登陸本模塊進(jìn)行更多的考慮,設(shè)計(jì)不同用戶的操作權(quán)限和登陸方法。對(duì)于一個(gè)倉庫來說,最大的功能就是存儲(chǔ)貨物,所以倉庫管理就是對(duì)貨物信息,倉庫信息,短線貨物及超儲(chǔ)貨物的管理,用戶可以根據(jù)實(shí)際情況對(duì)各種貨物信息進(jìn)行分類管理,包括添加,刪除更新數(shù)據(jù)庫等。當(dāng)然,倉庫中貨物入庫也是常有的事,入庫管理操作就是對(duì)于貨物入庫情況的管理,用戶可以方便地輸入一些貨物的信息。有了貨物的入庫,自然也就有貨物的出庫,這部分提供的功能與入庫操作流程差不多,有所區(qū)別的只是對(duì)一些出庫貨物的管理,也很方便數(shù)據(jù)的輸入。倉庫貨物的信息量大,數(shù)據(jù)安全性和保密性要求高。本系統(tǒng)實(shí)現(xiàn)對(duì)貨物信息的管理和總體的統(tǒng)計(jì)等,倉庫信息,供貨單位和經(jīng)辦人員信息的查看及維護(hù)。倉庫管理人員可以瀏覽、查詢、添加、刪除等貨物的基本信息以及統(tǒng)計(jì)等,并可以對(duì)一些基本的信息生成報(bào)表形式,并打印輸出的功能。報(bào)表是一個(gè)數(shù)據(jù)庫中最重要的功能之一,有了報(bào)表才能清楚地知道貨物的出入庫情況,在數(shù)據(jù)報(bào)表功能中包括出庫報(bào)表,倉庫報(bào)表及經(jīng)辦人員報(bào)表等一些基本信息的打印,方便簡(jiǎn)潔。本系統(tǒng)基本涵蓋了倉庫管理的主要需求,具有完善細(xì)致的功能、友好的用戶界面、強(qiáng)大的數(shù)據(jù)處理功能和完備的安全機(jī)制;隨心所欲的查詢和所見即所得的打印功能,并全面支持分析和決策的功能。 系統(tǒng)特色: 1.設(shè)置系統(tǒng)用戶登陸功能,即時(shí)對(duì)系統(tǒng)數(shù)據(jù)進(jìn)行安全設(shè)置與保護(hù)。 2.友好的用戶界面,業(yè)務(wù)操作簡(jiǎn)單,進(jìn)入系統(tǒng)即能使用。3.成熟先進(jìn)的技術(shù)和系統(tǒng)構(gòu)架,采用先進(jìn)的數(shù)據(jù)庫訪問方式,數(shù)據(jù)更安全,性能更穩(wěn)定。4.強(qiáng)大的數(shù)據(jù)處理能力和開放的數(shù)據(jù)接口,選用具有大型數(shù)據(jù)庫安全機(jī)制的數(shù)據(jù)庫系統(tǒng),提供各種級(jí)別的數(shù)據(jù)保護(hù)和權(quán)限控制方式,確保數(shù)據(jù)的安全可靠。5.系統(tǒng)每種操作都可以通過菜單來進(jìn)行。操作快捷、方便。易懂易會(huì)。系統(tǒng)集輸入、維護(hù)、查詢、統(tǒng)計(jì)和各種處理為一體,信息導(dǎo)入導(dǎo)出方便共享。貨物進(jìn)出庫倉庫管理入庫管理出庫管理盤存管理綜合管理附項(xiàng)分類歷史數(shù)據(jù)管理打印、查詢系統(tǒng)貨品信息管理貨品倉庫管理短線貨品管理超儲(chǔ)貨品管理出庫登記管理貨品出庫年度統(tǒng)計(jì)收貨單位年度收貨金額統(tǒng)計(jì)盤存錄入貨品出入庫期間匯總表倉庫信息管理供貨單位管理收貨單位管理經(jīng)辦人員管理4.2系統(tǒng)模塊圖基本模塊與功能:1.系統(tǒng)包括用戶管理,密碼管理,關(guān)閉系統(tǒng),以及數(shù)據(jù)的備份與恢復(fù),可以根據(jù)需要對(duì)整個(gè)數(shù)據(jù)庫進(jìn)行備份,以確保數(shù)據(jù)的安全性。幫助:本系統(tǒng)的幫助信息,包括應(yīng)用程序的版本信息;2.倉庫管理貨物信息管理:對(duì)倉庫里的貨物進(jìn)行登記;貨物倉庫管理:管理倉庫的倉庫情況;短線貨物管理:對(duì)倉庫里短線的貨物進(jìn)行登記,以便及時(shí)采購補(bǔ)貨;超儲(chǔ)貨物管理:對(duì)倉庫里超儲(chǔ)的貨物進(jìn)行登記,控制倉庫量,減少進(jìn)貨;3.入庫管理入庫登記管理:能對(duì)貨物的入庫登記,刪除,更改等;入庫期間統(tǒng)計(jì):貨物入庫期間年度的統(tǒng)計(jì);供貨單位期間供貨金額統(tǒng)計(jì):對(duì)貨物供應(yīng)的金額進(jìn)行統(tǒng)計(jì);4.出庫管理對(duì)貨物出庫期間的年度統(tǒng)計(jì),出庫登記,及收獲單位金額統(tǒng)計(jì)等;5.盤存管理對(duì)盤存貨物信息的盤存錄入;6.綜合管理可根據(jù)同一貨物的出入庫情況,對(duì)倉庫情況的匯總;7.附項(xiàng)管理對(duì)供貨單位情況,經(jīng)辦人員,收貨單位情況,倉庫信息進(jìn)行登記管理,可進(jìn)行添加,刪除等操作;8.歷史數(shù)據(jù)管理對(duì)歷史倉庫,歷史出庫,歷史出庫情況進(jìn)行管理;9.打印與查詢可根據(jù)輸入的條件,對(duì)貨物的入庫信息,倉庫信息等進(jìn)行簡(jiǎn)單查詢和組合查詢。登陸貨物進(jìn)出庫管理系統(tǒng)驗(yàn)證用戶信息系統(tǒng)主窗體倉庫管理入庫管理出庫管理盤存管理綜合管理附項(xiàng)分類歷史數(shù)據(jù)管理打印、查詢系統(tǒng)貨品入庫單經(jīng)辦人員報(bào)表貨品出庫單數(shù)據(jù)備份備份輸出倉庫匯總圖41 貨物進(jìn)出庫管理系統(tǒng)數(shù)據(jù)流程圖4.3數(shù)據(jù)流程圖 密碼錯(cuò)誤 匯總計(jì)算貨物信息管理數(shù)據(jù)流程圖:貨品登記基本信息錄入貨品基本信息管理貨品調(diào)配匯總出庫貨品信息管理入庫貨品信息管理貨品其他信息管理圖42 貨品信息管理數(shù)據(jù)流程圖4.4數(shù)據(jù)庫設(shè)計(jì)本貨物進(jìn)出庫管理系統(tǒng)是應(yīng)用在單機(jī)系統(tǒng)上的,所以只需建立起一個(gè)數(shù)據(jù)庫,在此數(shù)據(jù)庫基礎(chǔ)上建立起表格,現(xiàn)將部分?jǐn)?shù)據(jù)結(jié)構(gòu)表描述如下:貨物信息表字段名數(shù)據(jù)類型字段長度是否為空貨物編碼文本5貨物名稱文本10類別文本8型號(hào)文本4單位文本2倉庫編碼文本5存放倉庫文本12入庫計(jì)劃單價(jià)貨幣出庫計(jì)劃單價(jià)貨幣原始倉庫數(shù)字長整型默認(rèn)貨位文本5警戒底線倉庫數(shù)字長整型警戒高線倉庫數(shù)字長整型表1貨品信息表入庫登記表字段名數(shù)據(jù)類型字段長度是否為空入庫日期日期/時(shí)間入庫單號(hào)文本10貨物編碼文本5數(shù)量數(shù)字長整型進(jìn)貨價(jià)貨幣總額貨幣已付貨款貨幣供貨單位編碼文本5供貨單位文本20經(jīng)辦人編碼文本5經(jīng)辦人文本8增值稅率數(shù)字單精度型備注備注表2入庫登記表出庫登記表字段名數(shù)據(jù)類型字段長度是否為空出庫日期日期/時(shí)間出庫單號(hào)文本10貨物編碼文本5貨物名稱文本10數(shù)量數(shù)字長整型單價(jià)貨幣出貨價(jià)貨幣總額貨幣已收獲款貨幣收貨單位編碼文本5收貨單位文本20經(jīng)辦人編碼文本5經(jīng)辦人文本8增值稅率數(shù)字單精度型備注備注表3貨品出庫表倉庫信息表字段名數(shù)據(jù)類型字段長度是否為空倉庫編號(hào)文本5倉庫名稱文本12貨物編號(hào)文本2存貨種類文本2存貨價(jià)值貨幣表4倉庫信息表供貨單位信息表(收貨單位表)字段名數(shù)據(jù)類型字段長度是否為空單位編號(hào)文本5單位名稱文本50單位地址文本50電話文本15聯(lián)系人文本8表5供貨單位信息表經(jīng)辦人員表字段名數(shù)據(jù)類型字段長度是否為空編號(hào)文本5姓名文本8家庭住址文本50辦公電話文本15家庭電話文本15表6經(jīng)辦人員表用戶表字段名數(shù)據(jù)類型字段長度是否為空UserID文本10userPWD文本6表7用戶表另外,我們還建立了幾張查詢表,用以存放部分用于計(jì)算的統(tǒng)計(jì)信息,以便查詢。入庫登記統(tǒng)計(jì)表 入庫登記_合計(jì)貨物入庫年度統(tǒng)計(jì)表入庫登記_n供貨單位年度供貨金額統(tǒng)計(jì)表入庫登記_w倉庫匯總表倉庫出庫登記統(tǒng)計(jì)表出庫登記_合計(jì)貨物出庫年度統(tǒng)計(jì)表出庫登記_h收貨單位年度收貨金額統(tǒng)計(jì)表出庫登記_d入庫登記_合計(jì)表與出庫登記_合計(jì)分別是以入庫登記表和出庫登記表為基礎(chǔ)的,所以此處不再描述;倉庫匯總表主要由出庫表和入庫表建立關(guān)系獲得。入庫登記_n字段名數(shù)據(jù)類型字段長度是否為空貨物名稱文本10入庫日期日期/時(shí)間年度數(shù)量數(shù)字長整型表8 入庫登記_n入庫登記_w字段名數(shù)據(jù)類型字段長度是否為空供貨單位文本50入庫日期日期/時(shí)間年度供貨總額數(shù)字長整型表9 入庫登記_w倉庫匯總字段名數(shù)據(jù)類型字段長度是否為空貨物編碼文本5入庫日期日期/時(shí)間貨物名稱文本10數(shù)量(入庫)數(shù)字長整型進(jìn)貨價(jià)貨幣數(shù)量(出庫)數(shù)字長整型倉庫數(shù)量數(shù)字長整型表10 倉庫匯總表出庫登記_h字段名數(shù)據(jù)類型字段長度是否為空貨物名稱文本10出庫日期日期/時(shí)間年度數(shù)量數(shù)字長整型表11 出庫登記_h出庫登記_d字段名數(shù)據(jù)類型字段長度是否為空收貨單位文本50出庫日期日期/時(shí)間年度金額總額數(shù)字長整型表12 出庫登記_d第五章應(yīng)用程序設(shè)計(jì)5.1程序結(jié)構(gòu)本應(yīng)用程序由33個(gè)窗體組成,主要的分別是:主窗體,歡迎界面,登陸窗體,入庫窗體,出庫窗體,倉庫匯總,打印及查詢等窗體組成。通過運(yùn)行程序首先進(jìn)入歡迎界面和登陸窗體,通過輸入密碼,驗(yàn)證身份后進(jìn)入主窗體,在主窗體上有10個(gè)菜單項(xiàng),分別對(duì)應(yīng)各自的功能模塊窗體,包括系統(tǒng),倉庫管理,入庫管理,出庫管理,盤存管理,綜合管理,附項(xiàng)管理,歷史數(shù)據(jù)管理,打印和查詢。需要哪個(gè)功能的時(shí)候就點(diǎn)哪個(gè)菜單,相對(duì)應(yīng)的窗體會(huì)自動(dòng)彈出。5.2 程序源代碼程序?qū)崿F(xiàn)的部分代碼如下:公共模塊Public date1 As StringPublic date2 As StringPublic gUserName As String 保存用戶名添加執(zhí)行SQL語句的函數(shù)Public Function transactSQL(ByVal sql As String) As ADODB.RecordsetDim con As ADODB.ConnectionDim rs As ADODB.RecordsetDim strConnection As StringDim strArray() As StringSet con = New ADODB.Connection 創(chuàng)建連接Set rs = New ADODB.Recordset 創(chuàng)建記錄集On Error GoTo TransactSQL_Error strConnection = Provider=Microsoft.jet.oledb.4.0;Data Source=E:倉庫管理kucun.mdb strArray = Split(sql) con.Open strConnection 打開連接 If StrComp(UCase$(strArray(0), select, vbTextCompare) = 0 Then rs.Open Trim$(sql), con, adOpenKeyset, adLockOptimistic Set transactSQL = rs 返回記錄集 iflag = 1 Else con.Execute sql 執(zhí)行命令 iflag = 1 End IfTransactSQL_Exit: Set rs = Nothing Set con = Nothing Exit FunctionTransactSQL_Error: MsgBox 查詢錯(cuò)誤: & Err.Description iflag = 2 Resume TransactSQL_ExitEnd Function主窗體的程序代碼圖51 主窗體界面 Private Sub a1_Click()Form1.ShowEnd SubPrivate Sub a2_Click()Dim fAdd As New frmAddUser fAdd.Show fAdd.ZOrder 0End SubPrivate Sub a3_Click()Dim fChangePWD As New frmChangePWD fChangePWD.ShowEnd SubPrivate Sub a4_Click()frmAbout.ShowEnd SubPrivate Sub a5_Click() 調(diào)入數(shù)據(jù)備份 Load main_sjbf main_sjbf.Show main.Enabled = FalseEnd SubPrivate Sub a6_Click() 調(diào)入數(shù)據(jù)恢復(fù) Load main_sjhf main_sjhf.Show main.HideEnd SubPrivate Sub b1_Click()frm貨物信息.ShowEnd SubPrivate Sub b12_Click() sql = select * from 貨物信息 order by 貨物編碼 frmProInfo.createList (sql) frmProInfo.ShowEnd SubPrivate Sub b2_Click()frm貨物倉庫.ShowEnd SubPrivate Sub B3_Click()frm超儲(chǔ)貨物.ShowEnd SubPrivate Sub b4_Click()frm短線貨物.ShowEnd SubPrivate Sub c1_Click()frm入庫登記.ShowEnd SubPrivate Sub c2_Click()frm貨物入庫年度統(tǒng)計(jì).ShowEnd SubPrivate Sub c3_Click()frm供貨單位供貨分類金額統(tǒng)計(jì).ShowEnd SubPrivate Sub c4_Click()frm供貨單位年度供貨金額統(tǒng)計(jì).ShowEnd SubPrivate Sub Command1_Click()date1 = Text1.Text & / & Text3.Text & / & Text2.Textdate2 = Text6.Text & / & Text4.Text & / & Text5.TextText7.Text = date1End SubPrivate Sub d1_Click()frm出庫登記.ShowEnd SubPrivate Sub d2_Click()frm貨物出庫年度統(tǒng)計(jì).ShowEnd SubPrivate Sub d3_Click()frm收貨單位期間收貨統(tǒng)計(jì).ShowEnd SubPrivate Sub d4_Click()frm收貨單位年度收貨金額統(tǒng)計(jì).ShowEnd SubPrivate Sub e1_Click()frm盤存錄入.ShowEnd SubPrivate Sub e2_Click()frm盤存表.ShowEnd SubPrivate Sub f1_Click()frm貨物出入?yún)R總表.ShowEnd SubPrivate Sub g1_Click()frm經(jīng)辦人員.ShowEnd SubPrivate Sub g2_Click()frm供貨單位.ShowEnd SubPrivate Sub g3_Click()frm倉庫信息.ShowEnd SubPrivate Sub g5_Click()Form6.ShowEnd SubPrivate Sub h1_Click()frm歷史倉庫.ShowEnd SubPrivate Sub h2_Click()frm歷史入庫.ShowEnd SubPrivate Sub h3_Click()frm歷史出庫.ShowEnd SubPrivate Sub i1_Click()DataReport1.ShowEnd SubPrivate Sub i2_Click()DataReport2.ShowEnd SubPrivate Sub i3_Click()DataReport3.ShowEnd SubPrivate Sub j1_Click()Form2.ShowEnd SubPrivate Sub j2_Click()Form3.ShowEnd SubPrivate Sub j3_Click()Form4.ShowEnd SubPrivate Sub j4_Click()Form5.ShowEnd SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As ComctlLib.Button)Select Case Button.KeyCase Is = rk 調(diào)入入庫登記c1_ClickCase Is = ck 調(diào)入出庫登記d1_ClickCase Is = kchz 調(diào)入倉庫匯總f1_ClickCase Is = zhcx 調(diào)入組合查詢j4_ClickCase Is = sjbf 調(diào)入數(shù)據(jù)備份a5_ClickEnd SelectEnd SubPrivate Sub x_Click()EndEnd Sub 登陸模塊的實(shí)現(xiàn)Private Sub cmdLogin_Click()denlu_name = txtUserName.Textdenlu_pass = txtPassword.TextDim mycn As New ADODB.ConnectionDim myrs As New ADODB.RecordsetSet myrs = New ADODB.Recordsetmycn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source=kucun.mdb;myrs.Open SELECT * FROM 用戶 where userID= + denlu_name + ;, mycn, adOpenKeyset, adLockOptimisticIf myrs.BOF = True And myrs.EOF = True ThenMsgBox 查無此人, , 登陸信息Else If myrs(userPWD) = denlu_pass Then MsgBox 身份正確, , 登陸信息 main.Show Unload Me Else MsgBox 密碼不正確, , 登陸信息 End If End If End Sub 添加用戶模塊的實(shí)現(xiàn)Option ExplicitPrivate Sub Command1_Click() Dim sql As String Dim rs As ADODB.Recordset If Trim(UserName.Text) = Then 判斷用戶名稱是否為空 MsgBox 請(qǐng)輸入用戶名稱!, vbOKOnly + vbExclamation, 警告 Exit Sub UserName.SetFocus Else sql = select * from 用戶 where UserID= & UserName & Set rs = transactSQL(sql) If rs.EOF = False Then 判斷是否已經(jīng)存在用戶 MsgBox 這個(gè)用戶已經(jīng)存在!請(qǐng)重新輸入用戶名稱!, vbOKOnly + vbExclamation, 警告 UserName.SetFocus UserName.Text = PassWord.Text = ConfirmPWD.Text = Exit Sub Else If Trim(PassWord.Text) Trim(ConfirmPWD.Text) Then 判斷兩次密碼是否相同 MsgBox 兩次輸入的密碼不一致,請(qǐng)重新輸入密碼!, vbOKOnly + vbExclamation, 警告 PassWord.Text = ConfirmPWD.Text = PassWord.SetFocus Exit Sub ElseIf Trim(PassWord.Text) = Then 判斷密碼是否為空 MsgBox 密碼不能為空!, vbOKOnly + vbExcla