




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编号 题目 对外贸易公司退税管理系统 摘 要数据库对于每一个人可能都不陌生,在现代社会它的应用范围越来越广,在各个领域都可以看到数据库的应用。数据库技术在计算机中的应用大大提高了人们的工作效率。我的毕业设计论文的题目就是“退税管理系统”。这是一个操作、管理数据库的例子,通过这个例子来介绍数据库在工作中的具体应用。关键字 数据库 退税管理系统 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编程软件介绍及数据库概述.42.visualbasic6.0访问数据库的四种方法比较.63.ado使用方法及其编程概述.94.退税管理系统的实现.144.1系统各模块及其功能.144.2各功能模块流程图或联系图.154.3 软件所用access数据库zlgl.mdb的制作.16新建数据库及字段.164.4数据库操作界面中的基本功能介绍.18 4.5系统中部分核心代码及难点代码的解释.21 4.6软件设计中遇到的问题及解决办法. 4.7性能测试与分析.275.总结.31致谢.参考文献.321. visual basic编程软件介绍及数据库概述visual basic是由微软公司推出的一套完整的windows系统软件开发工具,可用于开发windows环境下的各类应用程序,是一种可视化、真正面向对象、采用事件驱动方式的结构化高级程序设计语言和工具的完美集成。它编程简单、方便、功能强大,具有与其它语言及环境的良好接口,不需要编程开发人员具备c/c+或者turbo pascal 语言知识和特别高深的专业知识,只要懂得windows的界面及其基本操作,就可以迅速上手,而vb在程序界面设计、多媒体开发方面更是独具优势。自1991年visual basic1.0推出以来,visual basic版本不断得到更新,功能不断得到增强,现在的最新版本是visual basic 6.0。为了满足不同的开发需要,visual basic 6.0本身又分为学习版、专业版。visual basic 6.0对已有功能进行完善,同时增加了许多新的功能。新的数据访问特性在数据访问技术方面visual basic 6.0比起visual basic 5.0有了极大的增强:新的数据访问接口ado:visual basic 6.0 支持的数据访问接口有ado(activex数据对象)、rdo(远程数据对象)和dao(数据访问对象),每个接口都代表了数据访问技术的不同发展阶段,最新的接口是ado。ado是比rdo和dao更加简单、更加灵活的对象模型,它是为ole db而设计的。olddb是新的低层com接口,可以为任何数据源提供高性能的访问。这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等。ado封装并实现了olddb的所有功能,它将全面取代dao和rdo,成为数据访问接口的主流。新的数据源:除了已有的data和remote data控件外,visual basic 6.0引入了几种新的数据源,包括数据识别的类模块和用户控件、数据环境、ado记录集和adodata控件等。adodata控件的功能与data和remote data控件十分相似,都允许编程人员用最少的代码来创建数据库应用程序。新的数据库绑定控件:visual basic 6.0新增加了为数不少的数据绑定控件,包括datagrid, datalist, datacombo, hierarchical flexgrid和datarepeater等。集成的可视化数据库工具:包括查询设计器和数据库设计器,提供了可视地查看并操作表、视图、存储过程和数据库结构的功能。数据环境设计器:允许编程人员可视化地创建和操作ado对象,为编程人员操纵数据源提供了极大的方便。数据报表设计器:允许编程人员利用拖放技术来快速地从任何记录集创建报表。新的internet特性visual basic 6.0提供了多种不同的途径,来帮助编程人员开发出动态的、功能强大的internet应用程序:iis应用程序:可以直接visual basic 6.0来创建iis应用程序(服务器端internet应用程序),响应浏览器用户的请求。对下载activex文档的支持:在internet explorer中下载activex文档与下载activex控件的方法相同。除了新的数据访问特性和新的internet特性外,visual basic 6.0在其余方面也都做了重大改进,包括新的或增强的控件,新的或增强的语言特性,以及新的或增强的向导。所有这些都使得visual basic 6.0功能更为强大。总之,无论是开发小型应用系统,还是大型企业应用系统,甚至开发功能强大的internet应用程序,visual basic 6.0都能胜任。2. visual basic 6.0访问数据库的四种方法比较 visuai basic 6.0的数据访问功能比起visual basic 5.o有了极大的增强。除了支持dao(数据访问对象)和rdo(远程数据对象)外,visual basic 6.0还提供了新的ado和rdo更加简单、更加灵活的数据访问接口。此外,visual basic 6.0还提供了新的数据源、新的数据绑定控件、新的可视化数据库工具、新的数据环境设计器以及新的数据报表设计器。2.1.数据访问对象(dao)控件数据访问对象(dao)是jet引擎的面向对象的编程接口。jet引擎使最终用户与正在访问的特定数据库无关。jet引擎驻留在(动态连接库)文件中,运行时将应用程序的请求翻译成对数据库的物理操作。jet引擎真正读取、写入和修改数据库,并处理所有的内部的事务。jet引擎介于用户界面和数据仓库之间。通过数据访问对象和jet引擎可以识别以下三类数据库:visual basic数据库;外部数据库;odbc数据库。虽然可以直接使用数据访问对象来编程,但data控件作为一个图形控件,具有易于使用的界面,它的最大优点就是只需少量代码或根本不用代码就可以创建应用程序来显示。2.2运程数据对象和remtoe data控件远程数据访问对象是位于odbc api和驱动程序管理器之上的对象模型,它提供了一系列的对象来满足远程数据访问的特殊要求。尽管rdo在访问jet或isam数据库时受到限制,而且只能通过现存的odbc驱动程序来访问关系数据库。但rdo能访问任何的odbc数据源,特别适用于智能的数据库服务器(如sol server和oracle等)。remote data与data控件基本类似,都提供了对数据库的无缝访问,用户不必编写任何代码就可以创建数据识别的应用程序,区别在于:remite data控件是通过使用rdo来实现数据访问,而data控件则通过使用dao来连接到jet引擎。2.3.activex数据对象和ado data控件ole db是一种统一的数据访问接口,它能够访问各种dbms和非dbms数据源。dbms数据源包括主机数据库(如ims和db2、服务器数据库(如oracle和sql sereer)以及桌面数据库(如(micromft access);非dbms数据源包括存放在windows和unix文件系统中的信息、电子邮件、电子表格、web上的文件或图形以及目录服务等。ole db使得数据消费者(应用程序)可以使用相同的方法访问各种数据,而不用考虑数据的具体存储地点、格式及类型。ado(activex数据对象)是dao、rdo的后继产物,更简单和灵活。它扩展了dao和rdo所使用的对象模型,包含较少的对象,更多的属性、方法和事件。ado是为ole db而设计的,它封装并实现了ole db的所有功能。ado data控件,也就是adodc,是visual basic 6.0新引进的数据访问控件,它使用ado来快速建立数据绑定控件和数据提供者之间的连接,它使编程者使用最少的代码来创建数据库应用程序。当然,用ado data控件进行访问数据时必须为待访问的数据库创建ole db数据连接。本毕业设计就是采用这种先进的数据库访问技术访问数据库的。2.4.数据环境设计器和数据报表设计器数据环境设计器用于在设计时创建ado对象,它为数据库访问提供了一个交互式环境。在编程时,可以使用数据环境设计器创建连接、命令和其他ado对象,使用ado对象的方法和属性,执行命令和操作记录集等。在数据环境设计器中创建连接和命令对象之后,数据环境设计器在设计时创建了dataenvieonmwnr对象以及从属的ado对象。当连接和命令对象的数据源可用时,可以在程序运行时直接访问数据环境设计器创建的command、connection和recordset对象,好像这些对象是直接通过ado创建的一样。例如,可以在运行时用代码将数据识别控件绑定到一个命令对象或命令对象中的字段,也可以在对象关闭时动态地设置ado connection和recordset对象的属性,并在数据绑定前设置参数值。microsoft数据报表设计器(micromft data report designer)是visual bmic6.0提供的新的报表设计器,和visual basic中已有提供数据源的对象(如数据环境设计器)一起使用,通过鼠标的拖放操作,可以方便的创建复杂的报表。datareport设计器创建的报表可以直接打印,也可以将报表导出到html或文本文件中。数据库最主要的功能是存储数据和提供信息。数据报表的作用就是将数据从数据库中检索到的数据,以用户自定义的格式打印出来或是显示在计算机屏幕上。使用报表可以解决数据库打印格式的特殊要求,也可以解决大量重复性的劳动。在具体的数据库应用程序中,报表可以解决各种各样的实际问题。例如:当建成一个完整的数据库系统后,用户可以通过sql语句,或事先定义好的查询来检索数据库中的信息。通过比较可以发现:ado(activex data object,activex数据对象)是微软提出的新标准,它使得客户端应用程序能够通过任何oledb提供者来访问和操作数据库服务器中的数据,而不必进行odbc配置。ado有两个主要优点:其一是易于使用、速度快、内存支出少和磁盘遗迹小。其二是“远程数据访问”,能够通过一个来回的传输将数据从服务器移动到客户端应用程序或web中,然后在客户端对数据进行操作,最后将更新数据返回服务器。接着,我们介绍一下ado的使用方法,也就是本毕业设计程序操作数据库的方法。3. ado使用方法及其编程概述本毕业设计就是用ado操作数据库zlgl.mdb。因为visual basic的面板上没有ado组件,所以需要手工加入。打开visual basic的“工程”菜单项,并打开“部件”项,然后在跳出“部件”页中选中“microsoft ado data control 6.0(oledb),然后按“确定”按钮将其加入到面板中。如下图所示:在空白窗体上放置一个adodc组件,一个datagrid组件,一个text组件。先设定一下部分组件属性如下:设定datagrid1组件的datasource属性为adodc1,设定text1组件的datasource属性为adodc1,并设置其datafield属性为adodc1所连数据库中某一表中的某一字段的字段名。双击adodc1的connectionstring属性打开连接字符串设定窗口如下图: 系统显示“属性页”对话框。其中的三个单选框提供了创建数据源的三种方式:第一个单选框创建一个oledb文件;第二个单选框创建odbc数据源名称(dsn)文件;第三个单选框建立oledb连接字符串。我们单击第三个单选框,并点击“生成”按钮,将打开“数据连接属性”窗口如下图,其中有四个页面,在第一个“提供者”页面中,列出了可以使用的各种驱动数据库驱动。我们选择microsoft jet 4.0 ole db provider驱动。如下图所示: 选择完毕数据库驱动后,点击“连接”页面,图如下:在这里输入或选择数据库,这里我们查找并选择数据库为“c:hbjzlgl.mdb”,如果数据库有密码可将“空白密码”复选框去掉选择,就可以输入密码,选中“允许保存密码”这样以后就可以无需再输入密码了。接下来可以点击“测试连接”按钮,如果提示“测试连接成功”那么说明数据库可正常连接上。在“高级”页面中选择访问权限为“readwrite”。在“所有”页面中显示的是用户目前设定的连接属性,用户可以再修改。点击“确定”按钮后返回到上图,这时可以看到属性设定字符串已经自动生成,点击“ok”按钮返回即可。接着设定adodc1组件的recordsource属性,单击recordsource将会跳出一个记录来源设置对话框,如下图所示: 在“命令类型”中,选中“2-adcmdtable”。在“表或存储过程名称”的下拉框中,选中要连接的数据库中的某一个表的名称。如上图,就是本程序的选择之一。下面列出ado控件连接设置表:连接属性ado控件属性说明connectionstring包含了用于与数据源建立连接的相关信息(ado控件没有databasename属性)。recordsource确定具体可访问的数据,这些数据构成记录集对象recordset。4.退税管理系统的实现4.1系统各模块及其功能1.登录模块: 功能是为了软件和数据库的安全,防止非法用户入侵系统。(对应窗体frmlogin)2.用户管理模块:可以随时修改登录用户名和密码,并可以添加、删除和修改登录用户信息。(对应窗体form9)3.出口货物退税申报数据录入系统模块:功能是对数据库中“出口货物退税申报数据”表中数据的增加、删除、修改。(对应窗体form2)4.出口货物免税申报数据录入系统模块:功能是对数据库中“出口货物免税申报数据”表中数据的增加、删除、修改。(对应窗体form3)5.进料加工复出口贸易免税数据录入系统模块:功能是对数据库中“进料加工复出口贸易免税数据录入系统”表中数据的增加、删除、修改。(对应窗体form4)6.数据查询模块:功能是对各个表中数据库进行查询后得出的查询结果存放的窗体。(对应窗体form8)7.整体界面模块:功能是在同一大的表格显示所有的数据。与3、4、5模块相对应。3、4、5模块一次只是显示一条记录的所有数据。7模块是显示所有记录的所有数据。这样看起来更直观一点。(对应窗体form6)8.主菜单模块:主要是在登录模块输入正确的用户名和密码后,进入的主界面模块,功能主要是:为软件提供一个软件界面,同时为访问其他模块提供一个操作平台。(对应窗体form1)9.关于模块:功能主要是显示软件名称、软件作者、软件版本等,同时还有显示操作系统版本信息的功能。(对应窗体frmabout)10.报表生成与打印模块:功能是提供数据库中所有信息(包括出口货物退税申报数据、出口货物免税申报数据、进料加工复出口贸易免税数据)的报表生成与打印。(对应窗体form10)4.2各功能模块联系图或流程图主窗体模块登录模块进料加工复出口贸易免税数据录入模块用户管理模块主菜单模块出口货物免税申报数据录入模块数据查询模块整体界面浏览模块关于模块出口货物退税申报数据录入模块报表打印模块4.3 软件所用access数据库zlgl.mdb的制作新建数据库及字段运行microsoft公司的office2000办公软件中的access数据库软件。1点击菜单“文件”,在出现的菜单项中选择“新建”菜单项。2然后点击“空数据库”,在弹出的“文件新建数据库”对话框中键入数据库的名称,本软件中应写入zlgl.mdb。3这时系统将会自动进入详细的数据库设计窗体。我们选择“使用设计器”创建表。4在弹出的“表1”设计窗体中,依次写入各个字段名以及他们相对应的数据类型和说明事项。在本数据库中他们依次是:字段名称数据类型所属期文本申报序号文本出口报关单耗文本出口发票号码文本出口日期文本代理证明编号文本外汇核销单耗文本客户名称文本贸易性质文本出口商品名称文本计量单位文本出口数量数字外币金额数字外币汇率数字外币币种文本人民币金额数字征税税率数字退税率数字征退税差额数字应免抵退税额数字进料登记手册号文本计划分配率数字组成计税价格数字免抵退税扣减额数字不予抵扣税额抵减额数字实际免抵退税额数字备注备注5设计好字段名后,关闭并保存表为“出口货物退税申报数据” 。6双击“出口货物退税申报数据”表,然后在弹出的数据录入窗体中录入数据,并保存。因为软件中需要四个数据库表,所以还要在数据库zlgl.mdb中新建一个“出口货物免税申报数据”表、“进料加工复出口贸易免税数据”表、“系统用户”表。其中“系统用户”表中保存的是本软件系统登录时的“用户名”和“密码”。下面就用表格的形式分别列出这四个表的字段名称和数据类型。“系统用户”表:字段名称数据类型id自动编号用户名文本用户口令文本注册标记是/否设计完成后,按同样的方法向其中加入数据,即一条原始的含有登录用户名和用户口令的记录。“出口货物免税申报数据”表:字段名称数据类型所属期文本序号文本出口发票号码文本出口日期文本贸易性质文本出口商品名称文本计量单位文本客户名称文本出口数量数字退税率数字征税率数字外币汇率数字外币币种文本外币金额数字人民币金额数字不予抵扣税额抵减额数字备注备注 “进料加工复出口贸易免税数据”表:字段名称数据类型所属期文本序号文本客户名称文本进料登记手册号文本出口货物报关单号文本海关核销免税进口料件组成计税价格数字征税率数字退税率数字不予抵扣税额抵减额数字备注备注然后可以分别向其中加入少许记录,当然不加也行。这样,一个包含四个表的退税管理系统的数据库zlgl.mdb就初步制作完成了。4.4数据库操作界面中的基本功能介绍四个数据库操作界面中主要包括了对数据库的各种操作,包括数据库中记录的修改、记录的添加、记录的删除、记录的查询以及记录的浏览等。这些都是数据库操作中所必须的内容。其代码如下:(1)增加记录:on error goto adderr 出错转到adderr adodc1.recordset.movelast 指针到最后一个记录 adodc1.recordset.addnew 增加记录 exit subadderr: msgbox err.description 如果出错,显示出错信息(2)删除记录: prompt$ = 真的要删除本记录吗?rc = msgbox(prompt$, vbokcancel + vbquestion, “删除本记录”) 删除记录前的提示信息if rc = vbok then 如果按下确认按钮 adodc1.recordset.delete 删除当前记录 adodc1.recordset.movenext 指针移到下一条记录 if adodc1.recordset.eof = true then 如果已是最后一条记录 adodc1.recordset.movelast 指针移动到最后一条记录上 end ifend if 是否要删除记录,当按下“确认”按钮时,系统才会删除记录。(3)更新数据库: on error goto updateerr adodc1.recordset.update 此句是更新数据库语句 exit subupdateerr: msgbox err.description 如果出错,显然出错信息(4)第一条记录:adodc1.recordset.movefirst(5)最后一条记录:adodc1.recordset.movelast(6)前一条记录:if not adodc1.recordset.bof then 如果当前记录不是第一个记录adodc1.recordset.moveprevious 移动到前一条记录end if(7)后一条记录:adotable1.next;(8)取消更新:on error goto updateerr adodc1.recordset.cancelupdate 取消刚才对数据库的更新 exit subupdateerr:msgbox err.description4.5系统中部分核心代码及难点代码的解释(1)登录界面中按下“确定”后的代码:private sub command2_click()adodc1.recordset.movefirst 将指针移到第一个,否则会出现这样的问题,就是当输入几个错误的用户名和密码后,再输入正确的也进不了系统,这是因为输入错误的后指针已经移到记录的最后了,再输入正确密码时,没有从第一个记录开始找,所以会找不到密码出错 do while not adodc1.recordset.eof if txtpassword.text = text2.text and txtusername = text1.text then 因为text1与text2分别接收了数据库中表“系统用户”的“用户名”和“用户口令”的数据,所以如果输入的用户名和密码与数据库中所存储的其中的任一套用户名与密码相符,即可进入系统 loginsucceeded = true loginsucceede用来判断是否已经成功登录,当loginsuccede为true时表示已经成功登录。 me.hide load form1 加载主窗体 form1.show 显示主窗体 exit do 跳出循环 end if adodc1.recordset.movenext 移动下一条记录 loopif not loginsucceeded then 如果登录不成功msgbox 无效的用户名或密码,请重新输入!, , 登录txtpassword.text = txtusername = end ifend sub(2) 对“出口货物退税申报数据”表中客户名称查询的代码:private sub command7_click()dim strquery as stringdim i as stringi = inputbox(请输入要查询的商品名称, 商品名称查询) 接收所要查询的信息并存放于i中strquery = select * from出口货物退税申报数据where 商品名称= & i & 根据所要查询的关键字生成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内的数据库连接信息赋给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表格的数据源datasource设为form8的adodc1form8.skinlabel1.caption = 共为您查到了 & form8.adodc1.recordset.recordcount & 条记录 显示所查询到的符合要求的记录数form8.show 显示专门用于接收数据查询结果的窗体8end sub(3) 双击工具栏图标产生的代码如下:private sub toolbar1_buttonclick(byval button as mscomctllib.button) select case button.key case modipwd 如果按下的是工具栏上的“出口货物退税申报数据”快捷方式按钮,那么自动转到菜单项“出口货物退税申报数据”的代码里去。 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关于窗体中得到“系统信息“的程序代码 public sub startsysinfo() on error goto sysinfoerr dim rc as long dim sysinfopath as string 试图从注册表中获得系统信息程序的路径及名称. if getkeyvalue(hkey_local_machine, gregkeysysinfo, gregvalsysinfo, sysinfopath) then 试图仅从注册表中获得系统信息程序的路径. elseif getkeyvalue(hkey_local_machine, gregkeysysinfoloc, gregvalsysinfoloc, sysinfopath) then 已知32位文件版本的有效位置 if (dir(sysinfopath & msinfo32.exe) ) then sysinfopath = sysinfopath & msinfo32.exe 错误 - 文件不能被找到. else goto sysinfoerr end if 错误 - 注册表相应条目不能被找到. else goto sysinfoerr end if call shell(sysinfopath, vbnormalfocus) exit subsysinfoerr: msgbox 此时系统信息不可用, vbokonlyend subend ifend sub(5) 主菜单窗体form1的菜单中“使用说明”菜单的部分代码:private sub explain_click()shell notepad.exe text1.txt, vbnormalfocus调用函数shell打开文本文件text1.textend sub(6) 自动计算功能的实现:以下是录入模块中的几个简单的计算公式,由计算机自动产生数据:人民币金额 外币汇率*外币金额征退税差额 外销货物人民币金额*(征税税率-退税率)应免抵退税额 外销货物人民币金额*退税率组成计税价格 人民币金额*计划分配率免抵退税扣减额 组成计税价格*退税率不予抵扣税额抵减额 组成计税价格*(征税税率-退税率)实际免抵退税额 应免抵退税额-免抵退税扣减额以下这段代码就是在按下“保存修改”按钮,自动地用上面的公式将值计算出来并保存到数据库表对应的字段时。其代码及解释如下:private sub command4_click() on error goto updateerr adodc1.recordset.update 先将手动输入的数据存入数据库 adodc1.recordset.moveprevious 这句和下一句也很重要,去掉就不行,这是程序编程实践过程中得到的结论,具体问题的分析见后。 adodc1.recordset.movenext adodc1.recordset!人民币金额 = adodc1.recordset!外币汇率 * adodc1.recordset!外币金额 通过计算得到其它字段的值 adodc1.recordset!征退税差额 = adodc1.recordset!人民币金额 * (adodc1.recordset!征税税率 - adodc1.recordset!退税率) adodc1.recordset!应免抵退税额 = adodc1.recordset!人民币金额 * adodc1.recordset!退税率 adodc1.recordset!组成计税价格 = adodc1.recordset!人民币金额 * adodc1.recordset!计划分配率 adodc1.recordset!免抵退税扣减额 = adodc1.recordset!组成计税价格 * adodc1.recordset!退税率 adodc1.recordset!不予抵扣税额抵减额 = adodc1.recordset!组成计税价格 * (adodc1.recordset!征税税率 - adodc1.recordset!退税率) adodc1.recordset!实际免抵退税额 = adodc1.recordset!应免抵退税额 - adodc1.recordset!免抵退税扣减额 adodc1.recordset.update将计算出来的字段的值存入数据库中 exit subupdateerr: msgbox err.descriptionend sub4.6软件设计中遇到的问题及解决方法(1)无法访问access2000数据库问题的查找及解决办法:visual basic6.0访问access数据库有多种方法,开始我使用的是dao技术,即利用data控件来访问数据库。但由于我使用的是access2000数据库,通过我的实践发现:data控件对access2000的数据库竟然无法识别,而只能识别access97,我想可能是因为access2000是后出来的版本且兼容性不好的原因吧。随后我试着用ado技术操作数据库,即通过vb6.0提供的adodc控件对access2000数据库进行访问。通过查找参考书我知道了要使ado能访问access2000数据库首先必须要到微软官方网站下载mdac2.7,只能通过mdac2.7才能够驱动access2000数据库。同时,因为access2000 己经使用 jet 4.0 engine,所以要将 ado 的 connect string 中的 provider 修改为:provider=microsoft,jet.oledb.4.0。按照上面的办法,我对软件原程序进行了修改和重新设置,接着我再次试着访问数据库,成功了。(2)在实现“自动计算其他字段值”这一功能的过程中,我遇到了一个问题,即:运行时按下“保存修改”这一按钮时,系统会弹出一个出错窗体:“”,并自动退出系统。我在调试过程中发现了一个问题,即在按“添加记录”按钮并添加新记录后,再按“保存修改”按钮里,系统会弹出一个出错窗体:“”,并自动退出系统。这一问题我在设计过程中没有遇到过,于是我对“保存修改”按钮里的代码进行了逐行测试,发现问题出在两个adodc1.recordset.update语句上,显然系统不认可两次update语句。虽然我找到了出问题的地方,可是通过一次次的调试还是找不到解决这一问题的办法,于是我上网进行搜索,查找这一问题的解决办法。果然,经过耐心细致的寻找,我找到了解决问题的办法,具体方法如下:进行了本软件因为是毕业设计,对数据的安全要求不高,所以并没有对数据库进行加密处理,也就没有对加密的数据库进行访问。如果要对加密和access2000数据库进行访问,而程序直接由 access 打开果然我按照上面的方法做时,系统不再提示出错信息,并按我设计的要求把值自动计算出来并自动存入了数据库。但此时我发现按下“保存修改”按钮后,系统并不立即将自动计算出来的字段的值显示在当前记录上,而需要移动到上一个或下一个记录然后再回到原记录时才显示出来,我也不知道是什么原因。为了解决这一问题,很简单了,我就直接加了 adodc1.recordset.moveprevious adodc1.recordset.movenext 这两条语句。再次调试时成功了,系统按我设计的要求完美地工作了。 (3)如何动态访问access数据库:软件制作完成后发布时我发现了一个比较严重的问题,就是程序只能放在c:hbj下才能运行,放在其他目录下运行时会提示出错信息“找不到数据库文件c:hbjzlgl.mdb”。通过分析我找到了问题的原因:因为软件制作时是在c:hbj目录下制作调试的。程序中所使用的数据库的连接路径都是绝对路径。如str = provider=microsoft.jet.oledb.4.0;data source=c:hbjzlgl.mdb;persist security info=false。其中c:hbjzlgl.mdb就是绝对路径,所以如果换到别的目录下运行时,由于c:hbj文件夹不存在,所以就找不到zlgl.mdb文件,所以就会提示出错信息。问题找到了,然后就要找解决的办法,通过查询资料我明白了解决的方法也不复杂,只要在数据库连接代码中将c:hbjzlgl.mdb直接改为zlgl.mdb就可以了,即str = provider=microsoft.jet.oledb.4.0;data source= zlgl.mdb;persist security info=false。这样程序会自动在可执行文件所在目录下查找数据库zlgl.mdb,而不会再到c:hbj目录下找zlgl.mdb文件了。(4)在设计登录用户名和密码验证功能时,遇到这样的问题,即当输入错误的密码,系统提示错误,这里再输入正确密码时,系统也提示用户名或密码错误。通过逐行测试与总体分析我找到了问题出现的原因:在输入几个错误的用户名和密码后,再输入正确的也进不了系统,这是因为输入错误的用户名和密码后指针已经移到记录的最后了,再输入正确密码时,没有从第一个记录开始找,所以会找不到密码出错。找到了问题出现的原因,解决的方法就简单多了:即在每次查找之前加上一个指针移动第一条记录的代码:adodc1.recordset.movefirst 再次测试时,问题成功地解决了。 4.7性能测试与分析经过不断的努力,终于完成了对外贸易公司退税管理系统的初步设计和编制。我对本系统进行改编的性能测试。 1测试环境:piii 256m/64g 2操作系统:windowsxp 3系统平台:visual basic 6.0中文版 系统调试过程:程序的最后调试工作是应用程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 稀土抛光粉工应急处置考核试卷及答案
- 金融客服考试题及答案
- 水声换能器制造工技能操作考核试卷及答案
- 民族拉弦弹拨乐器制作工质量管控考核试卷及答案
- 搅拌工职业技能考核试卷及答案
- 排水管道工技能巩固考核试卷及答案
- 矿井开掘工质量追溯知识考核试卷及答案
- 铸管制芯工入职考核试卷及答案
- 铝电解工知识考核试卷及答案
- 2025年外科创伤急救处理流程模拟考试卷答案及解析
- 2025-2026学年人美版(2024)小学美术二年级上册教学计划及进度表
- 歌乐山下的英烈课件
- 涉警舆情应对课件
- 2025年四川省凉山彝族自治州中考道德与法治真题及答案
- (2025年标准)赛事承办协议书
- 美术绘本创作教学课件
- 2025无犯罪记录证明申请表申请书(模板)
- GB/T 7031-2025机械振动道路路面谱测量数据的报告
- 新材料研发开发合同
- 矿山支护工培训课件
- 品质红线管理办法
评论
0/150
提交评论