基于Access的企业进销存管理系统的分析与设计毕业论文.doc_第1页
基于Access的企业进销存管理系统的分析与设计毕业论文.doc_第2页
基于Access的企业进销存管理系统的分析与设计毕业论文.doc_第3页
基于Access的企业进销存管理系统的分析与设计毕业论文.doc_第4页
基于Access的企业进销存管理系统的分析与设计毕业论文.doc_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

华北水利水电学院毕业设计基于Access的企业进销存管理系统的分析与设计毕业论文目 录摘要Abstract1 引言11.1 课题的研究背景11.2 课题的研究意义12 相关技术背景32.1 VBA介绍32.2 Microsoft Office Access技术介绍32.3 Microsoft Office Visio技术介绍43 系统分析63.1 系统需求分析63.2 系统可行性分析73.3 业务流程分析83.4 数据流程分析94 系统设计124.1系统总体设计124.1.1 进销存管理系统总体结构图及功能说明124.2 数据库设计134.2.1 数据库设计原则144.2.2 概念结构设计144.2.3 逻辑结构设计184.2.4 数据库表的实现195 系统实现245.1 登录模块的实现245.2 各功能模块的实现265.2.1 基本资料管理模块265.2.2 进货管理模块285.2.3 售货管理模块345.2.4 库存管理模块386 系统测试416.1 登录窗体的测试416.2 各个功能模块的测试436.2.1 进货单管理模块的测试436.2.2 售货单管理模块的测试447 结语46参考文献47致 谢48附 录49附录1:英文原文49附录2:中文译文53 华北水利水电学院毕业设计1 引 言1.1 课题的研究背景随着全球经济一体化,国内经济改革的逐年深化,使得国内中小企业都面临着巨大的挑战。管理体制的不完善,生产技术不能和集团性质的大公司相竞争,成为中小企业发展需要解决的首要问题,而即使企业具有了一定的先进技术,由于管理体制中种种问题的制约,也不能使企业在激烈的竞争中占有一席之地。随着计算机技术的飞速发展,计算机在企业管理中的全面普及,给中小企业带来新鲜的血液,利用计算机技术实现商品的进销存管理势在必行。对于企业来说,利用计算机支持企业高效率完成进销存管理产品的日常事务,是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件。而在现实中,企业管理并不能面面俱到,有所不为才能有所为,把尽量少的麻烦带给用户。如果实行手工操作,会耗费工作人员大量的时间和精力,使用计算机进行商品管理工作时,不仅可以较大程度地保证工作的准确无误,而且还可以利用计算机对有关进、销、存货物的各种信息进行统计。同时计算机还具有手工管理所无法比拟的优点,例如:查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人员管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。不同的企业具有不同的进销存管理制度,这就决定了不同的企业需要不同的进销存管理系统。很多中小型企业目前还是使用票据等进行手工操作管理,面对目前的实际状况,迫切需要开发出一个适合中小型企业使用的管理系统来适应这些工作。1.2 课题的研究意义 在现代市场经济中,销售是企业运作的重要环节。进销存管理是商业企业经营管理中的核心环节,也是一个企业能否取得效益的关键。如果能做到合理生产、及时销售、库存量最小、减小积压,那么企业就能够取得最佳的经济效益。由此可见,进销存管理决策的正确与否直接影响了企业的经济效益。在传统方式上,公司之间通常采用电报、电话、传真等方式传递进货、发货、退货等一些信息。总公司的商务部门在接到分公司或代理商传来的订单和银行汇款单据传真件后,开出产品出库通知,然后再把相关的进、销、存信息手工存档,再对这些信息进行统计分析,才能了解到整个公司的进货、销售和库存情况。这种信息传递、管理方式不仅效率低,可靠性、安全性和保密性都无法满足要求。通过进销存管理系统,及时通过网络把决策信息传递给相关的决策人,从而可以及时发现问题、解决问题,更好地把握机会。更重要的是利用计算机技术可以使商品的管理规范化、制度化、数字化、提高管理水平、降低管理成本、减轻工作强度、提高工作效率,使企业、公司可以高效率运转。2 相关技术背景2.1 VBA介绍Visual Basic for Applications(简称VBA)是新一代标准宏语言1,是基于Visual Basic for Windows 发展而来的。它与传统的宏语言不同,传统的宏语言不具有高级语言的特征,没有面向对象的程序设计概念和方法。而VBA提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。VBA易于学习掌握,可以使用宏记录器记录用户的各种操作并将其转换为VBA程序代码。这样用户可以容易地将日常工作转换为VBA程序代码,使工作自动化。因此,对于在工作中需要经常使用Office套装软件的用户,学用VBA有助于使工作自动化,提高工作效率。另外,由于VBA可以直接应用Office套装软件的各项强大功能,所以对于程序设计人员设计和开发更加方便快捷。2.2 Microsoft Office Access技术介绍Access是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一2。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。 Access是一种关系型数据库管理系统,其主要特点如下: (1)储存方式单一Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件,便于用户的操作和管理。 (2)面向对象Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。 (3)界面友好、易操作 Access是一个可视化工具,其风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。 (4)集成环境、处理多种数据信息 Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。 (5)Access支持ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。Access还可以将程序应用于网络,并与网络上的动态数据相联接,利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。2.3 Microsoft Office Visio技术介绍Microsoft Visio是Windows操作系统下运行的流程图和矢量绘图软件,它是Microsoft Office软件的一个部分。2000年微软公司收购同名公司后,Visio成为微软公司的产品,它的竞争者是Adobe Illustrator、Macromedia FreeHand和CorelDraw。另外,Visio虽然是Microsoft Office软件的一个部分,通常以单独形式出售,并不捆绑于Microsoft Office套装中3。Visio是当今最优秀的绘图软件之一,它将强大的功能和易用性完美结合,可广泛应用于电子、机械、通信、建筑、软件设计和企业管理等众多领域。Microsoft Office Visio 2003 为用户提供了可视化和交流观点、信息和系统的能力。用户可以使用简单、灵活的工具方便地创建商业和技术图表和图形,用震撼的效果表达用户的观点。Microsoft Office Visio 2003功能:(1)记录和分析商业过程 使用支持商业过程管理 (BPM) 项目的模板和形状来设计、记录和分析商业过程。(2)按个人跟踪批注 使用审阅模式轻松跟踪他人添加的批注、形状和数字墨迹。(3)更方便地创建和使用技术图形 利用Visio 2003中数据库、工程、网络、软件和Web图形制作的众多增强功能。(4)用集体讨论工具捕获新观点 在集体讨论过程中捕获观点并组织结构,然后将图形导出到Microsoft Word、Microsoft Excel或 XML中。(5)在 Outlook 中创建日历 将 Microsoft Outlook日历转换成Visio日历,后者具有丰富的格式,可以方便地与他人共享。3 系统分析系统分析是应用系统思想和方法,把复杂的对象分解成简单的组成部分,找出这些部分的基本属性和彼此间的关系。系统分析是系统开发中最重要,也是最困难的阶段。系统分析阶段的基本任务是系统分析员与用户在一起充分了解用户的需求,并把双方的理解用系统说明书表达出来。系统说明书审核通过之后,将作为系统设计的依据,即为验收系统的依据4。3.1 系统需求分析在市场经济中,销售是企业运作的重要环节。为了更好地推动销售,不少企业建立分公司或实行代理制,通过分公司或代理把产品推向最终用户。这些分公司或代理商大多分布在全国各地,甚至是国外,远距离频繁的业务信息交流是这些企业业务活动的主要特点。在传统方式上,公司之间通常采用电传、电报、电话等方式传递订货、发货、到货、压货、换货、退货等信息,总公司的商务部门在接到分公司或代理商穿来的定单和银行汇款单据传真件后,开具产品出库通知,然后再把相关的进、销、存信息手工存档,再对这些信息进行统计分析,才能了解到整个公司的生产、销售和库存情况。这种信息传递、管理方式不仅效率低,可靠性、安全性和保密性都无法满足要求。通过进销存管理系统,及时通过网络把决策信息传递给相关的决策人,从而可以及时发现问题、解决问题,更好地把握机会。更重要的是利用计算机技术可以使商品的管理规范化、制度化、数字化、提高管理水平、降低管理成本、减轻工作强度、提高工作效率,使企业、公司可以高效率运转。该进销存管理系统是适合于中小型企业采用的管理系统,它应具有以下基本功能:(1) 能对商品资料、客户资料和供应商资料进行基本的信息管理,实现添加、查找、编辑、删除等功能;(2) 实现进货管理,能在处理进货单的同时对库存资料进行更新;能对进货历史按不同条件进行查询并打印进货单据;(3) 实现售货管理,能在处理售货单的同时对库存资料进行及时更新,在库存不足时及时提醒,能对售货历史按不同条件查询并打印售货单据;(4) 对库存商品进行管理并按拼音进行模糊查询,打印库存报表时自动统计库存金额;(5) 对用户使用系统进行控制,被授权的用户才能使用该系统。3.2 系统可行性分析系统可行性分析即在系统开发前,从技术、经济和管理方面进行全面、深入地调查、研究、分析和比较,将投资少、进度快、效益高的最佳方案推荐给决策者,来减少和避免决策上造成的人、财、物等方面的不必要的损失。系统的可行性分析包括两个部分5:分析开发新系统的必要性和可行性。开发本系统的必要性研究如下:(1)必要性分析由于目前中小型企业的进销存业务日益繁杂,使用传统的对进销存信息进行手工存档的方式不仅效率低,可靠性、安全性和保密性都无法满足要求。而利用计算机技术可以使商品的管理规范化、制度化、数字化、提高管理水平、降低管理成本、减轻工作强度、提高工作效率,使企业、公司可以高效率运转。因此,利用计算机技术实现商品的进销存管理势在必行。开发本系统的可行性研究如下:(1)技术可行性:技术上的可行性分析主要分析技术条件能否顺利完成开发工作,软、硬件能否满足需要。本系统采用基于Windows的桌面关系数据库管理系统(RDBMS)Microsoft Office Access2007,并使用新一代标准宏语言Visual Basic for Applications(简称VBA),其界面友好,便于用户理解、操作。该数据库系统能够处理大量数据,同时保持数据的完整性、安全性。因此,本系统的开发平台已成熟可行。硬件方面,在科技飞速发展的今天,硬件更新速度越来越快,容量越来越大,可靠性越来越高,价格越来越便宜,因此硬件平台也能够满足本系统所需。(2)经济可行性:计算机技术发展异常迅猛的根本原因在于计算机的应用促进了社会经济的发展,给社会带来了巨大经济效益。该系统成本低,维护费用少,简化了企业日常的进销存管理工作,提高了工作效率,避免了人工管理过程中的数据易错所带来的一系列连锁反应,提高了经济效益。因此,该系统具备经济可行性。3.3 业务流程分析业务流程分析的主要任务是调查系统中各个环节的管理业务活动,掌握管理业务的内容、作用以及信息的输入、输出、数据存储和信息处理方法及过程,为建立MIS(Management Information System,管理信息系统)数据模型和逻辑模型打下基础,在此基础上以标准的符号,绘制成描述现行系统业务的流程图。(1) 业务流程图的基本符号说明如图3-1所示:图3-1 业务流程图符号说明图(2) 进销存管理系统业务流程图该系统是供企业内部使用,因此只有企业内部被授权的管理人员才能进入后台管理系统。企业管理员通过身份验证进入管理系统,进行系统数据维护。该进销存管理系统业务流程图如图3-2所示:图3-2 进销存管理系统业务流程图如图3-2所示,系统授权用户登录之后,可以对系统的五项功能进行操作。通过对基本资料管理功能的操作,可以对商品资料、客户资料、供应商资料进行添加、保存、修改、删除、查询等操作;通过对进货管理功能的操作,可以在处理进货单的同时对进货单明细和库存资料进行更新,对进货历史按不同条件进行查询并打印进货单据;通过对售货管理功能的操作,可以在处理售货单的同时对售货单明细和库存资料进行更新,对售货历史按不同条件进行查询并打印售货单据;通过对库存管理功能的操作,可以对库存商品进行管理和查询并可打印库存报表6。3.4 数据流程分析数据流程是指数据采集、输入、处理、加工和输入的全过程。数据流程分析是将系统内部数据的流动抽象出来,从数据流动过程来考察实际业务的数据处理模式。数据流程分析主要包括对信息的流动、变换、存储等的分析,目的是要发现和解决数据流动中的问题。数据流程图(Data Flow Diagram,DFD)抽象、概括性地描述了数据流动、存储、处理的逻辑关系,也称为逻辑数据流程图7。(1) 数据流程图的基本符号说明如图3-3所示:图3-3 数据流程图基本符号说明(2) 进销存管理系统数据流程图在进销存管理系统中,通过对系统的业务流程图分析,用以下数据流图3-4描述系统中信息数据的流向。图3-4 进销存管理系统数据流程图由上图的流程图可以看出,系统用户通过添加、编辑、删除、查询客户资料、商品资料、供应商资料,经过处理后,信息流中的信息被写入F1、F2、F3信息表中。进行进货提交时,根据“进货单”表中的记录逐条更新库存记录,如果“库存资料”表中有该商品记录则添加其数量,并重新计算库存金额;如果没有该记录则追加一条商品的库存记录。更新“库存资料”表后,将“进货单”表中的记录加上“进货单管理”窗体中的相关信息逐条添加到“进货单明细”表中。完成库存更新并添加“进货单明细”表记录后,在“进货单”表中删除该条记录。进行售货提交时,根据“售货单”表中的记录逐条更新库存记录,如果“库存资料”表中库存数量小于售货数量,则提示“库存不足,请重新输入数量!”;如果库存数量满足,则减少其数量,并重新计算库存金额。更新“库存资料”表后,将“售货单”表中的记录加上“售货单管理”窗体中的相关信息逐条添加到“售货单明细”表中。完成库存更新并添加“售货单明细”表记录后,在“售货单”表中删除该条记录。输入查询条件后,可以查询相关库存资料报表、进货单据和售货单据。4 系统设计在系统设计阶段,根据实际的技术条件、经济条件和社会条件,确定系统的实施方案,即系统的物理模型。4.1系统总体设计 4.1.1 进销存管理系统总体结构图及功能说明绘制系统结构图的过程,实际上就是对系统功能模块进行分解设计的过程,即合理地将数据流程图转变为所需要的系统结构图。系统结构图将会使读者和用户能直观的了解系统的结构模式,理解系统的各个功能的结构,能很好地方便用户使用和理解整个系统。本进销存管理系统的系统结构图如图4-1所示:图4-1 进销存管理系统系统结构图如图4-1所示,进销存管理系统分为五大功能: (1) 系统管理包括重新登录和退出系统两个子模块,其主要功能是对用户使用该系统进行控制,被授权的用户才能使用该系统。(2) 基本资料管理包括商品资料管理、客户资料管理、供应商资料管理三个子模块,其功能主要是对商品、客户、供应商信息进行添加、修改、删除和查询等操作。(3) 进货管理包括进货单管理、进货单明细管理和打印进货单据三个子模块,其主要功能是在处理进货单的同时对库存资料进行更新,对进货历史按不同条件进行查询并打印进货单据。(4) 售货管理包括售货单管理、售货单明细管理和打印售货单据三个子模块,其主要功能是在处理售货单的同时对库存资料进行更新,对售货历史按不同条件进行查询并打印售货单据。(5) 库存管理包括库存资料管理、库存查询和打印库存报表三个子模块,其主要功能是对库存商品进行管理并按拼音码进行模糊查询,打印库存报表时自动统计库存金额。4.2 数据库设计 数据库设计是把现实世界的实体模型与需求转换成数据库的模型的过程,它是建立数据库应用系统的核心问题。数据库及其应用的性能都建立在良好的数据库设计的基础之上,数据库的数据是一切操作的基础,如果数据库设计不好,那么其它一切用于提高数据库性能的方法收效都是有限的。数据库设计的关键是如何使设计的数据库能合理地存储用户的数据,方便用户进行数据处理。4.2.1 数据库设计原则(1) 进行规范化设计,尽可能地减少数据冗余合理的数据库表的设计应该是在满足需求的前提下,使数据的重复量最小,尽量按照关系数据库系统理论方法去设计一个数据库,减少数据的冗余。(2) 结构设计与操作设计相结合在设计数据库结构时,有时为了编程实现的简捷和思路的清晰,往往故意增加一些冗余数据。这虽然有悖于传统的关系数据库理论,但是考虑到如果增加的冗余不会明显增加存储空间和降低处理效率,并且对编程实现有很大帮助,往往可以采用这种方法。(3) 数据结构具有相对的稳定性无论采用何种方法或手段去处理日常事务,都应该能完成相应的功能,决不能因为采用了计算机而丢失了必要的功能,或彻底改变了原有的工作流程和模式。4.2.2 概念结构设计概念结构设计是数据库设计的核心。概念结构独立于数据库的逻辑结构,也独立与所使用的具体的数据库管理系统。概念模型(E-R模型)的组成元素有:实体、属性、联系,E-R模型用E-R图表示。(1) 模型中的实体相当于一个实体集、一个表。实体用矩形框表示,实体名称标注在矩形框内。用菱形表示实体间的联系,菱形框内写上联系名,用无向边把菱形分别与有关实体相连接,在无向边旁标上联系的类型。(2) 属性是实体的性质。用椭圆框表示,与实体之间用一条线相连,表的主码是关键属性,关键属性项加下划线。(3) 各子系统模块中主键相同的字段之间存在着相互关联的关系。(4) 在程序中实现对他们的完整性和一致性控制。E-R图图例说明如图4-2所示:图4-2 E-R图图例(1) 系统用户E-R图,如图4-3所示:图4-3 系统用户E-R图(2) 供应商资料E-R图,如图4-4所示:图4-4 供应商资料E-R图(3) 商品资料E-R图,如图4-5所示:图4-5 商品资料E-R图(4) 客户资料E-R图,如图4-6所示:图4-6 客户资料E-R图(5) 进货单E-R图,如图4-7所示:图4-7 进货单E-R图(6) 售货单E-R图,如图4-8所示:图4-8 售货单E-R图(7) 库存资料E-R图,如图4-9所示:图4-9 库存资料E-R图(8) 进货单明细E-R图,如图4-10所示:图4-10 进货单明细E-R图(9) 售货单明细E-R图,如图4-11所示:图4-11 售货单明细E-R图进销存管理系统的E-R图如图4-12所示:图4-12 进销存管理系统E-R图4.2.3 逻辑结构设计在逻辑结构设计阶段,将概念结构设计阶段设计好的E-R图转换为关系模型,即将实体型、实体的属性和实体型之间的联系转换为关系模式8。把图4-12的E-R图转换为关系模型,关系主码用下横线标出,外码用下波浪线。系统用户(用户ID,用户名,密码)商品资料(商品编号,名称,拼音码,单位,规格,数量,类别,进货价,销售价)客户资料(客户编号,公司名称,联系人,联系人职务,电话,传真,邮编,公司地址,城市,国家)供应商资料(供应商编号,公司名称,联系人,联系人职务,电话,传真,邮编,公司地址,城市,国家)库存资料(商品编号,名称,拼音码,单位,库存数量,库存单价,库存金额,仓库)进货单(进货单编号,商品编号,名称,单位,数量,进货价,进货金额,仓库)进货单明细(进货单编号,供应商编号,公司名称,进货日期,进货人员,制单人员,商品编号,名称,单位,数量,进货价,进货金额,仓库)售货单(售货单编号,商品编号,名称,单位,数量,销售价,销售金额,仓库)售货单明细(售货单编号,客户编号,公司名称,售货日期,售货人员,制单人员,商品编号,名称,单位,数量,销售价,销售金额,仓库)进货提交(供应商编号,进货单编号,进货人员,进货日期,公司名称)售货提交(客户编号,售货单编号,售货人员,售货日期,公司名称)4.2.4 数据库表的实现本系统数据库采用Microsoft Office Access 2007数据库,系统数据库名称为进销存管理系统.accdb。在数据库中表的基本关系如下图:图4-13 数据库内表间关系以下是9个数据表的描述,包括字段名称、含义、数据类型、键或可否为空和说明9。(1) 系统用户表,表逻辑结构如表4-1所示:表4-1系统用户表字段名称数据类型字段大小是否主键用户ID自动编号长整形是用户名文本10否密码文本12否(2) 供应商资料表,表逻辑结构如表4-2所示:表4-2供应商资料表字段名称数据类型字段大小是否主键供应商编号文本8是公司名称文本20否联系人文本10否联系人职务文本20否电话文本20否传真文本20否邮编文本6否公司地址文本50否城市文本20否国家文本20否(3) 商品资料表,表逻辑结构如表4-3所示:表4-3商品资料表字段名称数据类型字段大小是否主键商品编号文本8是名称文本20否拼音码文本20否单位文本4否规格文本20否类别文本20否进货价货币-否销售价货币-否(4) 客户资料表,表逻辑结构如表4-4所示:表4-4客户资料表字段名称数据类型字段大小是否主键客户编号文本8是公司名称文本20否联系人文本10否联系人职务文本20否电话文本20否传真文本20否邮编文本6否公司地址文本50否城市文本20否国家文本20否(5) 库存资料表,表逻辑结构如表4-5所示:表4-5库存资料表字段名称数据类型字段大小是否主键商品编号文本8是名称文本20否拼音码文本20否单位文本4否库存数量数字单精度型否库存单价货币-否库存金额货币-否仓库文本4否(6) 进货单表,表逻辑结构如表4-6所示:表4-6进货单表字段名称数据类型字段大小是否主键进货单编号自动编号长整型是商品编号文本8否名称文本20否单位文本4否数量数字长整型否进货价货币-否进货金额货币-否仓库文本4否(7) 进货单明细表,表逻辑结构如表4-7所示:表4-7进货单明细表字段名称数据类型字段大小是否主键进货单编号自动编号长整型是供应商编号文本8否公司名称文本20否进货日期日期/时间短日期否进货人员文本10否制单人员文本10否商品编号文本8否名称文本20否单位文本4否数量数字长整型否进货价货币-否进货金额货币-否仓库文本4否(8) 售货单表,表逻辑结构如表4-8所示:表4-8售货单表字段名称数据类型字段大小是否主键售货单编号自动编号长整型是商品编号文本8否名称文本20否单位文本4否数量数字长整型否销售价货币-否销售金额货币-否仓库文本4否(9) 售货单明细表,表逻辑结构如表4-9所示:表4-9售货单明细表字段名称数据类型字段大小是否主键售货单编号自动编号长整型是客户编号文本8否公司名称文本20否售货日期日期/时间短日期否售货人员文本10否制单人员文本10否商品编号文本8否名称文本20否单位文本4否数量数字长整型否销售价货币-否销售金额货币-否仓库文本4否5 系统实现系统实现阶段是要把物理模型转换成可实际运行的物理系统10。系统实现与系统分析、系统设计阶段相比,系统实现阶段的工作量大,投入的人力、物力多。5.1 登录模块的实现系统登录是用户进入到程序系统的门户,只有通过登录模块,才能对系统用户进行身份验证,只有系统的合法用户才可以进入系统的主界面。系统登录模块运行效果如图5-1所示:图5-1 用户登录窗体界面登录按钮的代码如下:Private Sub 登录_Click()On Error GoTo Err_登录_ClickIf IsNull(Me.用户名) ThenMsgBox 请输入用户名!Me.用户名.SetFocusEnd Sub ElseIf IsNull(Me.密码) ThenMsgBox 请输入登录密码!Me.密码.SetFocusElseIf DLookup(密码, 系统用户, 用户名= & Me.用户名 & ) = Me.密码 Then登陆成功后关闭窗体并打开“进货单管理窗体”窗体DoCmd.CloseDoCmd.OpenForm 进货单管理ElseMe.密码 = Me.密码.SetFocusMsgBox 密码错误!, vbCriticalEnd IfExit_登录_Click:Exit SubErr_登录_Click:MsgBox Err.DescriptionResume Exit_登录_ClickEnd Sub登录之后,进入“进货单管理”界面,如下图5-2所示:图5-2 进货单管理窗体界面5.2 各功能模块的实现5.2.1 基本资料管理模块其功能主要是对商品、客户、供应商信息进行添加、修改、删除和查询等操作。“商品资料管理”窗体界面如下图5-3所示:图5-3 商品资料管理窗体界面“客户资料管理”窗体界面如下图5-4所示:图5-4 客户资料管理窗体界面“供应商资料管理”窗体界面如下图5-5所示:图5-5 供应商资料管理窗体界面5.2.2 进货管理模块在“进货单管理”窗体中,输入进货单详细信息之后,单击“提交”按钮,可提交此信息,同时自动更新“进货单明细”表和“库存资料”表。窗体运行界面如下图5-6显示:图5-6 进货单管理窗体界面“提交”功能实现代码如下:Private Sub 提交_Click()On Error GoTo Err_提交_Clicki用于“进货单”表中记录的计数Dim i As Integer j用于“库存资料”表中记录的计数Dim j As Integer布尔变量Bpand用于判断库存表中是否有该商品记录Dim Bpand As Boolean变量txtsql用于保存SQL查询文本Dim txtsql As String定义变量rs1保存“进货单”表中的记录Dim rs1 As ADODB.Recordset定义变量rs2保存“进货单明细”表中的记录Dim rs2 As ADODB.Recordset定义变量rs3保存“库存资料”表中的记录Dim rs3 As ADODB.Recordset分配记录集Set rs1 = New ADODB.RecordsetSet rs2 = New ADODB.RecordsetSet rs3 = New ADODB.Recordset分别运行查询txtsql = select * from 进货单rs1.Open txtsql, CurrentProject.Connection, adOpenKeyset, adLockOptimistictxtsql = select * from 进货单明细rs2.Open txtsql, CurrentProject.Connection, adOpenKeyset, adLockOptimistictxtsql = select * from 库存资料rs3.Open txtsql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic如果进货单为空,则退出该过程If rs1.RecordCount = 0 ThenExit SubEnd Ifrs1.MoveFirst逐条对进货单中的记录执行相同的操作For i = 1 To rs1.RecordCount如果库存资料表中的记录数小于1,就添加新纪录If rs3.RecordCount 1 Then rs3.AddNewrs3(商品编号) = rs1(商品编号)rs3(名称) = rs1(名称)rs3(单位) = rs1(单位)rs3(库存数量) = rs1(数量)rs3(库存单价) = rs1(进货价)rs3(库存金额) = rs3(库存数量) * rs3(库存单价)rs3(仓库) = rs1(仓库)rs3.Update如果库存资料表中的记录数大于1,则逐条比较库存资料表中的记录,找到商品编号相同的记录进行更新Else rs3.MoveFirstFor j = 1 To rs3.RecordCountBpand = False If rs3(商品编号) = rs1(商品编号) Thenrs3(库存数量) = rs3(库存数量) + rs1(数量)rs3(库存单价) = rs1(进货价)rs3(库存金额) = rs3(库存数量) * rs3(库存单价)rs3.UpdateBpand = TrueExit ForElsers3.MoveNextEnd IfNext jEnd If如果库存资料表中没有相关产品,则添加该商品If Bpand = False Then rs3.AddNewrs3(商品编号) = rs1(商品编号)rs3(名称) = rs1(名称)rs3(单位) = rs1(单位)rs3(库存数量) = rs1(数量)rs3(库存单价) = rs1(进货价)rs3(库存金额) = rs3(库存数量) * rs3(库存单价)rs3(仓库) = rs1(仓库)rs3.UpdateEnd If把“进货单”表中的该条记录添加到“进货单明细”表中rs2.AddNewrs2(供应商编号) = Me.供应商编号rs2(公司名称) = Me.公司名称rs2(进货日期) = Me.进货日期rs2(进货人员) = Me.进货人员rs2(制单人员) = Me.制单人员rs2(商品编号) = rs1(商品编号)rs2(名称) = rs1(名称)rs2(单位) = rs1(单位)rs2(数量) = rs1(数量)rs2(进货价) = rs1(进货价)rs2(仓库) = rs1(仓库)rs2(进货金额) = rs1(进货金额)rs2.Update删除“进货单”表中的该条记录,并移动指针到下一条记录rs1.Delete 1Me.进货单查询_子窗体.Requeryrs1.MoveNextNext i清空记录集Set rs1 = NothingSet rs2 = NothingSet rs3 = NothingMe.金额总计 = NullMe.进货单查询_子窗体.RequeryMsgBox 提交成功退出过程Exit_提交_Click:Set rs1 = NothingSet rs2 = NothingSet rs3 = NothingExit Sub出错处理Err_提交_Click:MsgBox Err.DescriptionResume Exit_提交_ClickEnd Sub要实现进货单管理窗体中“金额总计”控件自动填写金额,需要为子窗体添加“更新后”事件:Private Sub Form_AfterUpdate()On Error GoTo Err_Form_AfterUpdate利用DSum()函数统计“进货单”表中的“进货金额”字段的值Forms!进货单管理!金额总计 = DSum(进货金额, 进货单)Exit_Form_AfterUpdate:Exit SubErr_Form_AfterUpdate:MsgBox Err.DescriptionResume Exit_Form_AfterUpdateEnd Sub点击“查询”按钮时,弹出“进货单明细查询”窗体界面,如下图5-7所示:图5-7 进货单明细查询窗体界面在该窗体中可根据不同条件如商品编号、供应商编号等进行查询。5.2.3 售货管理模块在“售货单管理”窗体中,输入售货单详细信息之后,单击“提交”按钮,可提交此信息,同时自动更新“售货单明细”表和“库存资料”表。窗体运行界面如下图5-8显示:图5-8 售货单管理窗体界面“提交”功能实现代码如下:Private Sub 提交_Click()On Error GoTo Err_提交_Clicki用于“售货单”表中记录的计数Dim i As Integer j用于“库存资料”表中记录的计数Dim j As IntegerDim Bpand As Boolean布尔变量Bpand用于保存SQL查询文本Dim txtsql As String定义变量rs1保存“售货单”表中的记录Dim rs1 As ADODB.Recordset定义变量rs2保存“售货单明细”表中的记录Dim rs2 As ADODB.Recordset定义变量rs3保存“库存资料”表中的记录Dim rs3 As ADODB.Recordset分配记录集Set rs1 = New ADODB.RecordsetSet rs2 = New ADODB.RecordsetSet rs3 = New ADODB.Recordset分别运行查询txtsql = select * from 售货单rs1.Open txtsql, CurrentProject.Connection, adOpenKeyset, adLockOptimistictxtsql = select * from 售货单明细rs2.Open txtsql, CurrentProject.Connection, adOpenKeyset, adLockOptimistictxtsql = select * from 库存资料rs3.Open txtsql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic如果售货单为空,则退出该过程If rs1.RecordCount = 0 ThenExit SubEnd Ifrs1.MoveFirst逐条对售货单中的记录执行相同的操作For i = 1 To rs1.RecordCount如果库存记录小于1,则退出该过程If rs3.RecordCount 1 ThenMsgBox 没有库存,请检查库存!Exit SubElse rs3.MoveFirstFor j = 1 To rs3.RecordCountBpand = False库存中找到商品编号一致的记录则从库存数量中减去销售数量 If rs3(商品编号) = rs1(商品编号) Thenrs3(库存数量) = rs3(库存数量) - rs1(数量)rs3(库存金额) = rs3(库存数量) * rs3(库存单价)rs3.UpdateBpand = TrueExit ForElsers3.MoveNextEnd IfNext jEnd If如果库存中没找到所提交的商品编号,则显示提交信息If Bpand = False Then MsgBox rs1(名称) & 不存在,请检查库存!Else把“售货单”表中的该条记录添加到“进货单明细”表中rs2.AddNewrs2(客户编号) = Me.客户编号rs2(公司名称) = Me.公司名称rs2(售货日期) = Me.售货日期rs2(售货人员) = Me.售货人员rs2(制单人员) = Me.制单人员rs2(商品编号) = rs1(商品编号)rs2(名称) = rs1(名称)rs2(单位) = rs1(单位)rs2(数量) = rs1(数量)rs2(销售价) = rs1(销售价)rs2(仓库) = rs1(仓库)rs2(销售金额) = rs1(销售金额)rs2.UpdateEnd If删除“售货单”表中的该条记录,并移动指针到下一条记录rs1.Delete 1Me.售货单查询_子窗体.Requeryrs1.MoveNextNext i清空记录集Set rs1 = NothingSet rs2 = NothingSet rs3 = NothingMe.金额总计 = NullMe.售货单查询_子窗体.RequeryMsgBox 提交成功退出过程Exit_提交_Click:Set rs1 = NothingSet rs2 = NothingSet rs3 = NothingExit SubErr_提交_Click:MsgBox Err.DescriptionResume Exit_提交_ClickEnd Sub要实现售货单管理窗体中“金额总计”控件自动填写金额,需要为子窗体添加“更新后”事件:Private Sub Form_AfterUpdate()On Error GoTo Err_Form_AfterU

温馨提示

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

评论

0/150

提交评论