首页 VB 汽车销售管理系统源代码

VB 汽车销售管理系统源代码

举报
开通vip

VB 汽车销售管理系统源代码VB 汽车销售管理系统源代码 南通纺院毕业(设计)论文 第一章 引 言 目前,大量的中小企业中,存在这样的现象:分散的、不连贯的客户信息使企业管理者或企业相关人员无法看到客户的全部资料及相关资料,信息的分散使得产生的结果也无法保持一致性和完整性,造成中小企业在销售管理上存如下问题: 无法分类统计客户信息(对客户分类极为混乱), 无法准确全面掌握各业务进展状态, 对立项的销售业务没有有效的安排及推建业务进程和管理,一直处被动销售局面, 对销售人员工作过程掌握不够, 无法准确快速考核销售人员业绩, 业...

VB 汽车销售管理系统源代码
VB 汽车销售管理系统源代码 南通纺院毕业(设计)论文 第一章 引 言 目前,大量的中小企业中,存在这样的现象:分散的、不连贯的客户信息使企业管理者或企业相关人员无法看到客户的全部资料及相关资料,信息的分散使得产生的结果也无法保持一致性和完整性,造成中小企业在销售管理上存如下问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 : 无法分类统计客户信息(对客户分类极为混乱), 无法准确全面掌握各业务进展状态, 对立项的销售业务没有有效的安排及推建业务进程和管理,一直处被动销售局面, 对销售人员工作过程掌握不够, 无法准确快速考核销售人员业绩, 业务人员对产品没有一定认识, 无法有效地同服务部人员沟通, 销售及市场流程不清析,流程变动较大, 对市场信息、竞争对手的资讯掌握不完善, 无结构统一的销售及市场情况报表, 基本销售及市场费用统计较不完备, 销售人员辞职时失单现象严重, ...... 加之,现在客户的期望值越来越高,客户需要更好的服务(产品的质量及个性化服务)。企业的竞争已逐渐从产品的竞争转变为服务的竞争,因此中小企业要发展就必须进一步优化业务流程以提高企业竞争能力。Sales management system就是针对中小企业的销售、服务和营销体系进行规范化管理,以解决困饶中小企业的一系列问题,提高效率、降低成本。 企业汽车销售管理系统(Sales management system)通过对客户关系、销售行动、销售过程等环节记录、管理与分析,使销售管理从经验走向科学、从个人主导走向企业主导,针对中小企业销售管理中存在的诸多问题,从中小企业的销售管理的主要需求出发,充分“以客户为中心”,为中小企业建立弹性化和灵活性的业务流程。企业及个人可以完全按照企业的需要,制定适合企业特点的业务流程,实现对各种数据的规范化,自动化的计算机管理。同时加强了中小企业销售过程中协同作业的能力,并实现了中小企业销售管理过程中的移动办公管理,帮助中小企业建立以市场为基础,客户为导向的业务模式。帮助中小企业建立起规范化的企业营销体系,以提高企业营销的效率、竞争力,使企业决策层能够及时抓住市场的动态,推动市场的营销步伐,大幅度地提高市场占有率。 1 企业销售管理系统 第二章 系统分析 2(1系统基本情况描述 汽车销售管理系统是典型的信息管理系统,其开发包括后台数据库的建立及前台应用程序的开发两个方面。对于前者要求建立数据一致性和完整性强数据安全性好的库,我采用了Microsoft Access 2000, 而对于后者则要求应用程序功能完备,易使用等特点,我使用了Visual Basic 6.0。利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而见解操作数据库的只能化对象,首先在短时间内建立系统应用原型,然后对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。 汽车销售管理系统主要是对商品从购入到入库到销售出库中各个环节所发生的事件进行记录,以及对商品仓库的日常事务进行处理。能随时查询仓库的库存和已售商品。可根据进货统计、销售统计、图表分析,来决定采购 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 和暂停采购的商品清单,提高资金利用率。能随时进行员工的业绩查询、厂商查询等,提高企业的科学管理水平。 2(2需求分析 在信息技术飞速发展的今天,各行各业使用计算机在辅助协调和管理自身工作的需求越来越高。人们都希望通过计算机技术来实现对各种事务的自动化管理。目前,企业办公自动化正朝着多功能,复合化和系统化的方向发展,汽车销售管理系统是企业办公自动化的一种体现.销售管理也是企业主要的事务管理之一,是提高企业竞争力的重要环节。 企业销售管理作为ERP的一部分,在企业管理中占重要地位,其计算机化在发达国家中也已经达到了相当高的水平。目前,我国企业销售管理方面的软件系统也为数不少,但这些系统的实用性并不强,它们普遍存在以下缺陷: (1)针对国内众多中小企业迫切需要信息化管理,但处在初步需求阶段,无法承受诸如大型ERP、财务销售仓储一体信息化管理的中级阶段。自主开发的软件往往平台较低且功能单一,商用软件又过于注重通用性,无法充分考虑每一个具体单位、具体部门的实际需求。 (2)销售数据 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 化程度较差,难以保证数据的唯一性和权威性。 (3)忽略了对销售数据的分析,使得销售经理需查询帐单,才能了解销售情况,在一定程度上的影响了对市场的判断和预测。 (4)没有注重对客户的管理,严重影响了企业对客户需求的了解,难以把握市场动态。 针对上述的缺陷,本系统以合理、全面、准确的国内外企业销售管理体系为基础,提供了对商品、员工、客户、厂商的全面管理,并且提供了全面的登记、查询、修改等功能。系统对商品从入库到出库到销售,整个商品流通中各个环节所发生的事件进行记录,以及对商品仓库的日常事务进行处理,能随时提供商品库的库存信息、商品销售信息,还能根据现有库存,销售情况分析商品市场前景,为采购计划提供有效的参考,以提高资金的利用率,避免不必要的损失。能随时进行员工的业绩查询、厂商查询等,提高企业的科学管理水平。 2 南通纺院毕业(设计)论文 客户是企业的生命之源,对企业各类客户详细资料的收集、整理和综合深入分析,对客户请求的更快速响应,来提高客户满意度,是提高企业竞争力的一种现代化管理系统。系统中特别加入客户管理功能,可将特别客户设为会员,给予一定的优惠。同时也收集了客户的基本信息,对于企业采购计划,市场预测具有很大的价值。 特别值得一提的是计算机系统在运行的过程中,难免会出现硬件故障,系统软件和应用软件的错误,而造成计算机瘫痪或应用软件无法运用,这样数据库备份与恢复就显得特别重要,尤其在商务软件中,一但数据丢失,后果不堪设想。为此,本系统提供应数据库的备份与恢复功能,更好的确保了数据的完整性。 开发的这个汽车销售管理系统,它可以完成对商品的浏览、查询、修改、出库、入库及销售表单打印等功能,大大方便了商品销售的管理。而且它对传统的手工劳动冲击不大,备有的用户手册使用户不至于不适应,这样操作起来,用户也能快速的接受。此管理系统是在单机上用户根据不同的身份登录,而不能在网络环境中实现。 2(3 E-R图 图2.1 E-R图 其中用户与商品、用户与客户、用户与厂商之间是m:n的关系 2(4系统要求 任何系统的设计离不开软件、硬件环境的支持。合理地配置系统的软硬件环境是系统设计中必不可少的环节。 汽车销售管理系统的所配置的软件、硬件环境如下: 1. 软件环境 该软件是使用Visual Basic 6 和Microsoft Access 2000在windows xp系统下完成的,所以只要是兼容windows的软件或是操作系统,该软件都可以正确地运行, 3 企业销售管理系统 有较好的适应能力与兼容性。而且应用户的特殊需求,软件在完成后的维护阶段可以保持一个与其他类软件接口,随时满足用户的使用要求。 2(硬件环境 (1) 具有pentium166以上微处理器的微型计算机 (2) VGA或更高分辨率的显示器 (3) 32M或更大的内存 3(系统性能要求 (1)界面友好,且具有较高的人机交互的灵活性与方便性。 (2)系统响应时间与信息处理时间必须要尽量短,减少等待时间。 (3)由于商品数据信息重要,必须确保数据具有很高的正确性,不允许出现数 据库错误等情况。 4(系统故障处理要求: 当出现断电)死机等意外情况时,必须能恢复到出现情况前的状况,能及时备份数据和恢复数据。 当一台机子出现问题时,其上的数据能安全的转移到其他机子上,并能够安全无误的运行。 2(5开发工具 本系统采用Visual Basic 6.0为前台语言,Microsoft Access 2000为后台数据库。 Visual Basic功能强大,有许多优点和特色,这其中包括:1. Visual Basic内部封装了许多对象操作,语法简单、自然,充分体现了面向对象的程序设计思想。2. Visual Basic提供了许多功能强大的组件,加上可视化的程序设计环境,使开发者能比用其他的开发工具更快的编写出复杂的Windows应用程序。3. Visual Basic可视化的集成开发环境具有充分的开放性,允许开发者将自己创建的组件、工具、向导等无痕迹的融合进去,极大地提高了开发效率。4. Visual Basic提供了强大的数据库访问操作功能,除了支持RDO(Remote Data Objects)和DAO(Data Access Objects)格式外,还支持现在的主流格式ADO(ActiveX Data Objects)。ADO强大的功能之一是它能够从不同的数据源中获得数据,而不仅仅局限于数据库。除了新的ADO对象应用外,VB还提供了ADO数据控件。此外,VB还支持流行的数据库连接标准OLE DB。 Microsoft Access关系型数据库是目前广为使用小型数据库系统之一。Microsoft Access提供标准的查询语言,方便开发数据库应用程序。 2(6 程序设计要求 程序的编写必须是正确的,能在计算机上编译调试,并能顺利运行。程序必须具有较好的结构性,层次分明。程序必须具有较高的速率,运行速度快,程序最后调试的结构必须具有较好的人机对话界面,交互性强,适用范围广泛。程序必须具有注释、说明、技术文档,可读性好。只有具备以上几点才能使人和机器之间得以沟通,使操作人员可以通过键盘鼠标很方便的与正在执行的系统进行对话。同时还要考虑到程序的安全性、可靠性、可移植性。只有满足这些要求,程序才是合格的程序。系统是在关系型数据库Microsoft Access 2000支持下采用Visual Basic 6.0开发的。 2(7关键问题和关键技术 4 南通纺院毕业(设计)论文 2(7(1关键问题 * 用户需求分析 * 系统整体规划 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 及设定 * 功能模块的划分及设定 * 利用ADO实现与数据库的连接 * 实现数据的输入、输出 2(7(2关键技术 * 分析生产的整个过程,弄清系统的各个功能以及它们之间的联系。 * 将系统中所需的数据建立成表,分析其中的关系,按照参照完整性规则建立联系。 * 灵活运用Adodc控件,MSChart控件实现与Microsoft Access的连接。 * 利用Visual Basic开发系统更强大的功能,使的系统操作更灵活,更方便。 5 企业销售管理系统 第三章 系统设计 3. 1 设计思想 系统分析阶段的主要任务是解决系统究竟要“干什么”的问题,其结果是得到汽车销售管理系统的逻辑模型,书面形式为系统分析说明书。系统分析说明书是系统设计的依据。系统设计又称为新系统的物理设计,它的主要任务是依据系统分析阶段所建立的逻辑模型来设计系统的物理模型,或者说解决系统“怎样做”的问题。 系统设计也应该按照结构化的指导思想来进行。系统设计可以分成概要设计和详细设计两个阶段。概要设计通常采用结构化的系统设计方法,其主要任务是根据软件需求说明书,用一组标准的准则和图表工具确定系统有哪些模块,用什么方法连接在一起,从而构成最好的系统结构;同时设计出全局数据库和数据结构,规定设计限制,制定组装测试计划。详细设计阶段的主要任务是依据概要设计说明书,权衡各种处理方法和技术手段的利弊,采用结构化的设计方法,实现系统的总体设计和计算机处理过程的详细设计,其中包括代码、输入、输出、处理方式和数据存储的设计等。 汽车销售管理系统是由计算机管理商品信息等各项事务。首先建立一个数据库,用以存取商品的信息,然后建立用户数据库,用来实现对销售的管理,最后设计系统,提供一个人机交互的平台。 本系统采用模块化设计,各模块既相互独立,又互相联系。具有实用性及扩展性,可以对本系统的功能不断充实完善,同时不会对别的模块有影响,可维护性好。本系统是基于Visual Basic开发平台,Microsoft Access数据库,具有数据的录入、查询、修改、统计、打印、维护等功能。 3(2 各模块功能设计 汽车销售管理系统包括系统管理管理模块、交易管理模块、客户管理模块、查询管理模块、统计分析模块、员工管理模块和帮助窗口模块7个模块。 3(2(1 功能模块: 6 南通纺院毕业(设计)论文 图3.1 功能模块图 根据模块我们认为系统的主要目标是:能实现对商品基本信息、员工基本信息, 客户基本信息等信息的的管理。提供对这些信息的浏览、添加、查询、修改与删除等 功能。所有的一切都必须遵循以下原则:以系统管理员为中心,方便管理,保障系统 的正常工作及安全。 ? 系统管理 ? 用户登录 ? 修改密码 ? 退出系统 ? 交易管理 ? 进货登记 ? 销售登记 ? 退货登记 ? 客户管理 ? 会员登记 ? 会员查询 ? 查询管理 ? 存货查询 ? 销售查询 ? 退货查询 ? 厂商查询 ? 统计分析 ? 进货统计 ? 销售统计 ? 图表分析 ? 员工管理 ? 业绩查看 ? 员工登记 ? 员工查询 ? 帮助 ? 版本信息 7 企业销售管理系统 3(2(2 模块基本信息 (1)系统管理 包括用户登录、修改密码、退出系统三个部分。 (2)交易管理 在交易过程中,实现商品进行进货登记、销售登记、退货登记等功能。 (3)客户管理 在销售过程中建立会员制度,对会员客户给予一定的优惠,进一步完善客户 关系网。主要实现会员的登记、会员查询等功能。 (4)查询管理 处理对各种信息表的查询,如进货信息、销售信息、退货信息、厂商信息等。 (5)统计分析 这一模块对于企业的效益与发展起着至关重要的作用。除了实现对进货、销 售、退货的统计外,利用各种销售信息、客户反映信息,对数据进行统计分 析,以便企业能对市场进行准确的预测和作出正确的决断。 (6)员工管理 为了调动员工的工作积极性,使员工的薪水和他们的销售情况挂钩。建立员 工的销售情况查询,以便对他们的业绩进行考核和评比。实现业绩查看、员 工登记、员工表查询等功能。 (7)帮助 一个良好的Windows应用程序应该提供一个About窗口,其中包括本系统 的名称、所有者、联系方式、 版本号与专利信息等。 3(2(3 输入输出原则 我们在设计输入模块时必须保证向系统输入正确的数据,在此前提下,应做到输入方法简单、迅速、经济、方便。为此,输入设计应遵循以下原则: (1)最小量原则 (2)简单性原则 (3)早检验性原则 (4)少转换原则 输出设计包括以下几方面的内容: (1) 确定输出内容 (2) 选择输出设备与介质 (3) 确定输出格式 3(3 数据流程图 数据流程图是描述现有系统和每个候选系统中数据的流动、存储和处理状况的图形。它是表达软件系统处理功能的合适工具,也是结构化系统分析的主要工具,更是编写系统需求分析资料、设计系统总体逻辑模型的有力工具。它能表达什么数据流入系统,它们从何处来,经过一些什么处理,变成了一些什么数据,分别流向何处,其中哪些数据需要存储等。我们选P1模块来详细的了解他它内部的逻辑功能,内部图如下图3.4所示。 8 南通纺院毕业(设计)论文 图3.2 顶层数据流图 图3.3 0层数据流图 图3.4 进销退货数据流图 9 企业销售管理系统 3(4 系统设计策略 结构图可以用来表示系统设计的成果,但并没有给出如何得到这个成果的方法,系统设计策略将解决这个问题,它给出了将数据流程图转换成结构图的两种方法,即事务分析和变换分析。 我们采用事务分析的方法得出结构图: 图3.5 功能结构图 3(5 系统流程图 10 南通纺院毕业(设计)论文 图3.6 系统流程图 3(6 数据结构 数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,像记录、域等。现在我们采用Microsoft公司的 Access 2000 做为数据库平台。新建一个数据库,创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计,这包括:标识需要的数据,收集被标识的字段到表中,标识主关键字字段,绘制一个简单的数据图表,规范数据,标识指定字段的信息,创建物理表。其所建表的结构如下: 3(6(1 数据字典 a) 员工表 字段 类型 说明 员工编号 长整型 自动编号,主键 员工姓名 文本 字段大小为10 员工电话 文本 字段大小为20 员工地址 文本 字段大小为100 b) 现存货表 字段 类型 说明 商品编号 长整型 自动编号,主键 11 企业销售管理系统 生产厂商 文本 字段大小为20 商品名 文本 字段大小为20 型号 文本 字段大小为20 单价 货币 无 数量 数字 长整型 总金额 数字 长整型 进货年 数字 整型 进货月 数字 整型 进货日 数字 整型 业务员编号 数字 长整型 c) 已售商品表 字段 类型 说明 商品编号 长整型 自动编号,主键 生产厂商 文本 字段大小为20 商品名 文本 字段大小为20 型号 文本 字段大小为20 单价 货币 无 数量 数字 长整型 总金额 数字 长整型 销售年 数字 整型 销售月 数字 整型 销售日 数字 整型 业务员编号 数字 长整型 d) 退货表 字段 类型 说明 商品编号 长整型 自动编号,主键 生产厂商 文本 字段大小为20 商品名 文本 字段大小为20 型号 文本 字段大小为20 单价 货币 无 数量 数字 长整型 12 南通纺院毕业(设计)论文 总金额 数字 长整型 退货年 数字 整型 退货月 数字 整型 退货日 数字 整型 业务员编号 数字 长整型 e) 进货厂商表 字段 类型 说明 厂商编号 长整型 自动编号,主键 厂商名称 文本 字段大小为20 法人代表 文本 字段大小为10 厂商地址 文本 字段大小为100 f) 用户表 字段 类型 说明 用户编号 长整型 自动编号,主键 用户名 文本 字段大小为10 密码 文本 字段大小为10 g) 客户表 字段 类型 说明 会员编号 长整型 自动编号,主键 会员姓名 文本 字段大小为10 会员电话 文本 字段大小为20 会员地址 文本 字段大小为100 3(6(2数据库的逻辑设计 数据库技术主要解决的是对于给定的一组数据如何构造一个适合它们的数据库模式。这种逻辑结构一般用关系数据库来描述,在关系数据库中一个关系既可用来描述实体及其属性,又可以用来描述实体之间的关系。 在关系数据库规范化理论中所提到的关系实质上是一张二维表,表的每一行叫做一个元组,是某个实体或实体之间联系中的一个具体值,通常称为一个“记录”。每一列叫做一个属性,通常称为“数据元素”或“数据项”,每一个元组必须用关键字来标识该元组以区别于关系中的其他元组。把关系看成二维表具有以下几个性质: 1(在任一列上,数据项应该属于同一个属性; 2(这个表中的所有的行都是不相同的,即不允许有重复的组项出现; 3(在一个表中,行的顺序无关紧要; 4(在一个表中,每一列有不同的名称,并且列的顺序也无关紧要。 在本数据库中,我们采用第二范式来设置表。以现存货表为例: 在现存货表中,各属性之间的依赖关系是: 商品编号 商品编号、商品名 商品编号、生产厂商 商品编号、型号 商 13 企业销售管理系统 品编号、单价 商品编号、数量 商品编号、总金额 商品编号、进货年 商品编号、进货月 商品编号、进货日 商品编号、业务员编号 将这个关系组织成如下形式: 商品生产商品型号 单价 数量 总金进货进货进货业务编号 厂商 名 额 年 月 日 员编 号 *商品编号 *商品编号 商品名 商品名 生产厂商 生产厂商 型号 型号 单价 单价 数量 数量 总金额 总金额 进货年 进货年 进货月 进货月 进货日 进货日 业务员编号 业务员编号 之所以选用第二范式来设计表,主要是从内聚性和耦合度方面来考虑的。 3(6(3 数据库的安全性和完整性 在信息时代,信息安全问题越来越重要。数据库所存储的数据是一个部门的宝贵信息资源,它通常可为许多合法用户共享,同时必须防止非法用户访问,甚至更改和破坏。此外,还要防止对数据库不正确的更新,造成数据库的不一致性,保证它的完整性。因此数据库的安全性和完整性十分重要,DBMS必须提供数据库安全性和完整性的保护机制。 数据库的安全性,就是防止非法用户使用数据库造成数据泄露、更改或破坏,以达到保护数据库的目的。数据库中的数据必须在DBMS统一的严格的控制之下,只允许有合法使用权限的用户访问,尽可能杜绝所有可能对数据库的非法访问。一个DBMS能否有效地保证数据库的安全性是它的主要性能指标之一。 用户标识与鉴定是系统提供的最外层的安全保护措施。每个用户都登记一个用户标识符,它是用户公开的标识。但为了正确识别用户,防止别人冒名顶替,仅使用用户标识符是不够的,还需要进一步鉴别用户身份。 为了进一步鉴别用户,目前最广泛的就是使用口令。这样,每次用户要求进入系统时,必须得输入用户的标识符和口令,系统核对用户标识符和口令以鉴别用户身份。只有当用户标识符和口令核实正确后,用户才能使用计算机。 数据库的完整性是指授权用户对数据库更新时不会破坏数据的一致性,从而保证数据库中数据是正确的、一致的、相容的。对于违背完整性约束条件的操作则拒绝处理。 关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束;实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为是关系的两个不变性,应该由关系系 14 南通纺院毕业(设计)论文 统自动支持。 第四章 系统实现 4(1实现策略 用户通过输入正确的用户名和密码进行登录,如果三者都正确则可以通过菜单访问各个模块,对各个模块进行操作。如果三次密码都不正确,则系统自动退出。下面简要介绍各个模块的程序实现。 4(2系统主窗体 在这个窗体中,我们可以根据窗体中所列的菜单,找到你所要访问的模块,并对之进行操作。 15 企业销售管理系统 图4.1 系统主窗体 界面设置:本窗体主要由窗体、菜单栏、工具栏、状态栏等组成,总体如上图所示。新建一个多文档(MDI)窗体,在里面加入一个Toolbar控件,一个ImageList控件,一个Timer控件,一个StatusBar控件。设计时一般先设计窗体背景和窗体标题,菜单栏通过VB中的菜单编辑器进行设计,工具栏通过设计ImageList控件和Toolbar控件实现,状态栏通过设计StatusBar控件实现,其中Timer控件用来控制在StatusBar中的时间显示。 4(3系统管理 4(3(1 用户登录 16 南通纺院毕业(设计)论文 图4.2 用户登录 界面设计:新建一个窗体,在里面加入三个Image控件,两个TextBox控件,两个label控件,两个CommandButton控件。 4(4(2 修改密码 图4.3 修改密码 界面设计:新建一个窗体,在里面加入一个Frame控件,四个TextBox控件,四个label控件,两个CommandButton控件。 17 企业销售管理系统 4(4 交易管理 4(4(1进货登记 在这个界面里我们可以通过第一个容器实现添加商品入库,通过第二个容器实现添加新的厂商。单击清空重填按钮,可以清空文本框,便于用户重添信息。单击关闭则可以关闭此窗口。 图4.4 进货登记界 界面设计:新建一个窗体,在里面加入两个Frame控件,十六个TextBox控件,十六个label控件,四个CommandButton控件。 4(4(2销售登记 在这个界面里主要实现销售时对商品信息的处理,单击销售按钮将该商品信息从库存表中删除,并写入已销售商品表中。单击打印按钮,可以打印销售发票单。 18 南通纺院毕业(设计)论文 图4.5 销售登记界面 界面设计:新建一个窗体,在里面加入十一个TextBox控件,十二个label控件,三个CommandButton控件。其中通过printer对象来实现打印。 4(4(3 退货登记 主要实现对退货商品信息的处理,将数据从已销售商品表中删除,并写入退货表中。 图4.6 退货登记界面 界面设计:新建一个窗体,在里面加入十一个TextBox控件,十二个label控件,两个CommandButton控件。 19 企业销售管理系统 4(5 客户管理 4(5(1 会员登记 主要实现会员信息的添加。 图4.7会员登记 界面设计:新建一个窗体,在里面加入一个Frame控件,四个TextBox控件,四个label控件,两个CommandButton控件。 4(5(2 会员查询 主要实现对会员信息的查询、修改、删除等功能。 界面设计:新建一个窗体,在里面加入一个DataGrid控件,一个Adodc控件,两个CommandButton控件。 20 南通纺院毕业(设计)论文 图4.8会员查询窗体 4(6 查询管理 4(6(1 存货查询 在这个模块里主要是完成对现存商品的查询。 图4.9 存货查询界面 界面设计:新建一个窗体,在里面加入一个Frame控件,两个Textbox控件,两个label控件,三个CommandButton控件。 21 企业销售管理系统 4(6(2 销售查询 在这个模块里主要是完成对已售商品的查询。 图4.10销售查询界面 界面设计:新建一个窗体,在里面加入一个Frame控件,两个Textbox控件,两 个label控件,三个CommandButton控件。 4(6(3 退货查询 在这个模块里主要是完成对退货表的查询。 图4.11 退货表界面 界面设计:新建一个窗体,在里面加入一个DataGrid控件,一个Adodc控件。 22 南通纺院毕业(设计)论文 4(6(4厂商查询 在这个模块里主要是完成对进货商信息的查询、修改、删除。 图4.12 进货商表 界面设计:新建一个窗体,在里面加入一个DataGrid控件,一个Adodc控件,两个CommandButton控件。 23 企业销售管理系统 4(7 统计分析 4(7(1进货统计 图4.13 进货统计界面 在这模块中主要完成当日、本月、本季度、当年进货的统计。界面设计:新建一个窗体,在里面加入八个DataGrid控件,八个Adodc控件,一个SSTab控件,一个Label控件,一个TextBox控件。 24 南通纺院毕业(设计)论文 4(7(2 销售统计 图4.14 销售统计 本模块完成当日、本月、本季度、当年销售的统计。 界面设计:新建一个窗体,在里面加入八个DataGrid控件,八个Adodc控件,一个SSTab控件,一个Label控件,一个TextBox控件。 25 企业销售管理系统 4(7(3 图表分析 图表分析模块主要是对当日,本月,本季度,当年销售的图表分析。利用Microsoft Chart Control 6.0中的 MSChart控件,可以制作大部分的Microsoft Graph图表,可以实现条形图、柱状图、饼状图、散点图等。 图4.15 图表分析 界面设计:新建一个窗体,在里面加入四个MSChart控件,一个SSTab控件。 4(8 员工管理 4(8(1 员工查询 在这个模块里主要是完成对员工信息的查询、修改、删除。 26 南通纺院毕业(设计)论文 图4.16 员工表 界面设计:新建一个窗体,在里面加入一个DataGrid控件,一个Adodc控件,两个CommandButton控件。 4(8(2 业绩查看 在这个模块里主要是完成对员工销售业绩的查询。 图4.17 业绩查看 界面设计:新建一个窗体,在里面加入一个Frame控件,一个Textbox控件,一个label控件,三个CommandButton控件。 27 企业销售管理系统 4(8(3 员工登记 图4.18 员工登记 界面设计:新建一个窗体,在里面加入一个Frame控件,四个TextBox控件,四个label控件,两个CommandButton控件。 4(9 数据备份 在这个模块里主要是完成对数据库的备份以及数据库恢复功能。 本系统主要运用拷贝的原理实现数据库的备份与恢复。在具体的程序中运用FileCopy语句来实现备份,但FileCopy语句只适用于小型数据库。此外,为了使数据备份和数据恢复更加形象,程序中以图形备份卡的形式来代替数据库文件。 28 南通纺院毕业(设计)论文 图4.19 数据备份界面 界面设计:新建一个窗体,在里面加入一个ImageList控件,一个ListView控件,两个OptionButton控件,一个Drive控件,一个Dir控件,一个File控件,两个Label控件,两个CommandButton控件。 4(10 帮助 在这个模块里主要是显示软件版本信息。其中包括本系统的名称、所有者、 版本号、版本说明与专利信息等。 图4.20 版本信息界面 29 企业销售管理系统 第五章 系统测试 测试主要是针对程序设计及编程调试后的结果进行的工作,那么为什么要进行测试呢?很多人认为“测试是证明程序中不存在错误的过程”,“程序测试的目的是要证明程序正确地执行了预期的功能”等,但是这些定义却是错误的定义。因为人们在测试程序时自然是想给程序员增添一点价值,也就是说,测试是一项花费昂贵的活动,测试者必然希望通过增加程序自身的价值来补偿一些花费,而提高程序的价值就意味着提高程序的质量和可靠性,提高程序的可靠性就意味着发现并改正程序的错误。所以进行测试不应是为了显示程序是好的,而应该从程序中含有错误这个假定出发去测试程序,从中发现尽可能多的错误,因此测试的定义应该是:为了发现错误而执行程序的过程。从这个定义出发可以看出应该把查出了新错误的测试看作是成功的测试,没有发现错误的测试则是失败的测试。 测试一般有两种方法: 黑盒测试:黑盒测试是测试者把程序看成是一个黑盒。即完全不考虑程序内部结构和内部特性。相反,测试者仅仅关心寻找使程序未按规范运行的情况,并且仅仅按程序的规范导出测试数据。一般来说用这种方法查出程序中所有错误只能使用穷举输入测试。 白盒测试:白盒测试或逻辑驱动测试允许人们检查程序的内部结构,是测试者从检查程序的逻辑着手,得出测试数据,进行测试的过程。 模块测试是指测试程序中的单个子程序或过程。其目的是要对模块的功能与定义模块的性能规范或接口规范进行比较。这就是说,在测试的一开始我们不是把程序作为一个整体来测试,而是首先集中注意力来测试程序中较小的结构块。这样做的理由是:首先由于一开始把注意力集中在程序的较小的单元上,模块测试是一种妥善进行组合测试的很好方法。其次,因为在模块测试时,发现错误就可以肯定错误所在的位置,因而便于纠错。最后模块测试给我们提供同时测试多个模块的良机,从而在测试过程中提出了并行性问题。 测试应遵守一定的原则: 1. 确定预期输出(或结果)是测试情况必不可少的一部分。 2. 程序员应避免测试自己的程序。 3. 程序设计机构不应该测试自己的程序。 4. 彻底检查每个测试结果。 5. 对非法的和非预期的输入情况,也要像对合法的,预期的输入一样,编写测试情 况。 在模块测试阶段主要运用黑盒测试和边界值法,部分细节运用白盒测试,而在总体测试阶段则使用黑盒测试。黑盒测试又叫功能测试,用黑盒测试来发现程序中的错误,必须在所有的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。白盒测试又叫结构测试,是对软件的过程细节做细致的检查。 选取用户登录为例,具体的测试方案如下: 1(不输入用户名 2(不输入密码 3(输入错误的密码 30 南通纺院毕业(设计)论文 4(连续三次输入错误的密码 根据测试方案,测试结果如下: 测试功能 测试结果 1 请输入用户名 2 请输入密码 3 用户名或密码不正确,无法登录 4 三次输错密码,系统自动退出 第一种测试结果 第二种测试结果 第三种测试结果 第四种测试结果 31 企业销售管理系统 第六章 总结及谢辞 6(1 总 结 销售管理是企业主要的事务管理之一,是节流增收最有潜力的环节。该模块以合理、全面、准确的销售体系为基础,提供了对商品数量、金额的全面管理,并且提供了全面的查询功能。包括对现存商品、已售商品、员工、客户、厂商的一体化查询。商品从入库到出库到销售整个流通过程中各个环节所发生的事件进行记录,能随时提供仓库的库存、商品销售情况、客户、厂商等信息,为采购计划或市场预测提供有效的依据,以提高资金的利用率,避免不必要的损失,同时也提高了企业的科学管理水平。 这次毕业设计我是用Visual Basic 6.0设计的,它是我大学中主要学习的计算机编程语言,通过这次实例开发,我对VB程序设计水平和数据库应用能力都有了很大的提高。当然在设计过程中我碰到了不少的难题,除了向学得比较好的同学虚心请教之外,我也借阅了大量与本系统开发有关的书籍,使得许多问题都迎刃而解。以前我们只是接触书本知识,缺少实践经验,只能是纸上谈兵,但通过这次销售系统开发我积累了不少开发经验和解决问题的方法,这对于我将来从事软件开发都是有很大的推动作用。在这次的开发中我有不少体会,具体总结如下: 系统开发前的准备工作一定要做好。“良好的开始是成功的一半”,在开始具体工作前,先选择好要用的编程工具,然后就这方面争对性的借阅参考资料,掌握书本中的编程技巧,灵活运用到自己的程序中来。此外,网络也为我们提供了极大的方便,有什么需要了解的,在网上我们都可以查到。我们还要了解系统开发的环境。 系统的设计过程是循序渐进的,先需求分析,再总体设计,后详细设计,最后编写代码、上机调试、系统测试。其中需求分析是关键,它是系统开发的基础,它确定系统必须完成哪些工作,对系统提出明确、清晰、具体的要求。 调试阶段必不可少,有些理论上你认为正确的东西,调试起来可能就会出现错误。比如有时候你要想往数据库里面插入数据,不是光写插入语句就行的,还必须要使数据库表处于编辑状态,这样才能实现往里面插入数据。通过调试能发现许多意想不到的错误,这对于完善系统是必不可少的。 我们在设计系统的时候不可能每个问题都考虑得面面具到,这就需要老师的指导,因此我们要虚心接受老师给我们的建议。在设计过程中可能会遇到好多困难,有的还可能多次都解决不了,在面对问题的时候我们要有耐心,要有解决困难的决心和坚持到底的恒心。 总而言之,系统必须严格按照软件工程的方法进行开发,其中生命周期法比较适合,即将软件工程学和系统工程的理论与方法引入计算机信息应用系统的研制开发中,将信息系统开发的全过程严格地划分为四个阶段:系统分析、系统设计、系统实施、系统运行与维护。只有按照科学的开发方法才能开发出令人满意的系统,而且开发起来也是事半功倍。 通过这次毕业设计,我们积累了不少开发系统的经验,这对于我将来踏上工作岗位都是极为重要的。但是由于时间有限,系统还有许多不完整的地方,像用户界面不够美观,用户输入功能不够方便等,这些问题都有待于进一步的改善。 32 南通纺院毕业(设计)论文 6(2 谢 辞 几个月的毕业设计已经进入尾声,在这里我要真诚地感谢帮助过我的老师和同学们,有了他们的帮助我才能顺利的完成这次毕业设计。有了他们的帮助,我在设计中所遇到的问题才能得到圆满的解决。 在此,我特别感谢高成强、黄华丰、黄海涛、朱小社老师,他给予我莫大的帮助。在毕业设计期间,黄老师帮我分析问题的所在,指出设计中存在的不足,提出了改进的方案,才使得我的系统得已完善。我再次衷心地感谢黄老师对我的帮助。 同时,我还要感谢学校领导,为了大家的毕业设计,他们尽心尽力地为大家安排机房,提供必要的条件,满足同学们的要求。 最后,我再一次衷心地感谢各位领导、指导老师和同学们,谢谢~ 33 企业销售管理系统 参考文献: [1] Microsoft公司编著?Visual Basic 6.0中文程序员指南?北京希望电子出版 社?1998.9 [2] Microsoft公司编著?Visual Basic控件参考手册? 北京希望电子出版社?1999.3 [3] Microsoft公司编著?Visual Basic 6.0组件工具指南?北京希望电子出版 社?1999.3 [4] 张海藩 编著?软件工程?人民邮电出社?2003.11 [5] 刘萌等编著?Visual Basic企业办公系统开发实例导航?人民邮电出社?2004.1 [6] 高春艳等编著?Visual Basic数据库开发关键技术与实例应用?人民邮电出版 社? 2004.5 [7] Steven Jordan 牛力等编著? Visual Basic 6.0编程宝典?电子工业出版 社? 2005.1 34 南通纺院毕业(设计)论文 附:系统具体源代码如下: ----------------------公共模块部分------------------------ Option Explicit Public conn As New ADODB.Connection Public all As Boolean '查询现存商品中使用的 Public allsell As Boolean '查询已售商品时使用 Public allem As Boolean '查询员工业绩时使用 Public strgname As String '查询现存商品中使用的商品名 Public strtype As String '查询现存商品中使用的型号名 -------------------------主窗体------------------------ Private Sub MDIForm_Load() '在主窗体中打开对数据库的连接 Dim connectionstring As String '定义一个连接串变量 connectionstring = "provider=Microsoft.Jet.oledb.4.0;" & _ "data source=sellsystem.mdb" conn.Open connectionstring '没有登录前设置各菜单不可用 MDIfrmMain.mnchpwd.Enabled = False MDIfrmMain.mntrade.Enabled = False MDIfrmMain.mnclient.Enabled = False MDIfrmMain.mnstat.Enabled = False MDIfrmMain.mngrade.Enabled = False MDIfrmMain.mntable.Enabled = False MDIfrmMain.mnwork.Enabled = False MDIfrmMain.mnhelp.Enabled = False MDIfrmMain.Toolbar1.Enabled = False St1.Panels(2).Text = "版权所有:南通纺织职业技术学院(朱林军) goodzhulinjun@163.com" End Sub Private Sub mnbuy_Click() frmbuyst.Show End Sub Private Sub mnchart_Click() frmchart.Show End Sub Private Sub mnclientlog_Click() frmAddcl.Show End Sub Private Sub mnclientquery_Click() frmCltable.Show End Sub 35 企业销售管理系统 Private Sub mned_Click() frmAbout.Show End Sub Private Sub mnelog_Click() frmAddem.Show End Sub Private Sub mnsell_Click() frmsellst.Show End Sub Private Sub Timer1_Timer() St1.Panels(1).Text = Format(Date, "long date") & " " & Time End Sub Private Sub MDIForm_Unload(Cancel As Integer) conn.Close End Sub Private Sub mnbuylog_Click() frmAddGoods.Show End Sub Private Sub mnchpwd_Click() frmChPwd.Show frmChPwd.SetFocus End Sub Private Sub mnem_Click() frmEmTable.Show End Sub Private Sub mnemlogin_Click() frmLogin.Show frmLogin.SetFocus End Sub Private Sub mnexit_Click() Unload Me End Sub Private Sub mnfc_Click() frmFcTable.Show End Sub Private Sub mngoodstable_Click() frmGoods.Show End Sub Private Sub mngrade_Click() frmShowGrade.Show End Sub Private Sub mnretable_Click() frmRetreatTable.Show End Sub 36 南通纺院毕业(设计)论文 Private Sub mnretreat_Click() frmRetreat.Show End Sub Private Sub mnselllog_Click() frmSell.Show End Sub Private Sub mnselltable_Click() frmShowSell.Show End Sub Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.key Case Is = "mnselllog" frmSell.Show Case Is = "mnbuylog" frmAddGoods.Show Case Is = "mngoodstable" frmGoods.Show Case Is = "mnsell" frmsellst.Show Case Is = "mnchart" frmchart.Show Case Is = "mngrade" frmShowGrade.Show Case Is = "mnchpwd" frmChPwd.Show Case Is = "mnbak" frmbak.Show Case Is = "mnexit" Unload Me End Select End Sub ---------------------------登录窗体------------------------------ Option Explicit Dim cnt As Integer '记录确定次数 Private Sub cmdCancel_Click() Unload Me End Sub Private Sub cmdLogin_Click() '首先检查用户是否输入了用户名和密码 If txtUser.Text = "" Then MsgBox "请输入用户名~", vbOKOnly + vbInformation, "注意" txtUser.SetFocus Exit Sub ElseIf txtPwd.Text = "" Then 37 企业销售管理系统 MsgBox "请输入密码~", vbOKOnly + vbInformation, "注意" txtPwd.SetFocus Exit Sub End If Dim rstUser As New ADODB.Recordset Dim sql As String sql = "select * from userdb where 用户名 = '" & txtUser.Text & "' and " _ & " 密码= '" & txtPwd.Text & "'" rstUser.Open sql, conn, adOpenKeyset, adLockPessimistic If rstUser.EOF = True Then cnt = cnt + 1 If cnt < 3 Then MsgBox "用户名或密码错误~", vbOKOnly + vbInformation, "注意" rstUser.Close End If If cnt = 3 Then MsgBox "三次输入密码错误~", vbOKOnly + vbInformation, "系统自动退出" rstUser.Close Unload Me Unload MDIfrmMain End If Exit Sub Else MsgBox "正确登录", vbOKOnly + vbExclamation, "" '打开窗体 MDIfrmMain.mnchpwd.Enabled = True MDIfrmMain.mntrade.Enabled = True MDIfrmMain.mnclient.Enabled = True MDIfrmMain.mnstat.Enabled = True MDIfrmMain.mngrade.Enabled = True MDIfrmMain.mntable.Enabled = True MDIfrmMain.mnwork.Enabled = True MDIfrmMain.mnhelp.Enabled = True MDIfrmMain.Toolbar1.Enabled = True rstUser.Close Unload Me End If End Sub ---------------------------修改密码窗体------------------------ Private Sub cmdChPwdCancel_Click() Unload Me End Sub Private Sub cmdChPwdOk_Click() Dim rstUser As New ADODB.Recordset 38 南通纺院毕业(设计)论文 Dim sql As String '先检测两次输入的新密码时候一样 If txtNewPwd.Text <> txtNewPwdagain.Text Then MsgBox "两次输入的密码不同~请重新输入", vbOKOnly + vbInformation, "" '光标定位于新密码textbox中 txtNewPwd.SetFocus Exit Sub End If sql = "select * from userdb where 用户名 = '" & txtChUser.Text & "' and " _ & " 密码= '" & txtOldPwd.Text & "'" rstUser.Open sql, conn, adOpenKeyset, adLockPessimistic If rstUser.EOF = True Then MsgBox "用户名或老密码错误", vbOKOnly + vbExclamation, "" txtChUser.Text = "" txtChUser.SetFocus txtOldPwd.Text = "" rstUser.Close Exit Sub Else rstUser.Fields(2) = txtNewPwd.Text rstUser.Update MsgBox "修改密码成功~", vbOKOnly + vbInformation, "" rstUser.Close Unload Me '退出本窗口 End If End Sub ------------------------------进货登记窗体------------------------ Dim rs_addfc As New ADODB.Recordset Dim rs_add As New ADODB.Recordset Private Sub cmdaddfc_Click() txtGoodsNo.Enabled = False If Text1.Text = "" Then MsgBox "请填写厂商名称~", vbOKOnly + vbInformation, "注意" Text1.SetFocus Exit Sub ElseIf Text2.Text = "" Then MsgBox "请填写厂商法人代表~", vbOKOnly + vbInformation, "注意" Text2.SetFocus Exit Sub ElseIf Text3.Text = "" Then MsgBox "请填写电话~", vbOKOnly + vbInformation, "注意" Text3.SetFocus Exit Sub 39 企业销售管理系统 ElseIf Text4.Text = "" Then MsgBox "请填写厂商地址~", vbOKOnly + vbInformation, "注意" Text4.SetFocus Exit Sub End If Dim sqlfc As String sqlfc = "select * from manufacturer" rs_addfc.Open sqlfc, conn, adOpenKeyset, adLockPessimistic rs_addfc.AddNew rs_addfc.Fields(1) = Text1.Text rs_addfc.Fields(2) = Text2.Text rs_addfc.Fields(3) = Text3.Text rs_addfc.Fields(4) = Text4.Text rs_addfc.Update MsgBox "添加厂商成功", vbOKOnly + vbExclamation, "" rs_addfc.Close End Sub Private Sub cmdadd_Click() txtGoodsNo.Enabled = False If txtFc.Text = "" Then MsgBox "请填写厂商名称~", vbOKOnly + vbInformation, "注意" txtFc.SetFocus '使txtFc获得光标焦点 Exit Sub ElseIf txtName.Text = "" Then MsgBox "请填写商品名称~", vbOKOnly + vbInformation, "注意" txtName.SetFocus Exit Sub ElseIf txtType.Text = "" Then MsgBox "请填写商品型号~", vbOKOnly + vbInformation, "注意" txtType.SetFocus Exit Sub ElseIf txtPrice.Text = "" Then MsgBox "请填写商品价格~", vbOKOnly + vbInformation, "注意" txtPrice.SetFocus Exit Sub ElseIf txtQuantity.Text = "" Then MsgBox "请填写商品数量~", vbOKOnly + vbInformation, "注意" txtQuantity.SetFocus Exit Sub ElseIf txtyear.Text = "" Then MsgBox "请填写销售年份~", vbOKOnly + vbInformation, "注意" txtyear.SetFocus Exit Sub ElseIf txtmon.Text = "" Then 40 南通纺院毕业(设计)论文 MsgBox "请填写销售月份~", vbOKOnly + vbInformation, "注意" txtmon.SetFocus Exit Sub ElseIf txtday.Text = "" Then MsgBox "请填写销售日~", vbOKOnly + vbInformation, "注意" txtday.SetFocus Exit Sub ElseIf txtem.Text = "" Then MsgBox "请填写业务员姓名~", vbOKOnly + vbInformation, "注意" txtem.SetFocus Exit Sub ElseIf txtmoney.Text = "" Then MsgBox "请填写总金额~", vbOKOnly + vbInformation, "注意" txtmoney.SetFocus Exit Sub End If Dim sql As String sql = "select * from goods" rs_add.Open sql, conn, adOpenKeyset, adLockPessimistic rs_add.AddNew rs_add.Fields(1) = txtFc.Text rs_add.Fields(2) = txtName.Text rs_add.Fields(3) = txtType.Text rs_add.Fields(4) = txtPrice.Text rs_add.Fields(5) = Val(txtQuantity.Text) '使用Val 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 把TextBox.text中的文本型数据转换成数字型数据 rs_add.Fields(6) = Val(txtmoney.Text) rs_add.Fields(7) = txtyear.Text rs_add.Fields(8) = txtmon.Text rs_add.Fields(9) = txtday.Text rs_add.Fields(10) = txtem.Text rs_add.Update MsgBox "添加用户成功", vbOKOnly + vbExclamation, "" rs_add.Close End Sub ------------------------------销售登记窗体----------------------- Dim rs_add As New ADODB.Recordset Dim rs_check As New ADODB.Recordset Private Sub cmdpri_Click() '打印发票 Printer.Height = 8000 Printer.Width = 8000 Printer.CurrentX = 1100 Printer.CurrentY = 300 Printer.FontSize = 12 41 企业销售管理系统 Printer.Print "销售发票单" Dim a, B, C, D As Integer a = 100 B = 500 C = 4800 D = 400 Printer.FontSize = 10 Printer.CurrentX = 100 + a Printer.CurrentY = B + 200 Printer.Print "时间: " & Date & " " & Time B = B + D Printer.Line (a, B + 100)-(C, B + 100) Printer.CurrentX = 100 + a Printer.CurrentY = B + 200 Printer.Print "商品名称: " & txtName.Text B = B + D Printer.CurrentX = 100 + a Printer.CurrentY = B + 200 Printer.Print "商品型号: " & txtType.Text B = B + D Printer.CurrentX = 100 + a Printer.CurrentY = B + 200 Printer.Print "商品单价: " & Format(txtPrice.Text, "0.00") B = B + D Printer.CurrentX = 100 + a Printer.CurrentY = B + 200 Printer.Print "商品数量: " & txtQuantity.Text B = B + D Printer.CurrentX = 100 + a Printer.CurrentY = B + 200 Printer.Print "商品总价: " & Format(txtmoney.Text, "0.00") B = B + D Printer.Line (a, B + 100)-(C, B + 100) Printer.CurrentX = 1000 + a Printer.CurrentY = B + 200 Printer.Print "欢迎您下次光临" End Sub Private Sub cmdSell_Click() txtGoodsNo.Enabled = False If txtFc.Text = "" Then MsgBox "请填写厂商名称~", vbOKOnly + vbInformation, "注意" txtFc.SetFocus Exit Sub ElseIf txtName.Text = "" Then 42 南通纺院毕业(设计)论文 MsgBox "请填写商品名称~", vbOKOnly + vbInformation, "注意" txtName.SetFocus Exit Sub ElseIf txtType.Text = "" Then MsgBox "请填写商品型号~", vbOKOnly + vbInformation, "注意" txtType.SetFocus Exit Sub ElseIf txtPrice.Text = "" Then MsgBox "请填写商品价格~", vbOKOnly + vbInformation, "注意" txtPrice.SetFocus Exit Sub ElseIf txtQuantity.Text = "" Then MsgBox "请填写商品数量~", vbOKOnly + vbInformation, "注意" txtQuantity.SetFocus Exit Sub ElseIf txtyear.Text = "" Then MsgBox "请填写销售年份~", vbOKOnly + vbInformation, "注意" txtyear.SetFocus Exit Sub ElseIf txtmon.Text = "" Then MsgBox "请填写销售月份~", vbOKOnly + vbInformation, "注意" txtmon.SetFocus Exit Sub ElseIf txtday.Text = "" Then MsgBox "请填写销售日~", vbOKOnly + vbInformation, "注意" txtday.SetFocus Exit Sub ElseIf txtem.Text = "" Then MsgBox "请填写业务员姓名~", vbOKOnly + vbInformation, "注意" txtem.SetFocus Exit Sub ElseIf txtmoney.Text = "" Then MsgBox "请填写总金额~", vbOKOnly + vbInformation, "注意" txtmoney.SetFocus Exit Sub End If Dim sqlcheck As String sqlcheck = "select * from goods where 商品名='" & txtName.Text & _ "'and 生产厂商='" & txtFc.Text & "'and 型号='" & txtType.Text & "'" rs_check.CursorLocation = adUseClient '设定游标类型 rs_check.Open sqlcheck, conn, adOpenKeyset, adLockPessimistic If rs_check.EOF = True Then MsgBox "对不起,此商品型号已无货~请选择其他型~", vbOKOnly + vbInformation, "注意" 43 企业销售管理系统 rs_check.Close Exit Sub ElseIf rs_check.Fields(5) < Val(txtQuantity.Text) Then MsgBox "此型号商品不足~", vbOKOnly + vbInformation, "注意" rs_check.Close Exit Sub End If Dim sqlsell As String sqlsell = "select * from sell" rs_add.Open sqlsell, conn, adOpenKeyset, adLockPessimistic '添加入销售表 rs_add.AddNew rs_add.Fields(1) = txtFc.Text rs_add.Fields(2) = txtName.Text rs_add.Fields(3) = txtType.Text rs_add.Fields(4) = txtPrice.Text rs_add.Fields(5) = Val(txtQuantity.Text) rs_add.Fields(6) = Val(txtmoney.Text) rs_add.Fields(7) = txtyear.Text rs_add.Fields(8) = txtmon.Text rs_add.Fields(9) = txtday.Text rs_add.Fields(10) = txtem.Text rs_add.Update '从现存商品表中减去 Dim oldquantity As Long '用于存放goods表中原来的此商品数量 Dim oldmoney As Long '用于存放goods表中原来的此商品进货总额 oldquantity = rs_check.Fields(5) oldmoney = rs_check.Fields(6) rs_check.Fields(5) = oldquantity - Val(txtQuantity.Text) rs_check.Fields(6) = oldmoney - (rs_check.Fields(4)) * Val(txtQuantity.Text) rs_check.Update rs_check.Close rs_add.Close MsgBox "销售成功~", vbOKOnly + vbExclamation, "注意" End Sub ------------------------------退货登记---------------------------- Dim rs_back As New ADODB.Recordset Dim rs_check As New ADODB.Recordset Dim rs_buy As New ADODB.Recordset Private Sub cmdRetreat_Click() '需要进行三次数据库操作,加入退货表,加入现存商品表,从销售表中减去 txtGoodsNo.Enabled = False If txtFc.Text = "" Then 44 南通纺院毕业(设计)论文 MsgBox "请填写厂商名称~", vbOKOnly + vbInformation, "注意" txtFc.SetFocus Exit Sub ElseIf txtName.Text = "" Then MsgBox "请填写商品名称~", vbOKOnly + vbInformation, "注意" txtName.SetFocus Exit Sub ElseIf txtType.Text = "" Then MsgBox "请填写商品型号~", vbOKOnly + vbInformation, "注意" txtType.SetFocus Exit Sub ElseIf txtPrice.Text = "" Then MsgBox "请填写商品价格~", vbOKOnly + vbInformation, "注意" txtPrice.SetFocus Exit Sub ElseIf txtQuantity.Text = "" Then MsgBox "请填写商品数量~", vbOKOnly + vbInformation, "注意" txtQuantity.SetFocus Exit Sub ElseIf txtyear.Text = "" Then MsgBox "请填写退货年份~", vbOKOnly + vbInformation, "注意" txtyear.SetFocus Exit Sub ElseIf txtmon.Text = "" Then MsgBox "请填写退货月份~", vbOKOnly + vbInformation, "注意" txtmon.SetFocus Exit Sub ElseIf txtday.Text = "" Then MsgBox "请填写退货日~", vbOKOnly + vbInformation, "注意" txtday.SetFocus Exit Sub ElseIf txtem.Text = "" Then MsgBox "请填写业务员姓名~", vbOKOnly + vbInformation, "注意" txtem.SetFocus Exit Sub ElseIf Val(txtmoney.Text) = "" Then MsgBox "请填写退货总金额~", vbOKOnly + vbInformation, "注意" txtmoney.SetFocus Exit Sub End If Dim sqlcheck As String sqlcheck = "select * from sell where 商品名='" & txtName.Text & _ "'and 生产厂商='" & txtFc.Text & "'and 型号='" & txtType.Text & "'" rs_check.CursorLocation = adUseClient 45 企业销售管理系统 rs_check.Open sqlcheck, conn, adOpenKeyset, adLockPessimistic If rs_check.EOF = True Then MsgBox "对不起,没有销售此商品型号~无法退货~", vbOKOnly + vbInformation, "注意" rs_check.Close Exit Sub ElseIf (rs_check.Fields(5)) < Val(txtQuantity.Text) Then '使用val 函数把text中的字符转变为数字 MsgBox "此型号商品退货量大于销售量~无法退货~", vbOKOnly + vbInformation, "注意" rs_check.Close Exit Sub End If '加入退货表 Dim sqlback As String sqlback = "select * from retreat" rs_back.Open sqlback, conn, adOpenKeyset, adLockPessimistic rs_back.AddNew rs_back.Fields(1) = txtFc.Text rs_back.Fields(2) = txtName.Text rs_back.Fields(3) = txtType.Text rs_back.Fields(4) = txtPrice.Text rs_back.Fields(5) = Val(txtQuantity.Text) rs_back.Fields(6) = Val(txtmoney.Text) rs_back.Fields(7) = txtyear.Text rs_back.Fields(8) = txtmon.Text rs_back.Fields(9) = txtday.Text rs_back.Fields(10) = txtem.Text rs_back.Update rs_back.Close '从销售商品表中减去 Dim sqlbuy As String '以下两变量用于保存未减去之前的相应项的值 Dim oldquantity As Long Dim oldmoney As Long odlmoney = rs_check.Fields(6) oldquantity = rs_check.Fields(5) rs_check.Fields(5) = oldquantity - Val(txtQuantity.Text) rs_check.Fields(6) = oldmoney - Val(txtmoney.Text) rs_check.Update rs_check.Close '加入现存商品表中 sqlbuy = "select * from goods" rs_buy.Open sqlbuy, conn, adOpenKeyset, adLockPessimistic 46 南通纺院毕业(设计)论文 rs_buy.AddNew rs_buy.Fields(1) = txtFc.Text rs_buy.Fields(2) = txtName.Text rs_buy.Fields(3) = txtType.Text rs_buy.Fields(4) = txtPrice.Text rs_buy.Fields(5) = Val(txtQuantity.Text) rs_buy.Fields(6) = Val(txtmoney.Text) rs_buy.Fields(7) = txtyear.Text rs_buy.Fields(8) = txtmon.Text rs_buy.Fields(9) = txtday.Text rs_buy.Fields(10) = txtem.Text rs_buy.Update rs_buy.Close MsgBox "退货成功~", vbOKOnly + vbExclamation, "注意" End Sub ---------------------------会员登记-------------------------- Option Explicit Dim rs_addcl As New ADODB.Recordset Private Sub Command1_Click() Text1(0).Enabled = False If Text1(1).Text = "" Then MsgBox "请填写姓名~", vbOKOnly + vbInformation, "注意" Text1(1).SetFocus Exit Sub ElseIf Text1(2).Text = "" Then MsgBox "请填写电话~", vbOKOnly + vbInformation, "注意" Text1(2).SetFocus Exit Sub ElseIf Text1(3).Text = "" Then MsgBox "请填写地址~", vbOKOnly + vbInformation, "注意" Text1(3).SetFocus Exit Sub End If Dim sqlcl As String sqlcl = "select * from client" rs_addcl.Open sqlcl, conn, adOpenKeyset, adLockPessimistic rs_addcl.AddNew rs_addcl.Fields(1) = Text1(1).Text rs_addcl.Fields(2) = Text1(2).Text rs_addcl.Fields(3) = Text1(3).Text rs_addcl.Update MsgBox "添加会员成功", vbOKOnly + vbExclamation, "" rs_addcl.Close End Sub 47 企业销售管理系统 -------------------------------会员查询-------------------------- Dim rs_cl As New ADODB.Recordset Private Sub Command2_Click() Dim answer As String answer = MsgBox("确定要删除吗,", vbYesNo, "") If answer = vbYes Then DataGrid1.AllowDelete = True rs_cl.Delete '删除当前记录 rs_cl.Update '更新删除 DataGrid1.Refresh MsgBox "成功删除~", vbOKOnly + vbExclamation, "" DataGrid1.AllowDelete = False Else Exit Sub End If End Sub Private Sub Command1_Click() If Command1.Caption = "修改记录" Then Command1.Caption = "确定" '按钮名称改为"确定" Command2.Enabled = False DataGrid1.AllowUpdate = True Else rs_cl.Update MsgBox "修改信息成功~", vbOKOnly + vbExclamation, "" DataGrid1.AllowUpdate = False Command1.Caption = "修改记录" Command2.Enabled = True End If End Sub Dim sqlcl As String sqlcl = "select * from client" rs_cl.CursorLocation = adUseClient rs_cl.Open sqlcl, conn, adOpenKeyset, adLockPessimistic DataGrid1.AllowAddNew = False '不可增加 DataGrid1.AllowDelete = False '不可删除 DataGrid1.AllowUpdate = False Set DataGrid1.DataSource = rs_cl '绑定DataGrid控件的数据源 End Sub Private Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSource = Adodc1 DataGrid1.Refresh rs_cl.Close End Sub --------------------------存货查询--------------------------- 48 南通纺院毕业(设计)论文 Private Sub cmdallgoods_Click() all = True frmGoodsTable.Show End Sub Private Sub cmdCancel_Click() Unload Me End Sub Private Sub cmdquery_Click() all = False If txtName.Text = "" Then MsgBox "请填写商品名称~", vbOKOnly + vbInformation, "注意" txtName.SetFocus Exit Sub ElseIf txtType.Text = "" Then MsgBox "请填写商品型号~", vbOKOnly + vbInformation, "注意" txtType.SetFocus Exit Sub End If strgname = txtName.Text strtype = txtType.Text frmGoodsTable.Show End Sub ----------------------------销售查询----------------------- Private Sub Form_Load() Dim rs_check As New ADODB.Recordset If allsell = False Then Dim strsql As String strsql = "select * from sell where 商品名='" _ & frmShowSell.txtName.Text & "'and 型号= '" & frmShowSell.txtType.Text & "'" rs_check.Open strsql, conn, adOpenKeyset, adLockPessimistic Adodc1.RecordSource = strsql Adodc1.Refresh DataGrid1.ReBind If rs_check.EOF = True Then MsgBox "此型号商品没有销售~", vbOKOnly + vbInformation, "注意" rs_check.Close Exit Sub End If rs_check.Close End If End Sub ------------------------------厂商查询------------------------- Dim rs_fc As New ADODB.Recordset 49 企业销售管理系统 Private Sub cmddel_Click() Dim answer As String answer = MsgBox("确定要删除吗,", vbYesNo, "") If answer = vbYes Then DataGrid1.AllowDelete = True rs_fc.Delete rs_fc.Update DataGrid1.Refresh MsgBox "成功删除~", vbOKOnly + vbExclamation, "" DataGrid1.AllowDelete = False Else Exit Sub End If End Sub Private Sub cmdmod_Click() If cmdmod.Caption = "修改记录" Then cmdmod.Caption = "确定" '按钮名称改为"确定" cmddel.Enabled = False DataGrid1.AllowUpdate = True Else rs_fc.Update MsgBox "修改信息成功~", vbOKOnly + vbExclamation, "" DataGrid1.AllowUpdate = False cmdmod.Caption = "修改记录" cmddel.Enabled = True End If End Sub Private Sub Form_Load() Dim sqlfc As String sqlfc = "select * from manufacturer" rs_fc.CursorLocation = adUseClient rs_fc.Open sqlfc, conn, adOpenKeyset, adLockPessimistic DataGrid1.AllowAddNew = False '不可增加 DataGrid1.AllowDelete = False '不可删除 DataGrid1.AllowUpdate = False Set DataGrid1.DataSource = rs_fc End Sub Private Sub Form_Unload(Cancel As Integer) rs_fc.Close End Sub -----------------------------进货统计------------------------- Private Sub Form_Unload(Cancel As Integer) Unload Me End Sub 50 南通纺院毕业(设计)论文 Private Sub SSTabbuy_Click(PreviousTab As Integer) Dim inty As Integer '当前年份 Dim intm As Integer '当前月份 Dim intd As Integer '当前日期 inty = Year(Date) intm = Month(Date) intd = Day(Date) Dim sqlbuy As String Dim sqlfctotal As String '各厂商进货总金额 Dim sqltotal As String '总进货金额 Dim rs_check As New ADODB.Recordset Dim rs_fctotal As New ADODB.Recordset Dim rs_total As New ADODB.Recordset rs_check.CursorLocation = adUseClient '设置游标方式 rs_fctotal.CursorLocation = adUseClient rs_total.CursorLocation = adUseClient Select Case PreviousTab Case 0 '今日进货选项卡 '下面的sql语句从goods表中选择进货日期为当前系统时间的记录的所有项, '并且把结果按生产厂商,总金额的降序排列 sqlbuy = "select * from goods where 进货年 =" & inty _ & " and 进货月=" & intm & " and 进货日=" & intd & " order by" _ & " 生产厂商,总金额 desc" '打开游标 rs_check.Open sqlbuy, conn, adOpenKeyset, adLockPessimistic Adodc1.RecordSource = sqlbuy '修改Adodc1的RecordSource属性 Adodc1.Refresh '刷新Adodc1的属性 DataGrid1.ReBind '重新绑定DataGrid1 '如果所查询结果集为空,则重新设置Adodc2和绑定DataGrid2,使其也为空 If rs_check.EOF = True Then Adodc2.RecordSource = sqlbuy Adodc2.Refresh DataGrid2.ReBind Text1.Text = 0 MsgBox "您今日没有进货~", vbOKOnly + vbInformation, "注意" rs_check.Close Exit Sub End If '下面的sql语句从goods表中选择进货日期为当前日期的记录集的"生产厂商"和"总金额", '并对结果以生产厂商为对象进行分组,对分组后的总金额进行求和统计 sqlfctotal = "select 生产厂商,sum(总金额) as 各厂商进货总金额 " _ 51 企业销售管理系统 & " from goods where 进货年 =" & inty & "and 进货月=" & intm _ & " and 进货日=" & intd & " group by 生产厂商 " rs_fctotal.Open sqlfctotal, conn, adOpenKeyset, adLockPessimistic Adodc2.RecordSource = sqlfctotal Adodc2.Refresh DataGrid2.ReBind rs_fctotal.Close sqltotal = "select sum(总金额) as 进货总金额 from goods where " _ & " 进货年 =" & inty & "and 进货月=" & intm & "and 进货日=" & intd rs_total.Open sqltotal, conn, adOpenKeyset, adLockPessimistic Text1.Text = rs_total.Fields(0) rs_total.Close rs_check.Close Case 1 sqlbuy = "select * from goods where 进货年 =" & inty _ & "and 进货月=" & intm & " order by 生产厂商,总金额 desc" rs_check.Open sqlbuy, conn, adOpenKeyset, adLockPessimistic Adodc3.RecordSource = sqlbuy Adodc3.Refresh DataGrid3.ReBind If rs_check.EOF = True Then Adodc4.RecordSource = sqlbuy Adodc4.Refresh DataGrid4.ReBind Text2.Text = 0 MsgBox "您本月没有进货~", vbOKOnly + vbInformation, "注意" rs_check.Close Exit Sub End If rs_check.Close sqlfctotal = "select 生产厂商,sum(总金额) as 各厂商进货总金额 " _ & "from goods where 进货年 =" & inty & "and 进货月=" & intm _ & " group by 生产厂商 " rs_fctotal.Open sqlfctotal, conn, adOpenKeyset, adLockPessimistic Adodc4.RecordSource = sqlfctotal Adodc4.Refresh DataGrid4.ReBind rs_fctotal.Close sqltotal = "select sum(总金额) as 进货总金额 from goods where " _ & " 进货年 =" & inty & "and 进货月=" & intm rs_total.Open sqltotal, conn, adOpenKeyset, adLockPessimistic Text2.Text = rs_total.Fields(0) rs_total.Close Case 2 52 南通纺院毕业(设计)论文 Dim s As Integer '用于判断当前月为本季度的第几个月 s = intm Mod 3 If s = 0 Then s = 3 '如果能整除3,则说明当前月为本季度的第3个月 sqlbuy = "select * from goods where 进货年 =" & inty _ & " and 进货月 between " & (intm - s) & " and " & (intm + 1) _ & " order by 生产厂商,总金额 desc" rs_check.Open sqlbuy, conn, adOpenKeyset, adLockPessimistic Adodc5.RecordSource = sqlbuy Adodc5.Refresh DataGrid5.ReBind If rs_check.EOF = True Then Adodc6.RecordSource = sqlbuy Adodc6.Refresh DataGrid6.ReBind MsgBox "您本季度没有进货~", vbOKOnly + vbInformation, "注意" rs_check.Close Exit Sub End If rs_check.Close sqlfctotal = "select 生产厂商,sum(总金额) as 各厂商进货总金额 " _ & "from goods where 进货年 =" & inty & "and 进货月 between " _ & (intm - s) & " and " & intm & " group by 生产厂商 " rs_fctotal.Open sqlfctotal, conn, adOpenKeyset, adLockPessimistic Adodc6.RecordSource = sqlfctotal Adodc6.Refresh DataGrid6.ReBind rs_fctotal.Close sqltotal = "select sum(总金额) as 进货总金额 from goods where 进货年 =" _ & inty & "and 进货月 between " & (intm - s) & " and " & intm rs_total.Open sqltotal, conn, adOpenKeyset, adLockPessimistic Text3.Text = rs_total.Fields(0) rs_total.Close Case 3 sqlbuy = "select * from goods where 进货年 =" & inty _ & " order by 生产厂商,总金额 desc" rs_check.Open sqlbuy, conn, adOpenKeyset, adLockPessimistic Adodc7.RecordSource = sqlbuy Adodc7.Refresh DataGrid7.ReBind If rs_check.EOF = True Then Adodc8.RecordSource = sqlbuy Adodc8.Refresh 53 企业销售管理系统 DataGrid8.ReBind Text3.Text = 0 MsgBox "您本年度没有进货~", vbOKOnly + vbInformation, "注意" rs_check.Close Exit Sub End If rs_check.Close sqlfctotal = "select 生产厂商,sum(总金额) as 各厂商进货总金额 " _ & "from goods where 进货年 =" & inty & " group by 生产厂商 " rs_fctotal.Open sqlfctotal, conn, adOpenKeyset, adLockPessimistic Adodc8.RecordSource = sqlfctotal Adodc8.Refresh DataGrid8.ReBind rs_fctotal.Close sqltotal = "select sum(总金额) as 进货总金额 from goods where " _ & "进货年 =" & inty rs_total.Open sqltotal, conn, adOpenKeyset, adLockPessimistic Text4.Text = rs_total.Fields(0) rs_total.Close End Select End Sub ------------------------------销售统计--------------------------- Private Sub SSTabsell_Click(PreviousTab As Integer) Dim sqlsell As String Dim sqlfctotal As String '各品牌销售总金额 Dim sqltotal As String '销售总金额 Dim inty As Integer Dim intm As Integer Dim intd As Integer inty = Year(Date) intm = Month(Date) intd = Day(Date) Dim rs_check As New ADODB.Recordset Dim rs_fctotal As New ADODB.Recordset Dim rs_total As New ADODB.Recordset rs_check.CursorLocation = adUseClient rs_fctotal.CursorLocation = adUseClient rs_total.CursorLocation = adUseClient Select Case PreviousTab Case 0 sqlsell = "select * from sell where 销售年 =" _ & inty & " and 销售月=" & intm & " and 销售日=" & intd _ & " order by 生产厂商,总金额 desc" rs_check.Open sqlsell, conn, adOpenKeyset, adLockPessimistic 54 南通纺院毕业(设计)论文 Adodc1.RecordSource = sqlsell Adodc1.Refresh DataGrid1.ReBind If rs_check.EOF = True Then Adodc2.RecordSource = sqlsell Adodc2.Refresh DataGrid2.ReBind Text1.Text = 0 MsgBox "您今日没有销售~", vbOKOnly + vbInformation, "注意" rs_check.Close Exit Sub End If rs_check.Close sqlfctotal = "select 生产厂商,sum(总金额) as 各厂商销售总金额 " _ & " from sell where 销售年 =" & inty & "and 销售月=" _ & intm & " and 销售日=" & intd & " group by 生产厂商 " rs_fctotal.Open sqlfctotal, conn, adOpenKeyset, adLockPessimistic Adodc2.RecordSource = sqlfctotal Adodc2.Refresh DataGrid2.ReBind rs_fctotal.Close sqltotal = "select sum(总金额) as 销售总金额 from sell where " _ & " 销售年 =" & inty & "and 销售月=" & intm & "and 销售日=" & intd rs_total.Open sqltotal, conn, adOpenKeyset, adLockPessimistic Text1.Text = rs_total.Fields(0) rs_total.Close Case 1 sqlsell = "select * from sell where 销售年 =" & inty _ & "and 销售月=" & intm & " order by 生产厂商,总金额 desc" rs_check.Open sqlsell, conn, adOpenKeyset, adLockPessimistic Adodc3.RecordSource = sqlsell Adodc3.Refresh DataGrid3.ReBind If rs_check.EOF = True Then Adodc4.RecordSource = sqlsell Adodc4.Refresh DataGrid4.ReBind Text2.Text = 0 MsgBox "您本月没有销售~", vbOKOnly + vbInformation, "注意" rs_check.Close Exit Sub End If rs_check.Close sqlfctotal = "select 生产厂商,sum(总金额) as 各厂商销售总金额 " _ 55 企业销售管理系统 & " from sell where 销售年 =" & inty & "and 销售月=" & intm _ & " group by 生产厂商 " rs_fctotal.Open sqlfctotal, conn, adOpenKeyset, adLockPessimistic Adodc4.RecordSource = sqlfctotal Adodc4.Refresh DataGrid4.ReBind rs_fctotal.Close sqltotal = "select sum(总金额) as 销售总金额 from sell where " _ & "销售年 =" & inty & "and 销售月=" & intm rs_total.Open sqltotal, conn, adOpenKeyset, adLockPessimistic Text2.Text = rs_total.Fields(0) rs_total.Close Case 2 Dim s As Integer s = intm Mod 3 If s = 0 Then s = 3 sqlsell = "select * from sell where 销售年 =" & inty _ & " and 销售月 between " & (intm - s) & " and " & intm & " order by 生产厂商,总金额 desc" rs_check.Open sqlsell, conn, adOpenKeyset, adLockPessimistic Adodc5.RecordSource = sqlsell Adodc5.Refresh DataGrid5.ReBind If rs_check.EOF = True Then Adodc6.RecordSource = sqlsell Adodc6.Refresh DataGrid6.ReBind Text3.Text = 0 MsgBox "您本季度没有销售~", vbOKOnly + vbInformation, "注意" rs_check.Close Exit Sub End If rs_check.Close sqlfctotal = "select 生产厂商,sum(总金额) as 各厂商销售总金额 " _ & "from sell where 销售年 =" & inty & "and 销售月 between " & (intm - s) & " and " & intm & " group by 生产厂商 " rs_fctotal.Open sqlfctotal, conn, adOpenKeyset, adLockPessimistic Adodc6.RecordSource = sqlfctotal Adodc6.Refresh DataGrid6.ReBind rs_fctotal.Close sqltotal = "select sum(总金额) as 销售总金额 from sell where " _ & " 销售年 =" & inty & "and 销售月 between " & (intm - s) _ & " and " & intm 56 南通纺院毕业(设计)论文 rs_total.Open sqltotal, conn, adOpenKeyset, adLockPessimistic Text3.Text = rs_total.Fields(0) rs_total.Close Case 3 sqlsell = "select * from sell where 销售年 =" & inty _ & " order by 生产厂商,总金额 desc" rs_check.Open sqlsell, conn, adOpenKeyset, adLockPessimistic Adodc7.RecordSource = sqlsell Adodc7.Refresh DataGrid7.ReBind If rs_check.EOF = True Then Adodc8.RecordSource = sqlsell Adodc8.Refresh DataGrid8.ReBind Text4.Text = 0 MsgBox "您本年度没有销售~", vbOKOnly + vbInformation, "注意" rs_check.Close Exit Sub End If rs_check.Close sqlfctotal = "select 生产厂商,sum(总金额) as 各厂商销售总金额 " _ & " from sell where 销售年 =" & inty & " group by 生产厂商 " rs_fctotal.Open sqlfctotal, conn, adOpenKeyset, adLockPessimistic Adodc8.RecordSource = sqlfctotal Adodc8.Refresh DataGrid8.ReBind rs_fctotal.Close sqltotal = "select sum(总金额) as 销售总金额 from sell where " _ & " 销售年 =" & inty rs_total.Open sqltotal, conn, adOpenKeyset, adLockPessimistic Text4.Text = rs_total.Fields(0) rs_total.Close End Select End Sub ------------------------------图表分析----------------------- Dim rs_fctotal As New ADODB.Recordset Private Sub SSTab1_Click(PreviousTab As Integer) Dim sqlfctotal As String '各品牌销售总金额 Dim inty As Integer Dim intm As Integer Dim intd As Integer inty = Year(Date) intm = Month(Date) intd = Day(Date) 57 企业销售管理系统 rs_fctotal.CursorLocation = adUseClient Select Case PreviousTab Case 0 '今日销售选项卡 sqlfctotal = "select 生产厂商,sum(总金额) as 各厂商销售总金额 " _ & " from sell where 销售年 =" & inty & "and 销售月=" _ & intm & " and 销售日=" & intd & " group by 生产厂商 " rs_fctotal.Open sqlfctotal, conn, adOpenKeyset, adLockPessimistic If rs_fctotal.EOF = True Then MsgBox "您今日没有销售~", vbOKOnly + vbInformation, "注意" rs_fctotal.Close Exit Sub End If With MSChart1 .ShowLegend = True Set .DataSource = rs_fctotal End With rs_fctotal.Close Case 1 sqlfctotal = "select 生产厂商,sum(总金额) as 各厂商销售总金额 " _ & " from sell where 销售年 =" & inty & "and 销售月=" & intm _ & " group by 生产厂商 " rs_fctotal.Open sqlfctotal, conn, adOpenKeyset, adLockPessimistic If rs_fctotal.EOF = True Then MsgBox "您本月没有销售~", vbOKOnly + vbInformation, "注意" rs_fctotal.Close Exit Sub End If With MSChart2 .ShowLegend = True Set .DataSource = rs_fctotal End With rs_fctotal.Close Case 2 Dim s As Integer s = intm Mod 3 If s = 0 Then s = 3 sqlfctotal = "select 生产厂商,sum(总金额) as 各厂商销售总金额 " _ & "from sell where 销售年 =" & inty & "and 销售月 between " & (intm - s) & " and " & intm & " group by 生产厂商 " rs_fctotal.Open sqlfctotal, conn, adOpenKeyset, adLockPessimisti If rs_fctotal.EOF = True Then MsgBox "您本季度没有销售~", vbOKOnly + vbInformation, "注意" rs_fctotal.Close Exit Sub 58 南通纺院毕业(设计)论文 End If With MSChart3 .ShowLegend = True Set .DataSource = rs_fctotal End With rs_fctotal.Close Case 3 sqlfctotal = "select 生产厂商,sum(总金额) as 各厂商销售总金额 " _ & " from sell where 销售年 =" & inty & " group by 生产厂商 " rs_fctotal.Open sqlfctotal, conn, adOpenKeyset, adLockPessimistic If rs_fctotal.EOF = True Then MsgBox "您本年度没有销售~", vbOKOnly + vbInformation, "注意" rs_fctotal.Close Exit Sub End If With MSChart4 .ShowLegend = True Set .DataSource = rs_fctotal End With rs_fctotal.Close End Select End Sub -------------------------------业绩查看------------------------- Private Sub cmdallem_Click() allem = True frmGrade.Show End Sub Private Sub cmdCancel_Click() Unload Me End Sub Private Sub cmdquery_Click() allem = False If txtNo.Text = "" Then MsgBox "请填写员工号~", vbOKOnly + vbInformation, "注意" txtNo.SetFocus Exit Sub End If frmGrade.Show End Sub --------------------------员工登记-------------------------- Option Explicit Dim rs_addem As New ADODB.Recordset Private Sub cmdAddem_Click() Text1.Enabled = False 59 企业销售管理系统 If Text2.Text = "" Then MsgBox "请填写姓名~", vbOKOnly + vbInformation, "注意" Text2.SetFocus Exit Sub ElseIf Text3.Text = "" Then MsgBox "请填写电话~", vbOKOnly + vbInformation, "注意" Text3.SetFocus Exit Sub ElseIf Text4.Text = "" Then MsgBox "请填写地址~", vbOKOnly + vbInformation, "注意" Text4.SetFocus Exit Sub End If Dim sqlem As String sqlem = "select * from employee" rs_addem.Open sqlem, conn, adOpenKeyset, adLockPessimistic rs_addem.AddNew rs_addem.Fields(1) = Text2.Text rs_addem.Fields(2) = Text3.Text rs_addem.Fields(3) = Text4.Text rs_addem.Update MsgBox "添加员工成功", vbOKOnly + vbExclamation, "" rs_addem.Close End Sub ----------------------------员工查询--------------------------- Dim rs_em As New ADODB.Recordset Private Sub cmddel_Click() Dim answer As String answer = MsgBox("确定要删除吗,", vbYesNo, "") If answer = vbYes Then DataGrid1.AllowDelete = True rs_em.Delete '删除当前记录 rs_em.Update '更新删除 DataGrid1.Refresh MsgBox "成功删除~", vbOKOnly + vbExclamation, "" DataGrid1.AllowDelete = False Else Exit Sub End If End Sub Private Sub cmdmod_Click() If cmdmod.Caption = "修改记录" Then cmdmod.Caption = "确定" '按钮名称改为"确定" cmddel.Enabled = False 60 南通纺院毕业(设计)论文 DataGrid1.AllowUpdate = True Else rs_em.Update MsgBox "修改信息成功~", vbOKOnly + vbExclamation, "" DataGrid1.AllowUpdate = False cmdmod.Caption = "修改记录" cmddel.Enabled = True End If End Sub Private Sub Form_Load() Dim sqlem As String sqlem = "select * from employee" rs_em.CursorLocation = adUseClient rs_em.Open sqlem, conn, adOpenKeyset, adLockPessimistic DataGrid1.AllowAddNew = False '不可增加 DataGrid1.AllowDelete = False '不可删除 DataGrid1.AllowUpdate = False Set DataGrid1.DataSource = rs_em '绑定DataGrid控件的数据源 End Sub Private Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSource = Adodc1 DataGrid1.Refresh rs_em.Close End Sub ------------------------数据备份------------------------- Dim itmX, key As String '定义字符串变量 Dim a As Integer '定义整型变量 Private Sub Form_Load() Option1.Value = True Dir1_Change End Sub Private Sub Dir1_Change() File1.Path = Dir1.Path '添加数据备份卡到列表中 ListView1.ListItems.Clear If File1.ListCount <> 0 Then a = 0 Do While File1.ListIndex < File1.ListCount - 1 File1.ListIndex = a key = File1.FileName Set itmX = ListView1.ListItems.Add(, , key, 1) a = a + 1 Loop End If 61 企业销售管理系统 Label1.Caption = Dir1.Path & "\" & File1.FileName End Sub Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub Private Sub File1_Click() Label1.Caption = Dir1.Path & "\" & File1.FileName '获取路径 End Sub Private Sub Command1_Click() If Option1.Value = True Then '备份数据库 If File1.ListCount <> 0 Then FileCopy Trim(Label1.Caption), Date & "备份卡" & File1.FileName Me.MousePointer = 0 MsgBox "数据已备份完毕~" key = Date & "备份卡" & File1.FileName Set itmX = ListView1.ListItems.Add(, , key, 1) End If End If If Option2.Value = True Then '恢复指定路径下的数据库 If File1.ListCount <> 0 Then FileCopy ListView1.SelectedItem, File1.FileName Me.MousePointer = 0 MsgBox "数据已恢复完毕~" Else MsgBox "请选择要恢复的数据~" End If End If End Sub Private Sub Command2_Click() Unload Me End Sub --------------------------------------------------------------- 62
本文档为【VB 汽车销售管理系统源代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_447713
暂无简介~
格式:doc
大小:660KB
软件:Word
页数:90
分类:企业经营
上传时间:2017-09-20
浏览量:49