畢業(yè)論文-VB6.0對外貿(mào)易公司退稅管理系統(tǒng).doc_第1頁
畢業(yè)論文-VB6.0對外貿(mào)易公司退稅管理系統(tǒng).doc_第2頁
畢業(yè)論文-VB6.0對外貿(mào)易公司退稅管理系統(tǒng).doc_第3頁
畢業(yè)論文-VB6.0對外貿(mào)易公司退稅管理系統(tǒng).doc_第4頁
畢業(yè)論文-VB6.0對外貿(mào)易公司退稅管理系統(tǒng).doc_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

編號 題目 對外貿(mào)易公司退稅管理系統(tǒng) 摘 要數(shù)據(jù)庫對于每一個(gè)人可能都不陌生,在現(xiàn)代社會(huì)它的應(yīng)用范圍越來越廣,在各個(gè)領(lǐng)域都可以看到數(shù)據(jù)庫的應(yīng)用。數(shù)據(jù)庫技術(shù)在計(jì)算機(jī)中的應(yīng)用大大提高了人們的工作效率。我的畢業(yè)設(shè)計(jì)論文的題目就是“退稅管理系統(tǒng)”。這是一個(gè)操作、管理數(shù)據(jù)庫的例子,通過這個(gè)例子來介紹數(shù)據(jù)庫在工作中的具體應(yīng)用。關(guān)鍵字 數(shù)據(jù)庫 退稅管理系統(tǒng) Abstract Maybe database is not strange to everybody. In present-day society it is used wide and wide and you can see its application in various domains. The applications of the Database technology used in computer greatly improve the work efficiency of the people. The subject of my graduate project is “ Management System”. This is an example which operating and managing the database and we use this example to introduce the detailed application of the database in the work.Keywords: Database Management System1.VisualBasic6.0編程軟件介紹及數(shù)據(jù)庫概述.42.VisualBasic6.0訪問數(shù)據(jù)庫的四種方法比較.63.ADO使用方法及其編程概述.94.退稅管理系統(tǒng)的實(shí)現(xiàn).144.1系統(tǒng)各模塊及其功能.144.2各功能模塊流程圖或聯(lián)系圖.154.3 軟件所用Access數(shù)據(jù)庫zlgl.mdb的制作.16新建數(shù)據(jù)庫及字段.164.4數(shù)據(jù)庫操作界面中的基本功能介紹.18 4.5系統(tǒng)中部分核心代碼及難點(diǎn)代碼的解釋.21 4.6軟件設(shè)計(jì)中遇到的問題及解決辦法. 4.7性能測試與分析.275.總結(jié).31致謝.參考文獻(xiàn).321. Visual Basic編程軟件介紹及數(shù)據(jù)庫概述Visual Basic是由微軟公司推出的一套完整的Windows系統(tǒng)軟件開發(fā)工具,可用于開發(fā)Windows環(huán)境下的各類應(yīng)用程序,是一種可視化、真正面向?qū)ο?、采用事件?qū)動(dòng)方式的結(jié)構(gòu)化高級程序設(shè)計(jì)語言和工具的完美集成。它編程簡單、方便、功能強(qiáng)大,具有與其它語言及環(huán)境的良好接口,不需要編程開發(fā)人員具備C/C+或者Turbo Pascal 語言知識和特別高深的專業(yè)知識,只要懂得Windows的界面及其基本操作,就可以迅速上手,而VB在程序界面設(shè)計(jì)、多媒體開發(fā)方面更是獨(dú)具優(yōu)勢。自1991年Visual Basic1.0推出以來,Visual Basic版本不斷得到更新,功能不斷得到增強(qiáng),現(xiàn)在的最新版本是Visual Basic 6.0。為了滿足不同的開發(fā)需要,Visual Basic 6.0本身又分為學(xué)習(xí)版、專業(yè)版。Visual Basic 6.0對已有功能進(jìn)行完善,同時(shí)增加了許多新的功能。新的數(shù)據(jù)訪問特性在數(shù)據(jù)訪問技術(shù)方面Visual Basic 6.0比起Visual Basic 5.0有了極大的增強(qiáng):新的數(shù)據(jù)訪問接口ADO:Visual Basic 6.0 支持的數(shù)據(jù)訪問接口有ADO(ActiveX數(shù)據(jù)對象)、RDO(遠(yuǎn)程數(shù)據(jù)對象)和DAO(數(shù)據(jù)訪問對象),每個(gè)接口都代表了數(shù)據(jù)訪問技術(shù)的不同發(fā)展階段,最新的接口是ADO。ADO是比RDO和DAO更加簡單、更加靈活的對象模型,它是為OLE DB而設(shè)計(jì)的。OLDDB是新的低層COM接口,可以為任何數(shù)據(jù)源提供高性能的訪問。這些數(shù)據(jù)源包括關(guān)系和非關(guān)系數(shù)據(jù)庫、電子郵件和文件系統(tǒng)、文本和圖形、自定義業(yè)務(wù)對象等。ADO封裝并實(shí)現(xiàn)了OLDDB的所有功能,它將全面取代DAO和RDO,成為數(shù)據(jù)訪問接口的主流。新的數(shù)據(jù)源:除了已有的Data和Remote Data控件外,Visual Basic 6.0引入了幾種新的數(shù)據(jù)源,包括數(shù)據(jù)識別的類模塊和用戶控件、數(shù)據(jù)環(huán)境、ADO記錄集和ADOData控件等。ADOData控件的功能與Data和Remote Data控件十分相似,都允許編程人員用最少的代碼來創(chuàng)建數(shù)據(jù)庫應(yīng)用程序。新的數(shù)據(jù)庫綁定控件:Visual Basic 6.0新增加了為數(shù)不少的數(shù)據(jù)綁定控件,包括DataGrid, Datalist, DataCombo, Hierarchical FlexGrid和DataRepeater等。集成的可視化數(shù)據(jù)庫工具:包括查詢設(shè)計(jì)器和數(shù)據(jù)庫設(shè)計(jì)器,提供了可視地查看并操作表、視圖、存儲(chǔ)過程和數(shù)據(jù)庫結(jié)構(gòu)的功能。數(shù)據(jù)環(huán)境設(shè)計(jì)器:允許編程人員可視化地創(chuàng)建和操作ADO對象,為編程人員操縱數(shù)據(jù)源提供了極大的方便。數(shù)據(jù)報(bào)表設(shè)計(jì)器:允許編程人員利用拖放技術(shù)來快速地從任何記錄集創(chuàng)建報(bào)表。新的Internet特性Visual Basic 6.0提供了多種不同的途徑,來幫助編程人員開發(fā)出動(dòng)態(tài)的、功能強(qiáng)大的Internet應(yīng)用程序:IIS應(yīng)用程序:可以直接Visual Basic 6.0來創(chuàng)建IIS應(yīng)用程序(服務(wù)器端Internet應(yīng)用程序),響應(yīng)瀏覽器用戶的請求。對下載ActiveX文檔的支持:在Internet Explorer中下載ActiveX文檔與下載ActiveX控件的方法相同。除了新的數(shù)據(jù)訪問特性和新的Internet特性外,Visual Basic 6.0在其余方面也都做了重大改進(jìn),包括新的或增強(qiáng)的控件,新的或增強(qiáng)的語言特性,以及新的或增強(qiáng)的向?qū)?。所有這些都使得Visual Basic 6.0功能更為強(qiáng)大??傊?,無論是開發(fā)小型應(yīng)用系統(tǒng),還是大型企業(yè)應(yīng)用系統(tǒng),甚至開發(fā)功能強(qiáng)大的Internet應(yīng)用程序,Visual Basic 6.0都能勝任。2. Visual Basic 6.0訪問數(shù)據(jù)庫的四種方法比較 Visuai Basic 6.0的數(shù)據(jù)訪問功能比起Visual Basic 5.O有了極大的增強(qiáng)。除了支持DAO(數(shù)據(jù)訪問對象)和RDO(遠(yuǎn)程數(shù)據(jù)對象)外,Visual Basic 6.0還提供了新的ADO和RDO更加簡單、更加靈活的數(shù)據(jù)訪問接口。此外,Visual Basic 6.0還提供了新的數(shù)據(jù)源、新的數(shù)據(jù)綁定控件、新的可視化數(shù)據(jù)庫工具、新的數(shù)據(jù)環(huán)境設(shè)計(jì)器以及新的數(shù)據(jù)報(bào)表設(shè)計(jì)器。2.1.數(shù)據(jù)訪問對象(DAO)控件數(shù)據(jù)訪問對象(DAO)是Jet引擎的面向?qū)ο蟮木幊探涌?。Jet引擎使最終用戶與正在訪問的特定數(shù)據(jù)庫無關(guān)。Jet引擎駐留在(動(dòng)態(tài)連接庫)文件中,運(yùn)行時(shí)將應(yīng)用程序的請求翻譯成對數(shù)據(jù)庫的物理操作。Jet引擎真正讀取、寫入和修改數(shù)據(jù)庫,并處理所有的內(nèi)部的事務(wù)。Jet引擎介于用戶界面和數(shù)據(jù)倉庫之間。通過數(shù)據(jù)訪問對象和Jet引擎可以識別以下三類數(shù)據(jù)庫:Visual Basic數(shù)據(jù)庫;外部數(shù)據(jù)庫;ODBC數(shù)據(jù)庫。雖然可以直接使用數(shù)據(jù)訪問對象來編程,但Data控件作為一個(gè)圖形控件,具有易于使用的界面,它的最大優(yōu)點(diǎn)就是只需少量代碼或根本不用代碼就可以創(chuàng)建應(yīng)用程序來顯示。2.2運(yùn)程數(shù)據(jù)對象和Remtoe Data控件遠(yuǎn)程數(shù)據(jù)訪問對象是位于ODBC API和驅(qū)動(dòng)程序管理器之上的對象模型,它提供了一系列的對象來滿足遠(yuǎn)程數(shù)據(jù)訪問的特殊要求。盡管RDO在訪問Jet或ISAM數(shù)據(jù)庫時(shí)受到限制,而且只能通過現(xiàn)存的ODBC驅(qū)動(dòng)程序來訪問關(guān)系數(shù)據(jù)庫。但RDO能訪問任何的ODBC數(shù)據(jù)源,特別適用于智能的數(shù)據(jù)庫服務(wù)器(如SOL Server和Oracle等)。Remote Data與Data控件基本類似,都提供了對數(shù)據(jù)庫的無縫訪問,用戶不必編寫任何代碼就可以創(chuàng)建數(shù)據(jù)識別的應(yīng)用程序,區(qū)別在于:Remite Data控件是通過使用RDO來實(shí)現(xiàn)數(shù)據(jù)訪問,而Data控件則通過使用DAO來連接到Jet引擎。2.3.ActiveX數(shù)據(jù)對象和ADO Data控件OLE DB是一種統(tǒng)一的數(shù)據(jù)訪問接口,它能夠訪問各種DBMS和非DBMS數(shù)據(jù)源。DBMS數(shù)據(jù)源包括主機(jī)數(shù)據(jù)庫(如IMS和DB2、服務(wù)器數(shù)據(jù)庫(如Oracle和SQL Sereer)以及桌面數(shù)據(jù)庫(如(Micromft Access);非DBMS數(shù)據(jù)源包括存放在Windows和UNIX文件系統(tǒng)中的信息、電子郵件、電子表格、web上的文件或圖形以及目錄服務(wù)等。OLE DB使得數(shù)據(jù)消費(fèi)者(應(yīng)用程序)可以使用相同的方法訪問各種數(shù)據(jù),而不用考慮數(shù)據(jù)的具體存儲(chǔ)地點(diǎn)、格式及類型。ADO(ActiveX數(shù)據(jù)對象)是DAO、RDO的后繼產(chǎn)物,更簡單和靈活。它擴(kuò)展了DAO和RDO所使用的對象模型,包含較少的對象,更多的屬性、方法和事件。ADO是為OLE DB而設(shè)計(jì)的,它封裝并實(shí)現(xiàn)了OLE DB的所有功能。ADO Data控件,也就是Adodc,是Visual Basic 6.0新引進(jìn)的數(shù)據(jù)訪問控件,它使用ADO來快速建立數(shù)據(jù)綁定控件和數(shù)據(jù)提供者之間的連接,它使編程者使用最少的代碼來創(chuàng)建數(shù)據(jù)庫應(yīng)用程序。當(dāng)然,用ADO Data控件進(jìn)行訪問數(shù)據(jù)時(shí)必須為待訪問的數(shù)據(jù)庫創(chuàng)建OLE DB數(shù)據(jù)連接。本畢業(yè)設(shè)計(jì)就是采用這種先進(jìn)的數(shù)據(jù)庫訪問技術(shù)訪問數(shù)據(jù)庫的。2.4.數(shù)據(jù)環(huán)境設(shè)計(jì)器和數(shù)據(jù)報(bào)表設(shè)計(jì)器數(shù)據(jù)環(huán)境設(shè)計(jì)器用于在設(shè)計(jì)時(shí)創(chuàng)建ADO對象,它為數(shù)據(jù)庫訪問提供了一個(gè)交互式環(huán)境。在編程時(shí),可以使用數(shù)據(jù)環(huán)境設(shè)計(jì)器創(chuàng)建連接、命令和其他ADO對象,使用ADO對象的方法和屬性,執(zhí)行命令和操作記錄集等。在數(shù)據(jù)環(huán)境設(shè)計(jì)器中創(chuàng)建連接和命令對象之后,數(shù)據(jù)環(huán)境設(shè)計(jì)器在設(shè)計(jì)時(shí)創(chuàng)建了DataEnvieonmwnr對象以及從屬的ADO對象。當(dāng)連接和命令對象的數(shù)據(jù)源可用時(shí),可以在程序運(yùn)行時(shí)直接訪問數(shù)據(jù)環(huán)境設(shè)計(jì)器創(chuàng)建的Command、Connection和Recordset對象,好像這些對象是直接通過ADO創(chuàng)建的一樣。例如,可以在運(yùn)行時(shí)用代碼將數(shù)據(jù)識別控件綁定到一個(gè)命令對象或命令對象中的字段,也可以在對象關(guān)閉時(shí)動(dòng)態(tài)地設(shè)置ADO Connection和Recordset對象的屬性,并在數(shù)據(jù)綁定前設(shè)置參數(shù)值。Microsoft數(shù)據(jù)報(bào)表設(shè)計(jì)器(Micromft Data Report designer)是Visual Bmic6.0提供的新的報(bào)表設(shè)計(jì)器,和Visual Basic中已有提供數(shù)據(jù)源的對象(如數(shù)據(jù)環(huán)境設(shè)計(jì)器)一起使用,通過鼠標(biāo)的拖放操作,可以方便的創(chuàng)建復(fù)雜的報(bào)表。DataReport設(shè)計(jì)器創(chuàng)建的報(bào)表可以直接打印,也可以將報(bào)表導(dǎo)出到HTML或文本文件中。數(shù)據(jù)庫最主要的功能是存儲(chǔ)數(shù)據(jù)和提供信息。數(shù)據(jù)報(bào)表的作用就是將數(shù)據(jù)從數(shù)據(jù)庫中檢索到的數(shù)據(jù),以用戶自定義的格式打印出來或是顯示在計(jì)算機(jī)屏幕上。使用報(bào)表可以解決數(shù)據(jù)庫打印格式的特殊要求,也可以解決大量重復(fù)性的勞動(dòng)。在具體的數(shù)據(jù)庫應(yīng)用程序中,報(bào)表可以解決各種各樣的實(shí)際問題。例如:當(dāng)建成一個(gè)完整的數(shù)據(jù)庫系統(tǒng)后,用戶可以通過SQL語句,或事先定義好的查詢來檢索數(shù)據(jù)庫中的信息。通過比較可以發(fā)現(xiàn):ADO(ActiveX Data Object,ActiveX數(shù)據(jù)對象)是微軟提出的新標(biāo)準(zhǔn),它使得客戶端應(yīng)用程序能夠通過任何OLEDB提供者來訪問和操作數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù),而不必進(jìn)行ODBC配置。ADO有兩個(gè)主要優(yōu)點(diǎn):其一是易于使用、速度快、內(nèi)存支出少和磁盤遺跡小。其二是“遠(yuǎn)程數(shù)據(jù)訪問”,能夠通過一個(gè)來回的傳輸將數(shù)據(jù)從服務(wù)器移動(dòng)到客戶端應(yīng)用程序或Web中,然后在客戶端對數(shù)據(jù)進(jìn)行操作,最后將更新數(shù)據(jù)返回服務(wù)器。接著,我們介紹一下ADO的使用方法,也就是本畢業(yè)設(shè)計(jì)程序操作數(shù)據(jù)庫的方法。3. ADO使用方法及其編程概述本畢業(yè)設(shè)計(jì)就是用ADO操作數(shù)據(jù)庫zlgl.mdb。因?yàn)閂isual Basic的面板上沒有ADO組件,所以需要手工加入。打開Visual Basic的“工程”菜單項(xiàng),并打開“部件”項(xiàng),然后在跳出“部件”頁中選中“Microsoft ADO Data Control 6.0(OLEDB),然后按“確定”按鈕將其加入到面板中。如下圖所示:在空白窗體上放置一個(gè)ADODC組件,一個(gè)DataGrid組件,一個(gè)Text組件。先設(shè)定一下部分組件屬性如下:設(shè)定DataGrid1組件的DataSource屬性為ADODC1,設(shè)定Text1組件的DataSource屬性為ADODC1,并設(shè)置其Datafield屬性為ADODC1所連數(shù)據(jù)庫中某一表中的某一字段的字段名。雙擊ADODC1的Connectionstring屬性打開連接字符串設(shè)定窗口如下圖: 系統(tǒng)顯示“屬性頁”對話框。其中的三個(gè)單選框提供了創(chuàng)建數(shù)據(jù)源的三種方式:第一個(gè)單選框創(chuàng)建一個(gè)OLEDB文件;第二個(gè)單選框創(chuàng)建ODBC數(shù)據(jù)源名稱(DSN)文件;第三個(gè)單選框建立OLEDB連接字符串。我們單擊第三個(gè)單選框,并點(diǎn)擊“生成”按鈕,將打開“數(shù)據(jù)連接屬性”窗口如下圖,其中有四個(gè)頁面,在第一個(gè)“提供者”頁面中,列出了可以使用的各種驅(qū)動(dòng)數(shù)據(jù)庫驅(qū)動(dòng)。我們選擇Microsoft Jet 4.0 OLE DB Provider驅(qū)動(dòng)。如下圖所示: 選擇完畢數(shù)據(jù)庫驅(qū)動(dòng)后,點(diǎn)擊“連接”頁面,圖如下:在這里輸入或選擇數(shù)據(jù)庫,這里我們查找并選擇數(shù)據(jù)庫為“C:hbjzlgl.mdb”,如果數(shù)據(jù)庫有密碼可將“空白密碼”復(fù)選框去掉選擇,就可以輸入密碼,選中“允許保存密碼”這樣以后就可以無需再輸入密碼了。接下來可以點(diǎn)擊“測試連接”按鈕,如果提示“測試連接成功”那么說明數(shù)據(jù)庫可正常連接上。在“高級”頁面中選擇訪問權(quán)限為“ReadWrite”。在“所有”頁面中顯示的是用戶目前設(shè)定的連接屬性,用戶可以再修改。點(diǎn)擊“確定”按鈕后返回到上圖,這時(shí)可以看到屬性設(shè)定字符串已經(jīng)自動(dòng)生成,點(diǎn)擊“OK”按鈕返回即可。接著設(shè)定ADODC1組件的RecordSource屬性,單擊RecordSource將會(huì)跳出一個(gè)記錄來源設(shè)置對話框,如下圖所示: 在“命令類型”中,選中“2-adCmdTaBle”。在“表或存儲(chǔ)過程名稱”的下拉框中,選中要連接的數(shù)據(jù)庫中的某一個(gè)表的名稱。如上圖,就是本程序的選擇之一。下面列出ADO控件連接設(shè)置表:連接屬性ADO控件屬性說明ConnectionString包含了用于與數(shù)據(jù)源建立連接的相關(guān)信息(ADO控件沒有DatabaseName屬性)。RecordSource確定具體可訪問的數(shù)據(jù),這些數(shù)據(jù)構(gòu)成記錄集對象Recordset。4.退稅管理系統(tǒng)的實(shí)現(xiàn)4.1系統(tǒng)各模塊及其功能1.登錄模塊: 功能是為了軟件和數(shù)據(jù)庫的安全,防止非法用戶入侵系統(tǒng)。(對應(yīng)窗體frmlogin)2.用戶管理模塊:可以隨時(shí)修改登錄用戶名和密碼,并可以添加、刪除和修改登錄用戶信息。(對應(yīng)窗體form9)3.出口貨物退稅申報(bào)數(shù)據(jù)錄入系統(tǒng)模塊:功能是對數(shù)據(jù)庫中“出口貨物退稅申報(bào)數(shù)據(jù)”表中數(shù)據(jù)的增加、刪除、修改。(對應(yīng)窗體form2)4.出口貨物免稅申報(bào)數(shù)據(jù)錄入系統(tǒng)模塊:功能是對數(shù)據(jù)庫中“出口貨物免稅申報(bào)數(shù)據(jù)”表中數(shù)據(jù)的增加、刪除、修改。(對應(yīng)窗體form3)5.進(jìn)料加工復(fù)出口貿(mào)易免稅數(shù)據(jù)錄入系統(tǒng)模塊:功能是對數(shù)據(jù)庫中“進(jìn)料加工復(fù)出口貿(mào)易免稅數(shù)據(jù)錄入系統(tǒng)”表中數(shù)據(jù)的增加、刪除、修改。(對應(yīng)窗體form4)6.數(shù)據(jù)查詢模塊:功能是對各個(gè)表中數(shù)據(jù)庫進(jìn)行查詢后得出的查詢結(jié)果存放的窗體。(對應(yīng)窗體form8)7.整體界面模塊:功能是在同一大的表格顯示所有的數(shù)據(jù)。與3、4、5模塊相對應(yīng)。3、4、5模塊一次只是顯示一條記錄的所有數(shù)據(jù)。7模塊是顯示所有記錄的所有數(shù)據(jù)。這樣看起來更直觀一點(diǎn)。(對應(yīng)窗體form6)8.主菜單模塊:主要是在登錄模塊輸入正確的用戶名和密碼后,進(jìn)入的主界面模塊,功能主要是:為軟件提供一個(gè)軟件界面,同時(shí)為訪問其他模塊提供一個(gè)操作平臺。(對應(yīng)窗體form1)9.關(guān)于模塊:功能主要是顯示軟件名稱、軟件作者、軟件版本等,同時(shí)還有顯示操作系統(tǒng)版本信息的功能。(對應(yīng)窗體frmAbout)10.報(bào)表生成與打印模塊:功能是提供數(shù)據(jù)庫中所有信息(包括出口貨物退稅申報(bào)數(shù)據(jù)、出口貨物免稅申報(bào)數(shù)據(jù)、進(jìn)料加工復(fù)出口貿(mào)易免稅數(shù)據(jù))的報(bào)表生成與打印。(對應(yīng)窗體form10)4.2各功能模塊聯(lián)系圖或流程圖主窗體模塊登錄模塊進(jìn)料加工復(fù)出口貿(mào)易免稅數(shù)據(jù)錄入模塊用戶管理模塊主菜單模塊出口貨物免稅申報(bào)數(shù)據(jù)錄入模塊數(shù)據(jù)查詢模塊整體界面瀏覽模塊關(guān)于模塊出口貨物退稅申報(bào)數(shù)據(jù)錄入模塊報(bào)表打印模塊4.3 軟件所用Access數(shù)據(jù)庫zlgl.mdb的制作新建數(shù)據(jù)庫及字段運(yùn)行Microsoft公司的Office2000辦公軟件中的Access數(shù)據(jù)庫軟件。1點(diǎn)擊菜單“文件”,在出現(xiàn)的菜單項(xiàng)中選擇“新建”菜單項(xiàng)。2然后點(diǎn)擊“空數(shù)據(jù)庫”,在彈出的“文件新建數(shù)據(jù)庫”對話框中鍵入數(shù)據(jù)庫的名稱,本軟件中應(yīng)寫入zlgl.mdb。3這時(shí)系統(tǒng)將會(huì)自動(dòng)進(jìn)入詳細(xì)的數(shù)據(jù)庫設(shè)計(jì)窗體。我們選擇“使用設(shè)計(jì)器”創(chuàng)建表。4在彈出的“表1”設(shè)計(jì)窗體中,依次寫入各個(gè)字段名以及他們相對應(yīng)的數(shù)據(jù)類型和說明事項(xiàng)。在本數(shù)據(jù)庫中他們依次是:字段名稱數(shù)據(jù)類型所屬期文本申報(bào)序號文本出口報(bào)關(guān)單耗文本出口發(fā)票號碼文本出口日期文本代理證明編號文本外匯核銷單耗文本客戶名稱文本貿(mào)易性質(zhì)文本出口商品名稱文本計(jì)量單位文本出口數(shù)量數(shù)字外幣金額數(shù)字外幣匯率數(shù)字外幣幣種文本人民幣金額數(shù)字征稅稅率數(shù)字退稅率數(shù)字征退稅差額數(shù)字應(yīng)免抵退稅額數(shù)字進(jìn)料登記手冊號文本計(jì)劃分配率數(shù)字組成計(jì)稅價(jià)格數(shù)字免抵退稅扣減額數(shù)字不予抵扣稅額抵減額數(shù)字實(shí)際免抵退稅額數(shù)字備注備注5設(shè)計(jì)好字段名后,關(guān)閉并保存表為“出口貨物退稅申報(bào)數(shù)據(jù)” 。6雙擊“出口貨物退稅申報(bào)數(shù)據(jù)”表,然后在彈出的數(shù)據(jù)錄入窗體中錄入數(shù)據(jù),并保存。因?yàn)檐浖行枰膫€(gè)數(shù)據(jù)庫表,所以還要在數(shù)據(jù)庫zlgl.mdb中新建一個(gè)“出口貨物免稅申報(bào)數(shù)據(jù)”表、“進(jìn)料加工復(fù)出口貿(mào)易免稅數(shù)據(jù)”表、“系統(tǒng)用戶”表。其中“系統(tǒng)用戶”表中保存的是本軟件系統(tǒng)登錄時(shí)的“用戶名”和“密碼”。下面就用表格的形式分別列出這四個(gè)表的字段名稱和數(shù)據(jù)類型。“系統(tǒng)用戶”表:字段名稱數(shù)據(jù)類型ID自動(dòng)編號用戶名文本用戶口令文本注冊標(biāo)記是/否設(shè)計(jì)完成后,按同樣的方法向其中加入數(shù)據(jù),即一條原始的含有登錄用戶名和用戶口令的記錄。“出口貨物免稅申報(bào)數(shù)據(jù)”表:字段名稱數(shù)據(jù)類型所屬期文本序號文本出口發(fā)票號碼文本出口日期文本貿(mào)易性質(zhì)文本出口商品名稱文本計(jì)量單位文本客戶名稱文本出口數(shù)量數(shù)字退稅率數(shù)字征稅率數(shù)字外幣匯率數(shù)字外幣幣種文本外幣金額數(shù)字人民幣金額數(shù)字不予抵扣稅額抵減額數(shù)字備注備注 “進(jìn)料加工復(fù)出口貿(mào)易免稅數(shù)據(jù)”表:字段名稱數(shù)據(jù)類型所屬期文本序號文本客戶名稱文本進(jìn)料登記手冊號文本出口貨物報(bào)關(guān)單號文本海關(guān)核銷免稅進(jìn)口料件組成計(jì)稅價(jià)格數(shù)字征稅率數(shù)字退稅率數(shù)字不予抵扣稅額抵減額數(shù)字備注備注然后可以分別向其中加入少許記錄,當(dāng)然不加也行。這樣,一個(gè)包含四個(gè)表的退稅管理系統(tǒng)的數(shù)據(jù)庫zlgl.mdb就初步制作完成了。4.4數(shù)據(jù)庫操作界面中的基本功能介紹四個(gè)數(shù)據(jù)庫操作界面中主要包括了對數(shù)據(jù)庫的各種操作,包括數(shù)據(jù)庫中記錄的修改、記錄的添加、記錄的刪除、記錄的查詢以及記錄的瀏覽等。這些都是數(shù)據(jù)庫操作中所必須的內(nèi)容。其代碼如下:(1)增加記錄:on Error GoTo AddErr 出錯(cuò)轉(zhuǎn)到adderr Adodc1.Recordset.MoveLast 指針到最后一個(gè)記錄 Adodc1.Recordset.AddNew 增加記錄 Exit SubAddErr: MsgBox Err.Description 如果出錯(cuò),顯示出錯(cuò)信息(2)刪除記錄: prompt$ = 真的要?jiǎng)h除本記錄嗎?rc = MsgBox(prompt$, vbOKCancel + vbQuestion, “刪除本記錄”) 刪除記錄前的提示信息If rc = vbOK Then 如果按下確認(rèn)按鈕 Adodc1.Recordset.Delete 刪除當(dāng)前記錄 Adodc1.Recordset.MoveNext 指針移到下一條記錄 If Adodc1.Recordset.EOF = True Then 如果已是最后一條記錄 Adodc1.Recordset.MoveLast 指針移動(dòng)到最后一條記錄上 End IfEnd If 是否要?jiǎng)h除記錄,當(dāng)按下“確認(rèn)”按鈕時(shí),系統(tǒng)才會(huì)刪除記錄。(3)更新數(shù)據(jù)庫: On Error GoTo UpdateErr Adodc1.Recordset.Update 此句是更新數(shù)據(jù)庫語句 Exit SubUpdateErr: MsgBox Err.Description 如果出錯(cuò),顯然出錯(cuò)信息(4)第一條記錄:Adodc1.Recordset.MoveFirst(5)最后一條記錄:Adodc1.Recordset.MoveLast(6)前一條記錄:If Not Adodc1.Recordset.BOF Then 如果當(dāng)前記錄不是第一個(gè)記錄Adodc1.Recordset.MovePrevious 移動(dòng)到前一條記錄End If(7)后一條記錄:adotable1.next;(8)取消更新:On Error GoTo UpdateErr Adodc1.Recordset.CancelUpdate 取消剛才對數(shù)據(jù)庫的更新 Exit SubUpdateErr:MsgBox Err.Description4.5系統(tǒng)中部分核心代碼及難點(diǎn)代碼的解釋(1)登錄界面中按下“確定”后的代碼:Private Sub Command2_Click()Adodc1.Recordset.MoveFirst 將指針移到第一個(gè),否則會(huì)出現(xiàn)這樣的問題,就是當(dāng)輸入幾個(gè)錯(cuò)誤的用戶名和密碼后,再輸入正確的也進(jìn)不了系統(tǒng),這是因?yàn)檩斎脲e(cuò)誤的后指針已經(jīng)移到記錄的最后了,再輸入正確密碼時(shí),沒有從第一個(gè)記錄開始找,所以會(huì)找不到密碼出錯(cuò) Do While Not Adodc1.Recordset.EOF If txtPassword.Text = Text2.Text And txtUserName = Text1.Text Then 因?yàn)閠ext1與text2分別接收了數(shù)據(jù)庫中表“系統(tǒng)用戶”的“用戶名”和“用戶口令”的數(shù)據(jù),所以如果輸入的用戶名和密碼與數(shù)據(jù)庫中所存儲(chǔ)的其中的任一套用戶名與密碼相符,即可進(jìn)入系統(tǒng) LoginSucceeded = True LoginSucceede用來判斷是否已經(jīng)成功登錄,當(dāng)Loginsuccede為true時(shí)表示已經(jīng)成功登錄。 Me.Hide Load Form1 加載主窗體 Form1.Show 顯示主窗體 Exit Do 跳出循環(huán) End If Adodc1.Recordset.MoveNext 移動(dòng)下一條記錄 LoopIf Not LoginSucceeded Then 如果登錄不成功MsgBox 無效的用戶名或密碼,請重新輸入!, , 登錄txtPassword.Text = txtUserName = End IfEnd Sub(2) 對“出口貨物退稅申報(bào)數(shù)據(jù)”表中客戶名稱查詢的代碼:Private Sub Command7_Click()Dim strQuery As StringDim i As Stringi = InputBox(請輸入要查詢的商品名稱, 商品名稱查詢) 接收所要查詢的信息并存放于i中strQuery = SELECT * FROM出口貨物退稅申報(bào)數(shù)據(jù)where 商品名稱= & i & 根據(jù)所要查詢的關(guān)鍵字生成sql查詢語句Dim str As String 定義str = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= zlgl.mdb;Persist Security Info=False str代碼是一段連接屬性Form8.Adodc1.ConnectionString = str 將str內(nèi)的數(shù)據(jù)庫連接信息賦給adodc1的ConnectionString屬性 Form8.Adodc1.CommandType = adCmdText 說明adodc1的命令類型是adCmdTextForm8.Adodc1.RecordSource = strQuery 將查詢語句strQuery賦給adodc1的RecordSource屬性Form8.Adodc1.Refresh 在窗體8中刷新adodc1Set Form8.DataGrid1.DataSource = Form8.Adodc1 將form8中的Datagrid表格的數(shù)據(jù)源Datasource設(shè)為form8的adodc1Form8.SkinLabel1.Caption = 共為您查到了 & Form8.Adodc1.Recordset.RecordCount & 條記錄 顯示所查詢到的符合要求的記錄數(shù)Form8.Show 顯示專門用于接收數(shù)據(jù)查詢結(jié)果的窗體8End Sub(3) 雙擊工具欄圖標(biāo)產(chǎn)生的代碼如下:Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Key Case modipwd 如果按下的是工具欄上的“出口貨物退稅申報(bào)數(shù)據(jù)”快捷方式按鈕,那么自動(dòng)轉(zhuǎn)到菜單項(xiàng)“出口貨物退稅申報(bào)數(shù)據(jù)”的代碼里去。 centerfile_Click Case guanli yongfu_Click Case add_user shengfile_Click Case bar_backup taifile_Click Case zhengti zt_Click Case report report_Click Case bar_auto explain_Click Case bar_hand info_Click Case bar_close exit_Click End SelectEnd Sub(4) About關(guān)于窗體中得到“系統(tǒng)信息“的程序代碼 Public Sub StartSysInfo() On Error GoTo SysInfoErr Dim rc As Long Dim SysInfoPath As String 試圖從注冊表中獲得系統(tǒng)信息程序的路徑及名稱. If GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFO, gREGVALSYSINFO, SysInfoPath) Then 試圖僅從注冊表中獲得系統(tǒng)信息程序的路徑. ElseIf GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFOLOC, gREGVALSYSINFOLOC, SysInfoPath) Then 已知32位文件版本的有效位置 If (Dir(SysInfoPath & MSINFO32.EXE) ) Then SysInfoPath = SysInfoPath & MSINFO32.EXE 錯(cuò)誤 - 文件不能被找到. Else GoTo SysInfoErr End If 錯(cuò)誤 - 注冊表相應(yīng)條目不能被找到. Else GoTo SysInfoErr End If Call Shell(SysInfoPath, vbNormalFocus) Exit SubSysInfoErr: MsgBox 此時(shí)系統(tǒng)信息不可用, vbOKOnlyEnd SubEnd IfEnd Sub(5) 主菜單窗體Form1的菜單中“使用說明”菜單的部分代碼:Private Sub explain_Click()Shell notepad.exe text1.txt, vbNormalFocus調(diào)用函數(shù)shell打開文本文件text1.textEnd Sub(6) 自動(dòng)計(jì)算功能的實(shí)現(xiàn):以下是錄入模塊中的幾個(gè)簡單的計(jì)算公式,由計(jì)算機(jī)自動(dòng)產(chǎn)生數(shù)據(jù):人民幣金額 外幣匯率*外幣金額征退稅差額 外銷貨物人民幣金額*(征稅稅率-退稅率)應(yīng)免抵退稅額 外銷貨物人民幣金額*退稅率組成計(jì)稅價(jià)格 人民幣金額*計(jì)劃分配率免抵退稅扣減額 組成計(jì)稅價(jià)格*退稅率不予抵扣稅額抵減額 組成計(jì)稅價(jià)格*(征稅稅率-退稅率)實(shí)際免抵退稅額 應(yīng)免抵退稅額-免抵退稅扣減額以下這段代碼就是在按下“保存修改”按鈕,自動(dòng)地用上面的公式將值計(jì)算出來并保存到數(shù)據(jù)庫表對應(yīng)的字段時(shí)。其代碼及解釋如下:Private Sub Command4_Click() On Error GoTo UpdateErr Adodc1.Recordset.Update 先將手動(dòng)輸入的數(shù)據(jù)存入數(shù)據(jù)庫 Adodc1.Recordset.MovePrevious 這句和下一句也很重要,去掉就不行,這是程序編程實(shí)踐過程中得到的結(jié)論,具體問題的分析見后。 Adodc1.Recordset.MoveNext Adodc1.Recordset!人民幣金額 = Adodc1.Recordset!外幣匯率 * Adodc1.Recordset!外幣金額 通過計(jì)算得到其它字段的值 Adodc1.Recordset!征退稅差額 = Adodc1.Recordset!人民幣金額 * (Adodc1.Recordset!征稅稅率 - Adodc1.Recordset!退稅率) Adodc1.Recordset!應(yīng)免抵退稅額 = Adodc1.Recordset!人民幣金額 * Adodc1.Recordset!退稅率 Adodc1.Recordset!組成計(jì)稅價(jià)格 = Adodc1.Recordset!人民幣金額 * Adodc1.Recordset!計(jì)劃分配率 Adodc1.Recordset!免抵退稅扣減額 = Adodc1.Recordset!組成計(jì)稅價(jià)格 * Adodc1.Recordset!退稅率 Adodc1.Recordset!不予抵扣稅額抵減額 = Adodc1.Recordset!組成計(jì)稅價(jià)格 * (Adodc1.Recordset!征稅稅率 - Adodc1.Recordset!退稅率) Adodc1.Recordset!實(shí)際免抵退稅額 = Adodc1.Recordset!應(yīng)免抵退稅額 - Adodc1.Recordset!免抵退稅扣減額 Adodc1.Recordset.Update將計(jì)算出來的字段的值存入數(shù)據(jù)庫中 Exit SubUpdateErr: MsgBox Err.DescriptionEnd Sub4.6軟件設(shè)計(jì)中遇到的問題及解決方法(1)無法訪問ACCESS2000數(shù)據(jù)庫問題的查找及解決辦法:Visual Basic6.0訪問Access數(shù)據(jù)庫有多種方法,開始我使用的是DAO技術(shù),即利用Data控件來訪問數(shù)據(jù)庫。但由于我使用的是Access2000數(shù)據(jù)庫,通過我的實(shí)踐發(fā)現(xiàn):Data控件對Access2000的數(shù)據(jù)庫竟然無法識別,而只能識別Access97,我想可能是因?yàn)锳ccess2000是后出來的版本且兼容性不好的原因吧。隨后我試著用ADO技術(shù)操作數(shù)據(jù)庫,即通過VB6.0提供的Adodc控件對Access2000數(shù)據(jù)庫進(jìn)行訪問。通過查找參考書我知道了要使ADO能訪問Access2000數(shù)據(jù)庫首先必須要到微軟官方網(wǎng)站下載MDAC2.7,只能通過MDAC2.7才能夠驅(qū)動(dòng)Access2000數(shù)據(jù)庫。同時(shí),因?yàn)锳ccess2000 己經(jīng)使用 Jet 4.0 Engine,所以要將 ADO 的 Connect String 中的 Provider 修改為:PROVIDER=Microsoft,Jet.OLEDB.4.0。按照上面的辦法,我對軟件原程序進(jìn)行了修改和重新設(shè)置,接著我再次試著訪問數(shù)據(jù)庫,成功了。(2)在實(shí)現(xiàn)“自動(dòng)計(jì)算其他字段值”這一功能的過程中,我遇到了一個(gè)問題,即:運(yùn)行時(shí)按下“保存修改”這一按鈕時(shí),系統(tǒng)會(huì)彈出一個(gè)出錯(cuò)窗體:“”,并自動(dòng)退出系統(tǒng)。我在調(diào)試過程中發(fā)現(xiàn)了一個(gè)問題,即在按“添加記錄”按鈕并添加新記錄后,再按“保存修改”按鈕里,系統(tǒng)會(huì)彈出一個(gè)出錯(cuò)窗體:“”,并自動(dòng)退出系統(tǒng)。這一問題我在設(shè)計(jì)過程中沒有遇到過,于是我對“保存修改”按鈕里的代碼進(jìn)行了逐行測試,發(fā)現(xiàn)問題出在兩個(gè)Adodc1.Recordset.Update語句上,顯然系統(tǒng)不認(rèn)可兩次update語句。雖然我找到了出問題的地方,可是通過一次次的調(diào)試還是找不到解決這一問題的辦法,于是我上網(wǎng)進(jìn)行搜索,查找這一問題的解決辦法。果然,經(jīng)過耐心細(xì)致的尋找,我找到了解決問題的辦法,具體方法如下:進(jìn)行了本軟件因?yàn)槭钱厴I(yè)設(shè)計(jì),對數(shù)據(jù)的安全要求不高,所以并沒有對數(shù)據(jù)庫進(jìn)行加密處理,也就沒有對加密的數(shù)據(jù)庫進(jìn)行訪問。如果要對加密和Access2000數(shù)據(jù)庫進(jìn)行訪問,而程序直接由 Access 打開果然我按照上面的方法做時(shí),系統(tǒng)不再提示出錯(cuò)信息,并按我設(shè)計(jì)的要求把值自動(dòng)計(jì)算出來并自動(dòng)存入了數(shù)據(jù)庫。但此時(shí)我發(fā)現(xiàn)按下“保存修改”按鈕后,系統(tǒng)并不立即將自動(dòng)計(jì)算出來的字段的值顯示在當(dāng)前記錄上,而需要移動(dòng)到上一個(gè)或下一個(gè)記錄然后再回到原記錄時(shí)才顯示出來,我也不知道是什么原因。為了解決這一問題,很簡單了,我就直接加了 Adodc1.Recordset.MovePrevious Adodc1.Recordset.MoveNext 這兩條語句。再次調(diào)試時(shí)成功了,系統(tǒng)按我設(shè)計(jì)的要求完美地工作了。 (3)如何動(dòng)態(tài)訪問Access數(shù)據(jù)庫:軟件制作完成后發(fā)布時(shí)我發(fā)現(xiàn)了一個(gè)比較嚴(yán)重的問題,就是程序只能放在c:hbj下才能運(yùn)行,放在其他目錄下運(yùn)行時(shí)會(huì)提示出錯(cuò)信息“找不到數(shù)據(jù)庫文件c:hbjzlgl.mdb”。通過分析我找到了問題的原因:因?yàn)檐浖谱鲿r(shí)是在c:hbj目錄下制作調(diào)試的。程序中所使用的數(shù)據(jù)庫的連接路徑都是絕對路徑。如str = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:hbjzlgl.mdb;Persist Security Info=False。其中C:hbjzlgl.mdb就是絕對路徑,所以如果換到別的目錄下運(yùn)行時(shí),由于C:hbj文件夾不存在,所以就找不到zlgl.mdb文件,所以就會(huì)提示出錯(cuò)信息。問題找到了,然后就要找解決的辦法,通過查詢資料我明白了解決的方法也不復(fù)雜,只要在數(shù)據(jù)庫連接代碼中將C:hbjzlgl.mdb直接改為zlgl.mdb就可以了,即str = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= zlgl.mdb;Persist Security Info=False。這樣程序會(huì)自動(dòng)在可執(zhí)行文件所在目錄下查找數(shù)據(jù)庫zlgl.mdb,而不會(huì)再到C:hbj目錄下找zlgl.mdb文件了。(4)在設(shè)計(jì)登錄用戶名和密碼驗(yàn)證功能時(shí),遇到這樣的問題,即當(dāng)輸入錯(cuò)誤的密碼,系統(tǒng)提示錯(cuò)誤,這里再輸入正確密碼時(shí),系統(tǒng)也提示用戶名或密碼錯(cuò)誤。通過逐行測試與總體分析我找到了問題出現(xiàn)的原因:在輸入幾個(gè)錯(cuò)誤的用戶名和密碼后,再輸入正確的也進(jìn)不了系統(tǒng),這是因?yàn)檩斎脲e(cuò)誤的用戶名和密碼后指針已經(jīng)移到記錄的最后了,再輸入正確密碼時(shí),沒有從第一個(gè)記錄開始找,所以會(huì)找不到密碼出錯(cuò)。找到了問題出現(xiàn)的原因,解決的方法就簡單多了:即在每次查找之前加上一個(gè)指針移動(dòng)第一條記錄的代碼:Adodc1.Recordset.MoveFirst 再次測試時(shí),問題成功地解決了。 4.7性能測試與分析經(jīng)過不斷的努力,終于完成了對外貿(mào)易公司退稅管理系統(tǒng)的初步設(shè)計(jì)和編制。我對本系統(tǒng)進(jìn)行改編的性能測試。 1測試環(huán)境:PIII 256M/64G 2操作系統(tǒng):WindowsXP 3系統(tǒng)平臺:VISUAL Basic 6.0中文版 系統(tǒng)調(diào)試過程:程序的最后調(diào)試工作是應(yīng)用程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論