毕业设计(论文)-VB物流管理系统的设计与实现.doc_第1页
毕业设计(论文)-VB物流管理系统的设计与实现.doc_第2页
毕业设计(论文)-VB物流管理系统的设计与实现.doc_第3页
毕业设计(论文)-VB物流管理系统的设计与实现.doc_第4页
毕业设计(论文)-VB物流管理系统的设计与实现.doc_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

物流管理系统的设计和实现摘 要:本设计论文的内容,围绕物流管理系统展开。物流管理系统是典型的信息管理系统(mis),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强.数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。经过分析如此情况,我们使用美国microsoft公司的visual basic前台开发工具,使用access2000作为后台数据库,利用它们在开发数据库应用程序方面的众多优越性,尤其是vb在应用程序的客户端应用开发方面提供了大量的用于数据库应用开发的各种组件,大大提高开发的效率。首先在系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成在用户要求的时间内建立系满意的可行系统。关键词:物流管理系统;vb;数据库;数据访问对象(ado);结构化查询语句(sql)abstractin this paper,logistics management of mall system has been discussed. logistics management of mall system is a typical application of managing information system (mis),which mainly includes building up data-base of back-end and developing the application interface of front-end. the former required consistency and integrality and security of data. the later should make the application powerful and easily used.by analysis of this situation, we use microsoft visual basic as front-end and microsoft access2000 as database of back-end. there are many advantages in developing database applications, especially in the client application used vb. it provides lots of vcl to database application development. it enhances development efficiently. firstly system application prototype is built.the demand is repeated in the original system. it can give you a short-cut to build up a prototype of system application. the prototype could be modified and developed till users are satisfied.keywords:logistics management of mall system; vb; database; ado; sql一、绪论:物流概念的提出是人的能力增强所导致的必然结果。过去在工业化过程中,由于能力所限,人们的注意力放在厂区范围内,至于原料和产品在厂外怎样流动,考虑的相对少一些,只要成本低就好。随着人的能力的增强和社会化、专业化大生产体系的建立,人们开始将一个区域,甚至整个世界、整个地球看做一个大工厂、一个整体来研究产品生产流程的合理性和优化问题,从过去把重点放在生产工厂的合理建设转移到把重点放在物资流通全过程的合理设计上,仅把工厂看做物资流动过程中的一个驻留点。狭义地讲,如果认为运输组织意味着运输过程优化,侧重于合理使用运输工具,那么物流组织则意味着流动过程的优化,侧重于物资流动方式的合理性。由运输向物流的转变相当于把运输工具与运输对象的位置做了对调。再进一步讲,这种转变把生产与流通运输这一对对立统一的事物的位置也做了调整,过去以研究生产为主,运输流动为辅,现在以流通运输为主,生产为辅。这就是物流概念的新意所在。位置的调换会使人产生不同的感觉,这样做有时有利于启发新思路,有利于解决问题和提高管理水平。这也说明并非只有新的事物、新的技术能给人们带来效益,一个理念、观念或思路的改变也会给人们带来新意和效益。它遵循的基本规律是:理念改变概念改变业务改变效果改变。抓住物流概念的实质才能纲举目张、有的放矢,做到转变服务意识,从坐等客户上门到主动上门为客户服务,并提供多样化的、使客户满意的服务。也正因为服务质量的改善,扩大了服务范围,使许多物流经营者获得显著效益,与过去的运输过剩和不景气相比,运输市场出现了蓬勃发展的势头。二、课题背景:国家对企业信息化的重视、电子政务的推广、海关的改革、物流业务自身的迅速发展,都充当了物流信息化进程中强有力的助推器,而it业对于物流的关注则成为了直接的动力。整个物流产业对于信息技术的需求分为三类,应该提倡效益为本、需求为先、循序渐进的信息化实施之路。 基础信息化需求仍是主流 第一类是基础信息化。由于信息技术的发展和普及,特别是近几年,互联网技术已经在解决信息共享、信息传输、信息标准和信息成本等问题上,有了长足的进步,使得信息可以广泛地成为调控和决策的基础。因此,信息化最大的作用就是使企业顺利实现信息的采集、传输、加工和共享,最后在决策过程中有效地利用各种信息,从而提高经济效益。 这之中有很多的难点,比如说信息的采集,如果企业的信息系统和业务系统是两套,就不容易实现实时的信息采集,所以,必须要使业务系统和信息系统合一,或者说必须用信息系统来做业务。只有这样,才能够真正解决好信息的采集问题。而信息的共享,会涉及到很多机制问题,目前,大量的企业还不能够做到信息共享。因此,信息用于决策的部分还不多。所以,在这样一个情况下,完善基础信息化建设是首先要做的事。 优化带来管理效益的提高 在基础信息化实现以后,就会有第二层的需求。一些条件比较好的企业经过一段时间运行以后,将会开始寻求改进,利用积累下来的数据,进行优化。 优化主要是在两个层面上,一个是流程的优化,会涉及到整个的流程再造,这就需要用数据来分析,所以一定要有第一阶段的基础。第二个方面的优化是日常操作的优化,比如说每天都有的库存的改变、运输的调度,同样也需要信息系统的支持。 做好优化的工作,将能够大大提高物流管理的效率。流程的改造、日常操作的优化都会带来看得见的效益。所以,这就比仅仅依赖于获得信息,还是人工决策,要上一个层次,等于是机器用数据来进行优化的决策。 当然,这个要求相对要高一些,因为这要求在相应的信息系统中必须有一个优化的模块。换句话说,要有一个实现优化的模型和算法,而在实际操作中,这样的模型是很难概括的,如果不对业务进行深入地了解,绝对不能形成这样的优化模型,同时还要保证实时、高效,才有可能满足业务的需要。 目前,这一层次的信息系统建设进行得还很不完备,据估计,在收集到的案例中,明显含有这块功能的信息系统仅占15%左右。 供应链管理打造共赢模式 第三层次,也是最高层次的需求,就是供应链管理的工具。供应链这个概念包含的内容很多,不仅仅是物流,还包括其他方面的内容。供应链是用来调节企业和企业之间的协作关系、在市场经济成熟到一定程度之后出现的一种概念。在市场经济发展初期,企业和企业之间是完全竞争的,只有到了成熟的产品链、价值链、服务链形成以后,企业和企业之间才有一种依存和战略合作的关系,它们在业务上才会产生协同的要求。一旦建立这种要求,企业之间就需要用一套信息系统把这一要求固定下来,来执行业务上的协同操作。例如,在上下游的企业之间,库存信息对彼此是公开的,采购不再是由一次次的招标来完成,而是变成自动补货。这种情况是建立在企业经营链基础之上的一种新的业务模式,而供应链管理的软件,正是用来解决这些问题的有效工具。 立足实际力争三步并作一步走 我国物流信息化目前的需求仍是以底层的基础信息化为主。现有的物流管理软件大多仅仅是反映信息,只有少数很成熟的软件对流程和操作的优化具备很强的功能。 将物流信息化的需求分为三层,有助于了解发展的趋势,了解自己的目标。尽管供应链管理在我国现在还没有太多成功案例,但是并不代表没有这方面的发展条件。只要企业之间不断加强合作,建立战略合作伙伴关系,进行业务上的协同,必将促进供应链、价值链的形成。所以,只要充分利用资源,我国的物流信息化实现三步并作一步走,是完全有可能的。但是,实现这一目标,就要求企业必须给自己定好位,绝对不能从观念出发,不能脱离实际,每一层的需求都需要一定的基础、一定的管理水准、一定的物质和技术条件。从这个意义上讲,只有最合适企业的系统才可能取得成功。 三、课题的任务利用可视化编程语言(microsoft visual basic)和数据库编程语言(sql)完成整个物流管理系统的设计,掌握科技文献检索的方法,完成论文的撰写。在此次要物流管理系统中,我的工作包括:1、 制订可行性分析报告,进行项目需求分析,完成e-r模型设计;2、 功能及模块的初步设计;3、 数据库设计与实现;四、项目可行性分析 具体要求:本次开发任务所要完成的是物流管理系统,以实现物流智能化管理,按照具体环境设定对其提出如下具体要求:1、 分级的数据库和用户管理。要求具有可靠的数据库连接,用户必须通过密码才能登陆功能使用环境。并且根据不同用户提供不同的权限。2、 实现货品资料的管理,添加、删除、修改等操作。3、 实现仓库资料的管理,添加、删除、修改等操作。4、 实现物流的管理,进货、出货、货品流动等操作。5、 实现报表浏览打印等功能。6、 帮助功能。7、 可移植可扩充性。 开发周期可行性:1、 可行性研究及需求分析:一周时间2、 程序概要设计:一周时间3、 程序详细设计:一周时间4、 系统测试及试运行、修改:一周时间 项目开发环境及开发平台:1. 系统设计平台:microsoft windows 2000 sp22. 数据库设计工具:microsoft access 20003. 程序设计工具:microsoft visual basic 6.0何为visual basic?basic到visual basic的发展 basic是beginners all-purpose symbolic instruction code(初学者通用符号指令代码)的缩写,是国际上广泛使用的一种计算机高级语言。basic简单、易学,目前仍是计算机入门的主要学习语言之一。basic语言的问世及发展 basic语言自其问世经历了以下四个阶段:第一阶段:(1964年70年代初) 1964年basic语言问世。 第二阶段:(1975年80年代中) 微机上固化的basic第三阶段:(80年代中90年代初) 结构化basic语言。第四阶段:(1991年以来) visual basic 1991年,微软推出了visual basic1.0版。这在当时引起了很大的轰动。许多专家把vb的出现当作是软件开发史上的一个具有划时代意义的事件。其实,以我们现在的目光来看,vb10的功能实在是太弱了。但在当时,它是第一个“可视”的编程软件。这使得程序员欣喜之极,都尝试在vb的平台上进行软件创作。微软也不失时机地在四年内接连推出vb20,vb30,vb40三个版本。并且从vb3开始,微软将access的数据库驱动集成到了vb中,这使得vb的数据库编程能力大大提高。从vb4开始,vb也引入了面向对象的程序设计思想。vb功能强大,学习简单。而且,vb还引入了“控件:的概念,使得大量已经编好的vb程序可以被我们直接拿来使用,如今,vb已经有了6.0版。通过几年的发展,它已成为一种真真专业化的开发语言和环境。用户认为可用visual basic快速创建windows程序,在现在还可以编写企业水平的客户服务器程序及强大的数据库应用程序,visual basic新版中还有更多可用功能。visual basic的编程基础 什么是程序 ?首先需要知道下面这个问题的答案:“程序到底是什么?”计算机程序是指令集,它告诉计算机如何执行特殊的任务。读者也许对许多种指令熟悉,如按菜谱烹调特殊的食物或按指定的方向到达不熟悉的目的地。没有这些特殊的指令,就不能执行预期的任务。 计算机也是一样,只是它们需要为执行的每一个任务提供指令。甚至对最简单的任务也需要指令,例如如何取得击键,怎样在屏幕上放一个字母,怎样在磁盘中保存讯息。幸运的是,许多这样的指令包含在处理器芯片中或内置于操作系统中,因此用户不必担心它们。相反,应集中于为任务提供指令,如计算雇员工资,创建邻居邮件列表,或设置格式化文本以显示最近的年度报表信息。虽然我们用自然语言读这些指令,但计算机指令必须是二进制代码,即一系列在计算机内存和处理器中的开或关的状态。有些语言,如汇编程序,可以允许直接写这种类型的代码。但是,以这种方法编程十分困难,因此visual basic和其他编程语言使程序员可以用与自然语言有点相近的方式编写指令。然而,即使是这些指令仍有限,并要遵循高度定义的结构。事件驱动编程: visual basic允许创建反映用户动作和系统事件的程序。这种编程叫事件驱动编程。要了解事件驱动程序是怎样工作的,先要了解过去的程序怎样运行及在windows环境中有何不同。 在windows之前,程序以顺序方式运行。也就是说,一旦程序启动,它就一条指令一条指令的向前执行,直到程序结束或出现致命错误。面向对象编程 使创建windows程序较为容易的关键技术是面向对象编程,或oop。这种技术可以创建可重用组建,它是程序的组成模块。几个定义: 在讨论visual basic时,经常可以听到这些术语,因此对这些术语的基本理解十分有帮助。控件提供程序可见界面的可重用对象。控件的示例有文本框、标签和命令按钮。 事件 由用户或操作系统引发的动作。事件的示例有击键、单击鼠标、一段时间的限制,或从端口接收数据。方法 嵌入在对象定义中的程序代码,它定义对象怎样处理信息并响应某事件。例如,数据库对象有打开纪录集并从一个记录移动到另一个记录的方法。 对象 程序的基本元素,它含有定义其特征的属性,定义其任务和识别它可以响应的事件的方法。控件和窗体是visual basic中所有对象的示例。 过程 为完成任务而编写的代码段。过程通常用于响应特定的事件。 属性 对象的特征,如尺寸、位置、颜色或文本。属性决定对象的外观,有时也决定对象的行为。属性也用于为对象提供数据和从对象取回信息。 实施计划:1. 2006-03-01开始进行任务书设计2. 2006-03-10开始可行性研究和需求分析3. 2006-03-20 开始编码4. 2006-04-02完成编码,编译5. 2006-04-12完成测试,发布五、项目总体设计 程序模型主界面帮助货品管理仓库管理物流管理添加删除修改添加删除修改添加删除修改登陆 数据库设计 数据库类型:microsoft access6.0数据库 数据库连接:ado(activex data object)数据库连接控件 数据库名称:lms.mdbbale表: 用于保存货品信息字段名字段类型关键字说明baleidcharyes货品idbalenamechar货品名称balefromchar货品产地balespecchar货品规格balepricecurrency货品价格balememomemo货品备注config表:系统设置表字段名字段类型关键字说明setuptimedatetime程序启用时间adminpswchar管理员密码guestenabledboolean是否支持匿名访问depot表:仓库资料表字段名字段类型关键字说明depotidcharyes仓库iddepotnamechar仓库名称depotlocalchar仓库地址depotmemomemo仓库注释operator表:管理员信息表字段名字段类型关键字说明opidcharyes管理员idoploginchar管理员用户名oppswchar管理员密码openabledchar管理员是否可用opmemomemo管理员备注storage表:存储信息表字段名字段类型关键字说明opidcharyes管理员idoploginchar管理员用户名oppswchar管理员密码openabledchar管理员是否可用opmemomemo管理员备注storage:货物库存表字段名字段类型关键字说明sidcharyes存储记录sbbaleidchar存储货品编号sdepotidchar存储仓库编号stotalchar存储数量 ado程序接口设计a) 数据库的访问控制方法:目前在vb中可以通过三种方式访问数据库:1、idc(internet database connector)方式;idc是一个传统的数据库查询工具,用来定义和执行数据库查询的sql命令,并向浏览器返回一个指定数据格式的页面。使用idc访问数据库最大的特点是简单,几乎不需要编程就能实现对数据库的访问。2、ado(activex data objects)方式;ado访问数据库,更像编写数据库应用程序。它把绝大部分的数据库操作封装在七个对象中,在编程调用这些对象执行相应的数据库操作。ado是asp技术的核心之一,它集中体现了asp技术丰富而灵活的数据库访问功能。ado建立了基于web方式访问数据库的脚本编写模型,不仅支持任何大型数据库的核心功能,而且支持许多数据库所专有的特性。一般使用ado访问数据库的程序应该使用connection对象建立并管理与远程数据库的连接,用command对象提供灵活的查询,用recordset对象访问数据库查询所返回的结果。这三者是ado的最核心的对象。这种方式将是我的设计中用到的主要数据库访问方式。3、rds(remote data service)方式。rds提供访问远程数据库的功能。ado虽然能够提供非常强大的数据库访问功能,但是它不支持数据远程操作(data remoting)。而rds支持数据远程操作。它不仅能执行查询并返回数据库查询结果,而且可以把服务器端的数据“搬到“用户端修改,并调用一个数据库更新命令,将用户端修改的数据写回数据库,象使用本地数据库一样。b) ado 定义编程模型,即访问和更新数据源所必需的活动顺序。编程模型概括了 ado 的全部功能。编程模型意味着对象模型,即响应并执行编程模型的“对象”组。对象拥有“方法”,方法执行对数据进行的操作;对象拥有“属性”,属性指示数据的某些特性或控制某些对象方法的行为。与对象关联的是“事件”,事件是某些操作已经发生或将要发生的通知。c) ado 提供执行以下操作的方式: 1. 连接到数据源。同时,可确定对数据源的所有更改是否已成功或没有发生。2. 指定访问数据源的命令,同时可带变量参数,或优化执行。3. 执行命令。4. 如果这个命令使数据按表中的行的形式返回,则将这些行存储在易于检查、操作或更改的缓存中。5. 适当情况下,可使用缓存行的更改内容来更新数据源。6. 提供常规方法检测错误(通常由建立连接或执行命令造成)。 在典型情况下,需要在编程模型中采用所有这些步骤。但是,由于 ado 有很强的灵活性,所以最后只需执行部分模块就能做一些有用的工作。例如:将数据从文件直接存储到缓存行,然后仅用 ado 资源对数据进行检查。d) ado编程模型:连接通过“连接”可从应用程序访问数据源,连接是交换数据所必需的环境。通过如 microsoft internet information server 作为媒介,应用程序可直接(有时称为双层系统)或间接(有时称为三层系统)访问数据源。对象模型使用 connection 对象使连接概念得以具体化。“事务”用于界定在连接过程中发生的一系列数据访问操作的开始和结束。ado 可明确事务中的操作造成的对数据源的更改或者成功发生,或者根本没有发生。如果取消事务或它的一个操作失败,则最终的结果将仿佛是事务中的操作均未发生,数据源将会保持事务开始以前的状态。对象模型无法清楚地体现出事务的概念,而是用一组 connection 对象方法来表示。命令通过已建立的连接发出的“命令”可以某种方式来操作数据源。一般情况下,命令可以在数据源中添加、删除或更新数据,或者在表中以行的格式检索数据。对象模型用 command 对象来体现命令概念。command 对象使 ado 能够优化对命令的执行。参数通常,命令需要的变量部分即“参数”可以在命令发布之前进行更改。例如,可重复发出相同的数据检索命令,但每一次均可更改指定的检索信息。参数对执行其行为类似函数的命令非常有用,这样就可知道命令是做什么的,但不必知道它如何工作。例如,可发出一项银行过户命令,从一方借出贷给另一方。可将要过户的款额设置为参数。对象模型用 parameter 对象来体现参数概念。记录集如果命令是在表中按信息行返回数据的查询(行返回查询),则这些行将会存储在本地。对象模型将该存储体现为 recordset 对象。但是,不存在仅代表单独一个 recordset 行的对象。记录集是在行中检查和修改数据最主要的方法。recordset 对象用于: 1. 指定可以检查的行。2. 移动行。3. 指定移动行的顺序。4. 添加、更改或删除行。5. 通过更改行更新数据源。6. 管理 recordset 的总体状态。 字段一个记录集行包含一个或多个“字段”。如果将记录集看作二维网格,字段将排列构成“列”。每一字段(列)都分别包含有名称、数据类型和值的属性,正是在该值中包含了来自数据源的真实数据。对象模型以 field 对象体现字段。 要修改数据源中的数据,可在记录集行中修改 field 对象的值,对记录集的更改最终被传送给数据源。作为选项,connection 对象的事务管理方法能够可靠地保证更改要么全部成功,要么全部失败。错误 错误随时可在应用程序中发生,通常是由于无法建立连接、执行命令或对某些状态(例如,试图使用没有初始化的记录集)的对象进行操作。对象模型以 error 对象体现错误。任意给定的错误都会产生一个或多个 error 对象,随后产生的错误将会放弃先前的 error 对象组。属性每个 ado 对象都有一组唯一的“属性”来描述或控制对象的行为。属性有两种类型:内置和动态。内置属性是 ado 对象的一部分并且随时可用。动态属性则由特别的数据提供者添加到 ado 对象的属性集合中,仅在提供者被使用时才能存在。对象模型以 property 对象体现属性。集合ado 提供“集合”,这是一种可方便地包含其他特殊类型对象的对象类型。使用集合方法可按名称(文本字符串)或序号(整型数)对集合中的对象进行检索。ado 提供四种类型的集合: connection 对象具有 errors 集合,包含为响应与数据源有关的单一错误而创建的所有 error 对象。command 对象具有 parameters 集合,包含应用于 command 对象的所有 parameter 对象。recordset 对象具有 fields 集合,包含所有定义 recordset 对象列的 field 对象。另外,connection、command、recordset 和 field 对象都具有 properties 集合。它包含所有属于各个包含对象的 property 对象。 ado 对象拥有可在其上使用的诸如“整型”、“字符型”或“布尔型”这样的普通数据类型来设置或检索值的属性。然而,有必要将某些属性看成是数据类型“collection object”的返回值。相应的,集合对象具有存储和检索适合该集合的其他对象的方法。事件“事件”是对将要发生或已经发生的某些操作的通知。一般情况下,可用事件高效地编写包含几个异步任务的应用程序。对象模型无法显式体现事件,只能在调用事件处理程序例程时表现出来。在操作开始之前调用的事件处理程序便于对操作参数进行检查或修改,然后取消或允许操作完成。操作完成后调用的事件处理程序在异步操作完成后进行通知。多个操作经过增强可以有选择地异步执行。例如,用于启动异步 recordset.open 操作的应用程序将在操作结束时得到执行完成事件的通知。e) ado常用对象和方法:1、 connection对象:ado数据库连接对象,用于实现ado与数据库之间的连接。2、 command对象:ado命令对象,用于保存sql执行命令,负责具体对数据库的操作。3、 recordset对象:ado记录集对象,用于保存sql执行命令结果。4、 addnew方法:添加新的记录到数据库中。5、 delete方法:删除数据库中的记录。6、 update方法:更新数据库记录。 vb程序设计名称类型说明mdifrmmainmdi form主mdi窗体frmbaleaddform(mdi child)货品添加窗体frmbaledelform(mdi child)货品删除窗体frmbaleupdateform(mdi child)货品资料更改窗体frmdepotaddform(mdi child)仓库添加窗体frmdepotdelform(mdi child)仓库删除窗体frmdepotupdateform(mdi child)仓库资料更改窗体frmbaleinform(mdi child)进货管理窗体frmbaleoutform(mdi child)出活管理窗体frmbaleupdateform(mdi child)货品流动管理窗体frmsysmanageform(mdi child)系统管理窗体frmloginform(mdi child)登陆窗体frmaboutform关于窗体dataenvdataenvironment报表数据环境datarepbaledatareport货品报表datarepdepotdatareport仓库报表modbootmodule启动模块七、模块详细设计a. 货品添加窗体:frmbaleadd.frm 窗体控件:控件名称说明frmbaleadd货品添加窗体framain主框架txtbaleid货品id信息文本框txtbalename货品名称信息文本框txtblaefrom货品产地信息文本框txtbalespec货品规格信息文本框txtbaleprice货品价格信息文本框txtbalememeo货品备注信息文本框cmdaddnew添加按钮cmdconfirm确定操作按钮cmdcancel撤消操作按钮cmdrefresh刷新按钮cmdexit退出按钮adomain主ado控件adotest测试ado控件 该窗体在用户登陆时列出所有货品清单,但用户选择添加货品记录后,会激活资料输入功能,若用户输入完成后点击确认后,会自动检测是否在数据库中有没有重复编号的数据。若有,拒绝添加,代码如下:private sub cmdaddnew_click()/点击添加 cmdaddnew.enabled = false cmdrefresh.enabled = false cmdconfirm.enabled = true cmdcancel.enabled = true activetextbox adomain.recordset.addnewend subprivate sub cmdconfirm_click()/确认添加 if txtbaleid.text = or txtbalename.text = then aa = msgbox(请填写货品编号和名称, vbokonly, ) else 检查是否有重复的货品id adotest.recordsource = select * from bale where baleid= & txtbaleid.text & adotest.refresh if not adotest.recordset.eof then aa = msgbox(相同货品编号已经存在,请重新输入!, vbokonly, ) else adomain.recordset.update cmdaddnew.enabled = true cmdrefresh.enabled = true cmdconfirm.enabled = false cmdcancel.enabled = false adomain.recordsource = select * from bale adomain.recordset.requery adomain.refresh end if end ifend subprivate sub cmdcancel_click()/撤消添加 adomain.recordset.cancel adomain.refresh cmdaddnew.enabled = true cmdrefresh.enabled = true cmdconfirm.enabled = false cmdcancel.enabled = false unactivetextboxend subb. 货品删除窗体:frmbaledel.frm控件名称说明frmbaledel货品删除窗体framain主框架txtbaleid货品id信息文本框txtbalename货品名称信息文本框txtblaefrom货品产地信息文本框txtbalespec货品规格信息文本框txtbaleprice货品价格信息文本框txtbalememeo货品备注信息文本框cmddel删除按钮cmdconfirm确定操作按钮cmdcancel撤消操作按钮cmdrefresh刷新按钮cmdexit退出按钮adomain主ado控件adotest测试ado控件 在该窗体中当用户点击了删除按钮会提示是否真正要删除,如果用户确认,则删除当前记录,否则撤消操作。具体代码如下:private sub cmddel_click() cmddel.enabled = false cmdrefresh.enabled = false cmdconfirm.enabled = true cmdcancel.enabled = true dagrbale.enabled = falseend subprivate sub cmdcancel_click() adomain.recordset.cancel adomain.refresh cmddel.enabled = true cmdrefresh.enabled = true cmdconfirm.enabled = false cmdcancel.enabled = false dagrbale.enabled = trueend subprivate sub cmdconfirm_click() adomain.recordset.delete adomain.recordsource = select * from bale adomain.recordset.requery adomain.refresh cmddel.enabled = true cmdrefresh.enabled = true cmdconfirm.enabled = false cmdcancel.enabled = false dagrbale.enabled = trueend subc. 货品盘点窗体:frmbaleupdate.frm控件名称说明frmbaleupdate货品信息更新窗体framain主框架txtbaleid货品id信息文本框txtbalename货品名称信息文本框txtblaefrom货品产地信息文本框txtbalespec货品规格信息文本框txtbaleprice货品价格信息文本框txtbalememeo货品备注信息文本框cmdupdate修改资料按钮cmdconfirm确定操作按钮cmdcancel撤消操作按钮cmdrefresh刷新按钮cmdexit退出按钮adomain主ado控件adotest测试ado控件 在该窗体中当用户点击了更新按钮会会激活资料修改功能,若用户输入完成后点击确认后,会自动检测是否在数据库中有没有重复编号的数据。若有,拒绝添加,具体代码如下:private sub cmdcancel_click()/撤消更新 adomain.recordset.cancel adomain.refresh cmdupdate.enabled = true cmdrefresh.enabled = true cmdconfirm.enabled = false cmdcancel.enabled = false unactivetextboxend subprivate sub cmdconfirm_click()/确认更新 if txtbaleid.text = or txtbalename.text = then aa = msgbox(请填写货品编号和名称, vbokonly, ) else 检查是否有重复的货品id adotest.recordsource = select * from bale where baleid= & txtbaleid.text & adotest.refresh if not adotest.recordset.eof and p_baleid txtbaleid.text then aa = msgbox(相同货品编号已经存在,请重新输入!, vbokonly, ) else adomain.recordset.update cmdupdate.enabled = true cmdrefresh.enabled = true cmdconfirm.enabled = false cmdcancel.enabled = false adomain.recordsource = select * from bale adomain.recordset.requery adomain.refresh unactivetextbox end if end ifend subprivate sub cmdupdate_click()/点击更新 cmdupdate.enabled = false cmdrefresh.enabled = false cmdconfirm.enabled = true cmdcancel.enabled = true p_baleid = txtbaleid.text activetextboxend subd. 主mdi窗体:mdifrmmain.frm 窗体控件:控件名称说明mdifrmmainmdi主窗体 该窗体在系统启动时作为主要的外边界,基于mdi设计,设置各种菜单于其之上,不同的用户登陆会显示不同的菜单形式。 窗体代码:private sub m_about_click()/关于菜单单击事件 frmabout.showend subprivate sub m_baleadd_click()/货品资料添加菜单单击事件 frmlogin.hide frmbaleadd.showend subprivate sub m_balecmove_click() /货品流动菜单单击事件 frmlogin.hide frmbalemove.showend subprivate sub m_baleupdate_click()/货品资料修改菜单单击事件 frmlogin.hide frmbaleupdate.showend subprivate sub m_baledel_click()/货品删除菜单单击事件 frmlogin.hide frmbaledel.showend subprivate sub m_depotadd_click()/仓库添加菜单单击事件 frmlogin.hide frmdepotadd.showend subprivate sub m_depotdel_click()/仓库删除菜单单击事件 frmlogin.hide frmdepotdel.showend subprivate sub m_depotupdate_click()/仓库资料修改菜单单击事件 frmlogin.hide frmdepotupdate.showend subprivate sub m_exit_click()/退出菜单单击事件 if publogin then aa = msgbox(用户 & publogin & 正在登录中,确实要退出吗?, vbyesno, ) if aa = vbyes then end end if else end end ifend subprivate sub m_login_click()/登陆菜单单击事件 if publogin then aa = msgbox(用户 & publogin & 已经在登录状态!, vbo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论