




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
企业资产管理系统VBAccess毕业设计目录TOC\o"1-5"\h\z绪论 -1 -\o"CurrentDocument"课题背景 -1 -\o"CurrentDocument"目的及意义 -1 -\o"CurrentDocument"开发和运行环境选择 -1 -\o"CurrentDocument"编程环境的选择 -2 -VisualBasic简介及实现原理 -2 -数据库组件介绍 -3 -SQL语言在VB中的应用 -4 -\o"CurrentDocument"数据库平台介绍 -4 -Access2007数据库简介 -4 -数据库的基本概念 -5 -结构化查询语言SQL - 6-SQL语句简介 -6 -2系统设计 -8 -\o"CurrentDocument"系统功能分析 -8 -\o"CurrentDocument"系统功能模块设计 -8 -3数据库设计 -10 -\o"CurrentDocument"数据库需求分析 -10 -\o"CurrentDocument"数据库概念结构设计 -11 -\o"CurrentDocument"数据库逻辑结构设计及实现 -13 -\o"CurrentDocument"4系统具体程序实现 -15 -\o"CurrentDocument"系统公共模块和类模块的创建 -15 -创建工程项目——PrjDevice -15 -创建公用模块 -15 -创建类模块 -15 -\o"CurrentDocument"系统用户登录窗体的创建 -16 -\o"CurrentDocument"企业资产管理系统主窗体的创建 -17 -资产管理模块 -22 -资产查询模块 -26 -报表管理模块 -26 -系统管理模块 -30 -用户管理模块 -31 -\o"CurrentDocument"5系统的编译和发行 -32 -6小结 -33 -致谢 -34 -主要参考文献 -35 -附录 -37 -II1绪论课题背景随着信息技术广泛、深入地应用到人类社会的各个领域并发挥着越来越重要的作用。计算机软件技术应用于信息管理是发展的必然。作为计算机应用的一部分,充分发挥计算机的优势,将大量复杂的数据交给计算机来处理,有着手工管理所无法比拟的优点。如:查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高信息管理的效率,是真正意义上的合理利用资源,也是企事业管理科学化、正规化,与世界接轨的重要条件在当今社会,作为一个公司或集体,资产是至关重要的。资产的项目是纷繁芜杂的,大至办公楼、汽车,小到办公桌、订书机等诸多门类的诸多物品都可以列入资产之列。由于资产的种类太多,涉及面太广,而且被经常的借出借入,必然会引起管理上的困难,而资产管理不好就会引起混乱,导致公司资产的流失。因此,有必要设计一个应用软件系统来管理。目的及意义毕业设计是四年学习的总结,同时也是自己综合运用所学知识来解决实际问题的一次锻炼。企业资产管理系统的主要目的是为了方便企业对资产的录入、修改、查询,提高企业资产管理部的工作效率。这一系统的开发成功,将会解决手写速度慢、容易出错的现状。无论是在资产管理,还是报表管理等方面都可以帮助企业迅速、准确的完成所需的工作。而且此系统在适用性、灵活性和易操作性方面都显示出了它的强大功能。开发和运行环境选择在操作系统方面,WindowsXP系统提供了一个可伸缩的高性能平台,用于运行基于Windows的新一代强大应用程序。这种平台的体系结构可以更有效地处理海量数据,使应用程序运行地更快、更高效。同时,WindowsXP操作系统占据很大的市场地位,而且其使用趋向于傻瓜化,操作简单、灵活。另外,现在计算机的运算速度比以前有了数量级倍数的提高,硬件的价格也一天天的在下降,所以也不用为了节省整体的造价而改用硬件要求很低的DOS系统了。基于Windows操作系统以上的特点,我们决定此企业资产管理系统将运行在WindowsXP操作系统下,利用Access2007数据库来协助开发人员轻松地进行与数据库的连接和管理。编程环境的选择目前,在市场上这些众多的程序开发工具中,有些强调程序语言的弹性与执行效率;有些则偏重于可视化程序开发工具所带来的便利性与效率的提高,各有各的优点和特色,也满足了不同用户的需求。然而,语言的弹性和工具的便利性是密不可分的,只有便利的工具,却没有弹性的语言作支持,许多特殊化的处理动作必需要耗费数倍的工夫来处理,使得原来所标榜的效率提高的优点失去了作用;相反,如果只强调程序语言的弹性,却没有便利的工具作配合,会使一些即使非常简单的界面处理动作,也会严重地浪费程序设计师的宝贵时间。而VB6.0是著名的微软公司的可视化软件开发工具,其被称为最容易编程语言,它具有简单、高效、功能强大的特点。它是一个非常理想的选择,是可视化的快速应用程序开发语言,它提供了可视化的集成开发环境,这一环境为应用程序设计人员提供了一系列灵活而先进的工具,可以广泛地用于许多种类应用程序设计。故而,实现本系统,VB是一个相对较好的选择。VC++在界面设计上不如VB方便,所以本次课题用VB开发。VisualBasic简介及实现原理VisualBasic(简称VB)是美国微软公司(Microsoft)于1990年推出的一套完整的Windows系统软件开发工具,可用于开发Windows环境下的各类应用程序,是一种可视化、面向对象、用事件驱动方式的结构化高级程序设计语言和工具,是目前使用最广泛的编程语言之一。至今已升级到了6.0版。VB的重要特点之一是可视性。系统引进了窗体和控件的机制,用于设计应用程序界面。用户通过在屏幕上生成窗体,在窗体中绘制所需要的控件和按钮,设计菜单和对话框,VB会自动生成相应的代码。VB的另一重要特点是事件驱动。当窗体或控件上发生一个事件时,VB立即把控制权交给程序员。程序员不必担心如何判断事件是否已发生,只需要编写一段代码告诉计算机在事件发生以后应该做什么工作就可以了。这样,设计一个Windows应用程序简化为用鼠标在屏幕上点击、拖拽并添加少量的代码就可以完成了,大大降低了对程序设计的要求,提高了应用程序的开发效率。利用VB的可视性特点,可方便的设计程序的窗体界面,并在各个窗体中的合适位置绘制所需的每种控件。如要修改窗体或控件的某项属性,只需在相应的窗体或控件的属性窗口修改相应的参数便可达到需要的设计效果。利用VB的事件驱动性特点,只需在窗体或控件上的代码窗口中添加少量的代码,便可达到告诉当在相应的窗体或控件上发生某一事件时,它们在事件发生后应该做什么工作的目的。例如几个窗体上的添加、删除、返回按钮的作用,就是通过在各个相应按钮的代码窗口中输入相应的代码,来达到当在几个按钮上出现单击(Click)事件后,相应按钮实现添加、删除、返回的功能的。数据库组件介绍在使用VisualBasic6.0开发数据库应用程序的时候,会经常使用数据库访问控件。这些控件包括:Data控件;ADOData控件;DataList控件/DataCombo控件;DataGrid控件;MSChart控件。下面将分别对这些控件的主要功能及使用方法进行介绍。(1)Data控件Data控件是VisualBasic中最基本的数据库操作控件。它使用Recordset对象提供对存储在数据库中数据的访问。Data控件允许从一个记录移动到另一个记录,并显示和操纵来自被连接控件的记录的数据。许多其他的数据库操作控件都需要Data控件或类似的数据源控件(比如ADOData控件)。Data控件可以执行大部分数据库访问操作,但是它并不能显示数据库中数据的内容。Data控件通常需要与其他控件结合使用。这些与Data控件结合使用的控件,可以称之为“数据觉察控件”。因为程序员无需编写任何代码,就可以在这些控件中显示当前记录的数据。当Data控件中当前记录发生变化时,数据觉察控件的内容也会随之发生变化。当与Data控件相连接时,DataList、DataCombo、DataGrid和MSHFlexGrid控件都能管理记录集合。所有这些控件都允许一次显示或操作几个记录。内部的Picture.Label、TextBox.CheckBox.Image.OLE、ListBox和ComboBox控件也是数据觉察的,能和由Data控件管理的Recordset对象的某个字段相连接。ADOData控件ADOData控件与内部Data控件以及RemoteData控件(RDC)相似。用户可以使用ADOData控件快速地创建一个到数据库的连接。DataList控件/DataCombo控件DataList控件是一个数据绑定列表框,它可以自动地由一个附加数据源中的一个字段充填,并且可选择地更新另一个数据源中一个相关表的一个字段。DataCombo控件的功能与DataList控件完全相同,只不过DataCombo控件是一个组合框。DataGrid控件在许多情况下,需要使用表格形式来显示数据库中的数据。这时就要借助于DataGrid控件。用户可以设置DataGrid控件的DataSource属性为一个ADOData控件,从而将ADOData中的数据自动地填充到DataGrid表格中。这个DataGrid控件实际上是一个固定的列集合,每一列的行数都是不确定的。(5)MSChart控件MSChart控件的功能是以图形方式显示数据的图表。这会使枯燥的数据变得更加生动直观,增加了程序的实用价值。MSChart控件支持一下特性:1、真三维表示;2、支持所有主要的图表类型;3、数据网络成员支持随机数据,数据数组。1.4.3SQL语言在VB中的应用(1)SQL提供的实用函数为实现使用VB程序调用SQL语言访问Access2007数据库多个记录的目的,我们利用SQL提供的函数。DavgFunction(求平均值)DcountFunction(计算满足条件的记录数)DfirstFunction(返回记录集的第一个记录的某个域值)DlastFunction(返回记录集的最后一个记录的某个域值)DlookupFunction(返回记录集中满足待定条件的记录的域值)DsumFunction(求和计算)DmaxFunction(求最大值)DminFunction(求最小值)1.5数据库平台介绍Access2007数据库简介Access2007是关系数据库开发工具,1992年,MicrosoftAccess作为第一个面向Windows操作平台的桌面数据库管理系统而诞生,它不但充分体现了面向对象的思想,提供可视化的编程手段,而且充分利用了Windows操作平台的优越性,采用与Windows完全一致的界面风格,使界面非常友好。在Access中,用户不需要编写复杂的程序就可以建立一个完整的数据库应用系统,是一个典型的开放式数据库系统,它可以和Windows下的其他应用程序共享数据库资源。数据库能汇集各种信息以供查询、存储和检索。Access的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。另外,Access允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。本课题研究过程中选用了WindowsXP操作系统平台。WindowsXPServer包含了改进的网络、应用程序和Web服务。它不但增强了可靠性和灵活性,而且降低了拥有强大、灵活管理服务的计算系统的成本,并为运行企业应用程序提供了最好的基础。数据库的基本概念数据库系统是计算机系统的重要组成部分。信息处理系统的大量推广应用,使得数据库应用技术成为人们普遍关注的问题。数据库技术所研究的问题是如何科学地组织和存储数据,如何高效地获取和处理数据。数据库按其结构可分为层次数据库、网状数据库和关系数据库。其中关系数据库是应用最多的一种数据库。VB默认的数据库是Accsee数据库,库文件的扩展名为.mdb。.数据表数据表是一组相关联的数据按行和列排列的二维表格,简称为表(Table),通常用来描述一个实体。每个数据表均有一个表名,一个数据库由一个或多个数据表组成,各个数据表之间可以存在某种关系。.记录与字段数据表都是多行或多列构成的集合,每列称为一个字段(Field),它对应表格中的数据项,每个数据项的名称称为字段名,如“编号々“姓名”等都是字段名。字段的取值范围称为域,通常用字段描述表格实体在某一方面的属性。表格的项目名称下面的每一行称为一个记录(Record),它是字段值的集合,如姓名为“王霞”对应的行中所有数据即是一条记录。记录中的每个字段的取值,称为字段值或分量。记录中的数据随着每一行记录的不同而变化。.关键字如果数据表中某个字段值能唯一地确定一个记录,用以区分不同的记录,则称该字段名为候选关键字。一个表中可以存在多个候选关键字,选中其中一个关键字作为主关键字。如员工“编号”是唯一的,“姓名”和“年龄”存在相同情况,可将其组合起来,作为组合关键字。对于数据表中的每个记录来说,主关键字必须具有一个唯一的值,即主关键字不能为空值。在数据库中,表与表之间是通过关键字来相互关联的。例如,职工情况表与工资表之间就是用“编号”相互关联的。用来联系两个数据表的字段称为关键字段。根据一个表中记录与另一个表中记录之间的数量对应关系,分为一对一、一对多(或多对一)、多对多关系,常用的是一对多关系。.索引一个表可以按照某种特定的顺序进行保存和排列。例如,用户可能想要自己的数据按照“部门”的顺序保存,这样可以给表设置索引,通过这些索引,数据库引擎就能非常迅速地查找到某个特定的记录。这与一本书的目录索引相似,通过目录索引就能很快找到自己需要的内容。从简单意义上讲,一个表是许多记录的集合。更为常见的情况是,表是一个经过分类排序和建立索引后的记录的集合表。用户可以通过用不同的分类和过滤条件将多个记录组成一个集合。对一个记录集进行的修改会自动更新相应的表中的内容,同样,对表所做修改会自动更新以该表为基础建立的所有记录集。结构化查询语言SQLSQL(StructureQueryLanguage结构化查询语言)是一种用于数据查询的编程语言。由于它的功能丰富、使用方式灵活、语言简洁易学,在计算机工业界和用户中倍受欢迎,现已成为关系数据库语言的国际标准。使用SQL可以完成定义关系模式,录入数据,建立数据库,查询、更新、维护数据库,数据库重构,数据库安全性控制等一系列的操作要求。对于VB中的关系数据库,一旦数据存入数据库以后,就可以用SQL同数据库“对话”。通常,都是由用户用SQL来“发问”,数据库则以符合发问条件的记录来“回答”。查询的语法中通常都包含表名、字段名及一些条件等。SQL语句简介SQL是一种数据库系统的标准,使用SQL语句可以进行数据库的查询、修改、插入和删除等基本操作,还可以建立存储过程、触发器等。SQL中以关键字打头,完整描述一个操作完整的短语。例如:Select*FromtblUserSQL语句不应和一般的VB语句混淆。以下是几个常用的SQL语句:(1)Select语句的语法。Select语句可以创建一个选择查询,用于从现有的数据库中检索数据,是最常用的查询之一,其语法为Select(字段名表)From(表名)Where(条件)说明:(字段名表)列出要查询的字段名,字段名之间用逗号分开。当要查询的是表中所有列时,可用“*”代表,而不要一一列出。(表名)指出所查询的表。如果查询是在多个表之间进行的,所有的表都要列出,表名之间用逗号分隔。-6-(条件)是一个结果为逻辑值的逻辑表达式或条件表达式。(条件)和(字段名表)中用到的字段名前要加上表名,中间用小数点分隔。(2)Update语句的语法。Update语句可以创建一个更新查询,用来按照指定条件修改表中的字段值。其语法为Update(表名)Set(字段)=(表达式)[,(字段)=(表达式)]Where(条件)(3)Delete语句的语法。Delete语句可以创建一个删除查询,用来按照指定条件删除表中的记录。其语法为DeleteFrom(表名)Where(条件)(4)Insert语句的语法。Insert语句可以创建一个添加查询,用来向表中添加多个记录。其语法为InsertInto(目标表名)Select(字段1)[,(字段2)…]From(源表名)向表中添加多个记录的Insert语句语法为InsertInto(目标表名)(字段1)[,(字段2)„]Values(值1)[,(值2„)](5)SelectInto语句的语法。SelectInto语句用来为表做备份或将表输出到其他数据库中。其语法为Select(字段名表)Into(新表名)From(源表名)2系统设计系统功能分析本系统开发的总体任务是实现各种信息的系统化、规范化和自动化。本系统主要是基于可以移动的电脑、书籍、办公桌等资产的管理,可实现的功能主要有:资产数据的浏览:分条显示资产记录,显示企业资产总表。资产数据的查询:查询符合特定条件的资产记录及全部资产。资产数据的修改:对资产的数据进行修改。资产数据的增加:增加新入库资产。资产的报废:对某一特定的资产进行报废处理。资产的注销:对某一特定的资产进行注销处理。资产的删除:删除某一特定的资产记录。资产的借出与还入:将在库资产借出,或将借出的资产还入库中。资产记录的打印:打印当前记录的全部资产(资产登记表)、各部门拥有资产数(部门统计表)、资产报废登记(报废统计表)、资产折旧(折旧统计表)。系统用户的管理:系统管理员能对访问系统的用户进行添加、修改、删除操作。系统密码的更改:系统的正式用户都可以更改自己的密码。系统多用户分级管理:系统共设3种级别的用户。1)普通用户:能浏览资产表并进行查询以及报表浏览。2)数据操作员:能进行资产的增加、删除、修改、出借等操作以及报表浏览。3)系统管理员:能对系统用户进行管理。系统功能模块设计对上述各项功能进行集中、分块,按照结构化程序设计的要求,得到如图2-1所示的系统功能模块图。
图2-1系统功能模块图.资产查询模块该模块的功能是提供资产数据的查询以及显示全部资产。.用户管理模块该模块的功能是提供用户的添加、删除和修改。.资产管理模块该模块的功能是提供资产的添加、删除、修改、借出还入、报废、注销以及资产的全部显示和分条显示。.报表打印模块该模块的功能是提供资产登记表、部门统计表、报废统计表和统计表的浏览及打印。.系统管理模块该模块的功能是提供用户密码的修改和退出系统功能。3数据库设计数据库在一个信息管理系统中占有非常重要的地位,合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。数据库设计一般包括如下几个步骤:数据库需求分析。数据库概念结构设计。数据库逻辑结构设计及实现。数据库需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。在仔细分析调查有关资产管理信息需求的基础上,将得到如图3-1所示的本系统所处理的数据流程。图3-1资产管理信息系统数据流程图针对一般企业资产管理信息系统的需求,通过对企业资产管理工作过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:部门基本信息:包括部门编号、部门名称。操作:输入、删除、查询、修改。-10-资产基本信息:包括资产编号、名称、型号、类型、所属部门、购买价格、折旧价、购买日期、状态(借出或在库)、报废时间、注销时间、购买日期。操作:输入、删除、查询、修改。资产借还信息:包括资产编号、借或还信息、使用部门、借或还时间、操作时间。操作:借出、还入。资产分类信息:包括资产分类号、资产分类名。操作:输入、删除、查询、修改。用户信息:包括用户名、用户密码、用户级别。操作:输入、删除、修改。有了上面的数据结构、数据项和数据流程,我们就能进行下面的数据库设计。数据库概念结构设计有了上面的具体企业资产管理需求以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的操作及其变化的流程。本实例根据上面的设计规划出的实体有:部门基本信息实体、资产基本信息实体、资产借还信息实体、资产分类信息实体、用户信息实体。各个实体具体的描述E-R图如下。部门基本信息实体E-R图如图3-2所示。图3-2学生基本信息实体E-R图资产基本信息实体E-R图如图3-3所示。-11-
资产借还信息实体E-R图如图3-4所示。资产分类信息实体E-R图如图3-5所示。图3-5资产分类信息实体E-R图用户信息实体E-R图如图3-6所示。--12-图3-6用户信息实体E-R图
实体之间关系的E-R图如图3-7所示。图3-7实体之间关系的E-R图数据库逻辑结构设计及实现经过上面的需求分析和概念设计,再根据关系数据库理论及其设计方法与技术,就可以将上面的数据库概念结构转化为Access2007数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。启动Access2007,创建一个新的数据库,命名为Data.mdb,保存在要存放这个系统的所有工程文件夹中。使用设计器创建这个系统需要的所有表格。企业资产管理系统数据库中各个表格的设计结果如下面表格所示。每个表格表示在数据库中的一个表。表3-1tblDepartment部门基本信息表-13-
表3-2tblDevice资产基本信息表园tblDevice:表字段名称数据类型说明 1IID自动编号1DeviceNO文本资产编号DeviceN:diTiH文本资产名称DeviceModel文本资产型号Typeth文本资产类型HeptBO文本所属部门FruduetFrice货币购买价格PruductCuEt货币折旧价PufchasMllatP日期/时间购买日期Status数字状态:口一正常可用,1--借出RejertDate日期/时间报废时间Disc:1i'dliath日期/时间注销时间Rec口rdllate日期/时间录入日期表3-3tblLend资产借还信息表国tblLend:表字段名称数据类型说明 1LED自动编号Devicelll数字资产编号Uperatioil文本操作:惜或还LeriiJIlept文本使用部门LernlDatH日期/时间操作时间:借或还时间LendMan文本操作人表3-4tblTypelnfo资产分类信息表UUtblTypelnfo:表 □回国字段名称数据类型说明 1TID自动编号TypetTD文本资产分类号Tj^iHlLdfTiP文本资产分类名IZI回表3-5tblUser用户信息表IZI回--14-字段名称数据类型说明AUID自动编号Lugin文本用户名Fwd文本用户密码IJserLeTel数字用户皴别Cr已打t211at已日期/时间创建时间国tblUser:表4系统具体程序实现系统公共模块和类模块的创建VB的代码存储在模块中。在VB中提供了三种类型的模块:窗体模块、公共模块和类模块。简单的应用程序可以只有一个窗体,所用的程序都驻留在窗体模块中,而当应用程序庞大复杂时,就要另外附加窗体。最终可能有几个窗体中有一些共同都要执行的代码,为了在两个窗体中不产生重复代码,可创建一个独立的模块,用它实现代码公用。该独立模块即是公共模块。此外还可以建立包含共享代码与数据的类模块。每个标准模块、类模块和窗体模块可包含:(1)声明:可将常数、类型、变量和动态链接库(DLL)过程的声明放在窗体、类或公共模块的声明部分。每个模块只有一个声明部分。(2)过程:每个模块可有多个过程,过程是划分VB代码的最小单元,每个过程是一个可执行的代码片段。VB中主要有子过程、函数过程或者属性过程等创建工程项目——PrjDevice启动VisualBasic后,单击“文件”“新建工程”菜单,在工程模板中选择“标准EXE”项,单击“确定”按钮,VisualBasic将自动产生一个Form窗体,这个窗体的属性都是缺省设置。这里我们先删除这个窗体,然后单击“文件”一“保存工程”菜单,在出现的“文件另存为”对话框中,将这个工程项目命名为PbDevice。并且选择要保存这个工程的目录,单击“保存”按钮,保存工程。创建公用模块在VisualBasic中可以用公用模块来存放整个工程项目公用的函数、过程和全局变量等。因为不希望在多个窗体中重复代码,所以要创建一个独立模块,它包含实现公共代码的过程,这样可以极大地提高代码的效率。在项目资源管理器中为项目添加一个Module,保存为Global.bas。下面就可以开始编辑需要的代码了。代码见附录十。创建类模块在VB中类模块是面向对象编程的基础。可以在类模块中编写代码建立新对象。这些新对象可以包含自定义的属性和方法。用类模块创建对象,这些对象可被应用程序内的过程调用。类模块包含代码又包含数据。类模块的数据,是相对于类实例(也就是,由类创建的每一个对象)而独立存在的。类实例中的数据只存在于对象的存活期,它随-15-对象的创建而创建,随对象的撤消而消失。在本次设计中,由于企业资产管理系统启动后,需要对用户进行判断。如果登录者是授权用户,将进入系统,否则将停止程序的执行。这个判断需要在系统运行的最初进行,而且数据随对象的创建而创建,随对象的撤消而消失,因此将代码放在类模块中。类模块的创建过程为:点击“工程一添加类模块”,在出现的“添加类模块”框中单击“打开”,此时生成一个类模块,同时出现该类模块的代码编辑框。用户管理类模块代码见附录八。另外,资产管理类也需要创建为类模块。代码见附录九。系统用户登录窗体的创建本程序考虑到系统的安全性,主要设置了用户登录论证。用户登录必须进行密码校验,保证信息的准确性。密码验证流程如图4-1所示。经过以上分析、建模过程,已经完成了数据库的后台工作,建立起了能够使系统顺利、正确运行的后台保障,完成了初期的工作目标,下面就完成人机交换的界面。一个友好完善的界面不仅能够方便系统的使用者,而且能够使各个模块间的划分更加明确,使系统结构更趋于完善。另外窗口界面要多用按钮和快捷键,少用菜单,窗口的各个控件布局要合理,美观。-16-
在进入系统之前,要进行身份确认,只有用户名和用户密码都相符的用户方可进入本系统。当用户要进入系统时,必须先输入用户名和密码,按“确定”按钮后,系统辨别用户身份,对合法用户根据用户的权限级别赋予相应的使用功能。用户登录窗体界面设计如图4-2:用户登录成功后,将显示标志窗体,如图4-3用户登录成功后,将显示标志窗体,如图4-3占八、、标企业资产管理系统主窗体的创建新添加一个窗体,在窗体上添加所需的控件,窗体和控件的属性设置见以下表。表4-1主窗体属性设置^空件属性属性取值frmMain(Form)名称frmMain-17-
Caption企业资产管理系统V1.0BorderStyle2-SizableHeight7950Left1215Top720Width10635表4-2主窗体中控件一SSTab属性设置^空件属性属性取值SSTab名称tabMainCaption资产管理[&M]资产查询[&Q]报表管理[&B]用户管理[&U]系统管理[&S]EnabledTrueHeight7365Style1-ssStyleProPertyPageTop720Width10635Tab01234TabHeight400TabIndex0Tabs5TabsPerRow5TabStopTrueWidth10455SSTab控件提供了一组选项卡,每个都充当一个容器,包含了其他的控件。控件中-18-每次只有一个选项卡是活动的,给用户提供了其所包含的控件,而其他选项卡都是隐藏的。要使用该控件,必须先确定打算如何在选项卡中放置其他控件。设置 Tabs和TabsPerRow属性来创建选项卡并将它们安排成多行显示。然后在设计时选择每个选项卡。对于每个选项卡,绘制每个你想显示的控件。如果必要,设置Caption,Picture,TabHeight和TabMaxWidth属性来安排选项卡的上部。在运行时,用户可以使用CTRL+TAB或使用选项卡上定义的快捷键浏览每个选项卡。也可以使用Style,ShowFocusRect,TabOrientation和WordWrap属性来自定义整个SSTab控件。表4-3主窗体中控件一MSFlexGrid属性设置^空件属性属性取值MSFlexGrid名称grdDeviceBorderStyle1—flexBorderSingleCols2GridLines1—flexGridFlatGridLinesFixed2—flexGridInsetLeft195Rows2ScrollBars3—flexScrollBarBoth其他控件属性设置在这里就不一一描述了,在窗体设计中可以查看。设置好控件及其属性后,创建好的窗体如图4-4-1一一4-4-5所示。-19-资产管理皿]|资产查询叵]|报表管理出]|用户管理[5|系统管理|所有资产列表[双击资产列表可以查看详细内容及其数据修改]:图4-4-1企业资产管理系统主窗体资产管理图4-4-2企业资产管理系统主窗体一一资产查询资产管理[M]资产查询叵]|报表管理[B]|用户管理[U]]系统管理[S]][请选择查询条件]显亭全部型号购置日期:注销日期借出借入新增资产出]删除资产资产注销资产报废开蛤查询部门:cLoQEept ▼设备名:分类cboQTypeNO▼-20-图4-4-3企业资产管理系统主窗体一一报表管理-21-在主窗体中,基本可以完成系统所需的所有功能。主窗体代码见附录三。主窗体完成后,下面将一一进行其功能的描述。在功能描述过程中,也会介绍其他窗体的创建。资产管理模块只有当用户以数据操作员的身份进入系统时,才能进入资产管理模块。如图4-5所-22-22-图4-5资产管理模块资产管理模块主要实现以下功能:资产的添加。资产的修改。资产的删除。资产的借出还入。资产的报废。资产的注销。(1)点击“新增资产”按钮,将出现“资产管理”窗体,如图4-6所示。~~资产编号:资产名称:状态:注销日期:保存并退出[S]图4-6资产管理界面
删除并退出①]放弃并退出[C]填好新增资产的信息后,点击“保存并退出"按钮即可完成。如果想放弃此次操作,点击“放弃并退出"按钮即可。“资产管理”窗体的代码见附录四。在“资产管理”窗体中,有一个“购买日期”项,此项可以由用户自行输入,也可以利用下拉框进行选择。如果是选择日期,将会出现一个日期窗体,如图资产名称:状态:注销日期:保存并退出[S]图4-6资产管理界面
删除并退出①]放弃并退出[C]填好新增资产的信息后,点击“保存并退出"按钮即可完成。如果想放弃此次操作,点击“放弃并退出"按钮即可。“资产管理”窗体的代码见附录四。在“资产管理”窗体中,有一个“购买日期”项,此项可以由用户自行输入,也可以利用下拉框进行选择。如果是选择日期,将会出现一个日期窗体,如图4-7所示。Jj五月20082728293012345678910111214151617181920212223242526272829303112345673今天:2008-5-13图4-7选择日期窗体在“选择日期窗体”中可以直接点击所需日期,即可完成选择并退出此窗体。“选择日期窗体”的代码见附录五。(2)选定要操作的资产后,点击“删除资产”按钮,将会出现对话框,如图4-8所示。-23-图4-8点击“确定”将删除当前选定的资产。(3)要进行资产的借出借入操作时,先选定要操作的资产,再点击“借出借入”按钮,将出现以下窗体,如图4-9所示。借出借入记录:序号操作使用部门操作大|操作时间 |1归还bMB 2口口8-5-14 2|借由口4-生产部h选择惜出单位图4-9资产借出借入记录界面 退出如果选定的是笔记本电胭,仕窗体标题栏上将显示“资产[笔记本电胭]借出借入记录”,如果此资产的状态是在库,那么在窗体下面的按钮上显示的文字是“借出资产”,而且此次操作进行的是资产的借出操作;如果此资产的状态是借出,那么在窗体下面的按钮上显示的文字是“归还资产”,而且此次进行的是资产归还操作。如图4-10资产铅笔的归还操作。-24-
图4-9和图4-10都是由“资产借出借入记录”窗体设计而成的,窗体设计界面如图4-11所示。窗体代码见附录六。(4)选定要操作的资产后,点击“资产报废”按钮,将会出现对话框,如图4-12所示。图4-12点击“确定”,进行资产报废操作。(5)选定要操作的资产后,点击“资产注销”按钮,将会出现对话框,如图4-13所示。图4-13点击“确定”,进行资产注销操作。(6)如果要修改资产信息,可直接在资产列表中双击资产,将出现如图4-14所示。-25-
报废日期: 注销日期:保存并退出叵]图4-14删%管理界面报废日期: 注销日期:保存并退出叵]图4-14删%管理界面放弃并退出[Q图4-14和图4-6由同一窗体设计而成。窗体代码见附录四。4.3.2资产查询模块当用户以数据操作员或普通用户的身份进入系统时,可以进入资产查询模块。如图4-15所示。可按资产所属部门、资产名、资产型号、分类、购买日期等进行查询。.3当用户以数据操作员或普通用户的身份进入系统时,可以进入报表管理模块。如图4-16所示。报表管理模块主要实现如下功能:资产登记信息打印。-26-
部门拥有资产统计信息打印。资产报废信息打印。资产折旧信息打印。资产管理皿I资产查询©「报装管通面;系统管理⑻I图4-16报表管理界面(1)资产登记报表的设计如图4-17所示。设计好的报表运行后如图4-18所示。-27-资产登记表(2)部门统资产编号001所属部门03报废日期资产名称笔记本电脑购买日期2008-4-15注销日期资产型号町购买饰格¥5..800资产类型01折旧成本¥5,500资产编号020所屈部门02报废日期资产名称扫描仪购买日期2008-1-8注销日期资产型号md购买饰格¥500资产类型01折旧成本¥420资产编号030所属部门01报废日期2008-5-6资产名称铅笔购买日期2005-4-17注销日期2008-5-14资产型号资产类型ch02图4一需警产登记表卜报表勺设计如图4里ML报废日期注销日期2008-5-15资产型号UH购买饰格¥120资产类型02折旧成本¥100共1页第1页♦贝斑头^ectionZJ部门统计表¥细节tSectionl)所示。部门统计表技术部资产数:1资产总额500经理室资产数:2资产总额5920市场部资产数:1资产总额3图4-20部门统计表-28-(3)报废统计报表的设计如图4-21所示。设计好的报表运行后如图4-22所示。图4-22报废统计表(4)折旧统计报表的设计如图4-23所示。图4-23折旧统计表的设计设计好的报表运行后如图4-24所示。-29-图4-24折旧统计表4.3.4系统管理模块用户以数据操作员、普通用户或系统管理员的身份进入系统时,都可以进入系统管理模块。如图4-25所示。系统管理模块主要实现如下功能:•用户密码的修改。•系统的退出。如果是以系统管理员身份进入本系统,还可以进行数据总清操作,此操作相当如作系统初始化。有旧能修,只有旧能修,只,才-30-
4.3.5用户管理模块用户只有以系统管理员的身份进入本系统时,才可以进入用户管理模块。如图4-26所示。用户管理模块主要实现如下功能:添加新用户。删除用户。用户信息的修改。4茴啪4-27所示保存并退出国1序专用户名用户级别 11d普通用户4茴啪4-27所示保存并退出国1序专用户名用户级别 11d普通用户2a普通用户3b数据操作员_£adiriin系统管理1 1删除并退出①]图4-27新增用户界面放弃并退出[口输入用户名及用户密码,选择用户级别,点击“保存并退出"按钮,即可完成。(2)如果要删除用户,先选定要操作的用户,然后点击“删除用户”按钮,出现提示对话框,点“确定”后即可删除该用户。(3)如果要修改用户信息,可直接双击用户,将打开以下界面,如图4-28。-31-放弃并退出[C]删除并退出[D]放弃并退出[C]删除并退出[D]在此界面中即可进行用户信息的修改。图4-27新增用户界面和图4-28用户修改界面共用一个窗体,它们都是由用户管5系统的编译和发行完成了企业资产管理信息系统的编程和调试工作,最后一步就是该系统的编译和发行。这涉及到工程项目属性的设置、可执行应用程序的生成。在系统的编译和发行之前,需要设置工程项目的属性。选择“工程一PrjDevice属性”菜单,进行属性设置,如图5-1所示。最后选择“文件一生成PrjDevice.exe”菜单,编译开始。编译完毕后,即生成了相应的可执行文件。编译通过后,生成可执行文件PrjDevice.exe。我们需要在发行前对生成的可执行文件进行测试。通过测试的可执行文件,就可以进行发布了。-32-
6小结通过这次对企业资产管理系统的制作,我学会了用VB和Access做一个简单的应用软件。在本设计中,详细地讲述了该企业资产管理系统的系统设计部分,包括功能模块设计、数据库结构设计等。系统设计为整个程序构建了骨架,各个功能模块实现各个细节部分。首先,在这个设计中,我学会了VB中很多控件的使用。本系统中使用了SSTab控件,使系统界面显得美观、简洁、大方。系统用ADO控件对数据库进行了连接,对控件内的属性都有了具体的了解,能够灵活的运用到程序中去。-33-其次,在数据库创建中,学会了如何在Access中创建简单的数据库,以及各表中数据的相关设置。虽然数据库创建非常简单,但用SQL语言对其进行访问、添加、修改,让我学到了更多相关知识。在这次设计中,我发现了自己在很多方面的不足,认为此系统的难点在以下几个方面,首先是系统中功能模块的连接问题,对具体的模块设置还存在很大程度上的不足;其次是在系统与数据库的连接上,一些控件中属性的修改和连接,还值得我好好去学习;最后是数据库建表中,表和表之间的关联性,以及表中关键字的唯一性还有待我进一步的研究。在编写开题报告、填写实习日记、编写毕业论文和设计本系统的过程中,得到了指导老师胡宗玉老师的指导和帮助,在此表示衷心的感谢。指导老师胡宗玉教授不论多么繁忙,只要我去问关于毕业设计的问题时,他都会放下手里的工作耐心的给我解答,直到我明白了为止。老师那热心、耐心和认真的工作态度使我很感动,我非常感激他。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高,这对于我以-34-后的工作和学习都是一种巨大的帮助除此之外,我还要致谢我的几位同学的得力相助,我希望我能向他们学习,发扬那种百折不挠、孜孜不倦的对知识求索精神,那种至高无上的敬业精神,。再次衷心地感谢帮助我的老师和同学们。参考文献[1]罗颂,陈林编著.VisualFoxpro企业办公系统开发实例导航.北京:人民邮电出版社,2004.4[2]刘韬,骆娟,何旭洪编著.VisualBasic数据库系统开发实例导航.北京:人民邮电出版社,2004.4[3]刘萌,周学明,郭安源编著.Visualbasic企业办公系统开发实例导航.北京:人民邮电出版社,2004.6[4]刘炳文编著.Visualbasic程序设计教程.北京:清华大学出版社,2004.7[5]刘炳文编著.精通Visualbasic6.0中文版.北京:电子工业出版社,2000.3-35-[6]陈艳峰,高文姬,邵蕴秋编著.VisualBasic数据库项目实例导航.北京:清华大学出版社,2004.[7]周峰编著.VisualBasic实例开发集锦.北京:电子工业出版社,2005[8](美)StevnJordan牛力等编著.VisualBasic6编程宝典.北京:电子工业出版社,2005[9]林永张,乐强编著.Visualbasic6.0用户编程手册.北京:人民邮电出版社,2003[10]伍俊良编著.Visualbasic程序设计与系统开发案例.北京:清华大学出版社,2001.9[11]李晓黎,张巍编著.Visualbasic+SQLServer数据库应用系统开发与实例.北京:人民邮电出版社,2003[12]田原,李素若,陈志宏,胡玉荣等编著.VB.NET程序设计.北京:清华大学出版社,2006.6[13]岂兴明,矫津毅,银华强等编著.Visualbasic.NET项目开发宝典.北京:电子工业出版社,2007[14](美)EvangelosPetroutsos编著.Visualbasic.NET从入门到精通.北京:电子工业出版社,2002.7RonaldJ.Norman.Object—orientedSystemsAnalysisandDesign.Prentice-HallInternationalInc,June1998:184-210PJeffreyD.UllmanandJenniferWidom.AFirstCourseinDatabaseSystems.Prentice-Hallinternational1nc,April1998AniteshBarva,AndrewB.WhinstonandFangYin.ValueandProductitvintheInternetEconomyComputer.Prentice-HallinternationalInc,May2000.AndrawS.Tanenbaum.ComputerNetworks.Prentic-HallInternationalInc,February1997:1-53PSangH.Son.SupportingTimelinessandSecurityinReal-TimeDatabaseSystems.ComputerScienceUniversityofVirginiaCharlottesvilleVA22903USA,April2000HarryM.Deitel,PaulJ.Deitel,TemR.Nieto.VisualBasic6.0.电子工业出版社,2005-36-附录附录一:登录窗体代码:OptionExplicitPublicLoginSucceededAsBooleanPrivateSubcmdCancel_Click()'设置全局变量为false'不提示失败的登录LoginSucceeded=FalseMe.HideEndSub-37-PrivateSubcmdOK_Click()DimstrPwdAsStringDimrsPwdAsADODB.RecordsetDimstrLoginAsStringstrLogin=Trim(txtUserName.Text)strPwd=Trim(txtPassword.Text)IfLen(strLogin)=0ThenMsgBox”用户名不能为空,请输入用户名”txtUserName.SetFocusExitSubEndIfIfLen(strPwd)=0ThenMsgBox”密码不能为空,请输入正确的密码”txtPassword.SetFocusExitSubEndIfSetrsPwd=gConn.Execute("SELECTpwdFROMtblUserWHERElogin』"&Replace(strLogin,m”")&"'")IfrsPwd.EOFThenMsgBox"用户名不正确,请重新输入!”ElseIfstrPwd=rsPwd("pwd").valueThen'将代码放在这里传递'成功到calling函数'设置全局变量时最容易的LoginSucceeded=TrueMe.HideElseMsgBox"无效的密码,请重试!",,"登录"txtPassword.SetFocusSendKeys"{Home}+{End}"EndIfrsPwd.CloseSetrsPwd=NothingEndSubPrivateSubForm_Load()EndSub附录二:标志窗体代码:PrivateSubCommand1_Click()-38-Me.HidefrmMain.ShowEndSub附录三:主窗体代码:OptionExplicit执行资产显示列表操作PrivateSubdoDevice(iidAsString)DimfrmAsNewfrmDeviceIfLen(iid)>0Thenfrm.loadDeviceiidEndIffrm.setStatusfrm.ShowvbModalIffrm.isUpdate=TrueThengrdDevice.Tag=""CallfillDeviceGrid(grdDevice)EndIfUnloadfrmSetfrm=NothingEndSub执行用户显示列表操作PrivateSubdoUser(uidAsString)DimfrmAsNewfrmUserIfLen(uid)>0Thenfrm.loadUseruidEndIffrm.setStatusfrm.ShowvbModalIffrm.isUpdate=TrueThengrdUser.Tag=""CallfillUserGridEndIfUnloadfrmSetfrm=NothingEndSubPrivateSubcmdAdd_Click()CalldoDevice("")EndSub-39-PrivateSubcmdAll_Click()grdQuery.Tag=""fillDeviceGridgrdQueryEndSubPrivateSubcmdDelete_Click()DimiidAsStringWithgrdDeviceIf.Row=0ThenMsgBox”请选择要删除的资产!”ElseIfMsgBox("你是否真的要删除当前选择的资产吗?删除后将不能恢复!”,vbOKCancel)=vbOKThen.Col=1iid=.TextDimdeviceAsNewclassDevicedevice.deleteDataiidgrdDevice.Tag=""CallfillDeviceGrid(grdDevice)EndIfEndIfEndWithEndSubPrivateSubcmdDisCard_Click()DimiidAsStringDimstrDateAsStringWithgrdDeviceIf.Row=0ThenMsgBox"请选择要报废的资产!”ElseIfMsgBox("你是否真的要报废当前选择的资产吗?报废后将不能恢复!”,vbOKCancel)=vbOKThen.Col=1iid=.TextstrDate=getDate("")IfLen(strDate)>0ThenDimdeviceAsNewclassDeviceIfdevice.Reject(iid,strDate)=TrueThen.Tag=""fillDeviceGridgrdDeviceEndIf-40-Setdevice=NothingEndIfEndIfEndIfEndWithEndSubPrivateSubcmdExit_Click()IfMsgBox("是否真的要退出系统吗?”,vbYesNo)=vbYesThenUnloadMeEndIfEndSubPrivateSubcmdGetDate_Click(IndexAsInteger)DimthedateAsStringthedate=getDate(txtDate(Index).Text)IfLen(thedate)>0ThentxtDate(Index).Text=thedateEndSubPrivateSubcmdLend_Click()DimiidAsStringWithgrdDeviceIf.Row=0ThenMsgBox”请选择要操作的资产!”Else.Col=1iid=.TextDimfrmAsNewfrmLendDimresultAsBooleanresult=frm.loadLendData(iid)Ifresult=FalseThenUnloadfrmExitSubEndIffrm.ShowvbModalIffrm.isUpdate=TrueThengrdDevice.Tag=""fillDeviceGridgrdDeviceEndIfUnloadfrmSetfrm=NothingEndIfEndWithEndSub-41-PrivateSubcmdPass_Click()DimoldPassAsStringDimnewPass1AsStringDimnewPass2AsStringoldPass=InputBox("请输入旧密码:",“密码修改”)IfLen(oldPass)>0ThenIfoldPass<>gUser.PasswordThenMsgBox”输入密码不正确!”ExitSubEndIfnewPass1=InputBox("请输入新密码:","密码修改")IfLen(newPass1)=0ThenMsgBox”密码修改不成功!”ExitSubElsenewPass2=InputBox("请再次输入新密码确认:","密码修改")IfLen(newPass2)=0ThenMsgBox”密码修改不成功!”ExitSubElseIfnewPass1=newPass2ThenIfgUser.resetPassword(newPass1)=FalseThenMsgBox”数据操作错误,密码修改不成功!”ElseMsgBox”密码成功修改!请保存好你的密码!”EndIfExitSubElseMsgBox”两次输入的新密码不一样,修改失败!”ExitSubEndIfEndIfElseMsgBox”密码修改不成功!”ExitSubEndIfEndSubPrivateSubcmdQuery_Click()DimDeptNoAsStringDimDeviceNameAsStringDimDeviceModelAsStringDimTypeNoAsStringDimPricefromAsString-42-DimPricetoAsStringDimPurchaseDatefromAsStringDimPurchaseDatetoAsStringDimRejectDatefromAsStringDimRejectDatetoAsStringDimstrSQLAsStringIfcboQDept.ListIndex>0ThenDeptNo=getDeptNo()strSQL="a.deptno='"&DeptNo&m"EndIfIfcboQTypeNO.ListIndex>0ThenTypeNo=getTypeNO()IfLen(strSQL)>0ThenstrSQL="ANDa.typeno='"&TypeNo&m"ElsestrSQL="a.typeno='"&TypeNo&m"EndIfEndIfDeviceName=Replace(Trim(txtQDeviceName.Text),"'","''")DeviceModel=Replace(Trim(txtQModel.Text),"'","''")Pricefrom=Trim(txtQP1.Text)Priceto=Trim(txtQP2.Text)PurchaseDatefrom=Trim(txtDate(0).Text)PurchaseDateto=Trim(txtDate(1).Text)RejectDatefrom=Trim(txtDate(2).Text)RejectDateto=Trim(txtDate(3).Text)IfLen(Pricefrom)>0ThenIfNotIsNumeric(Pricefrom)ThenMsgBox”购买价格输入不正确,请重新输入。”txtQP1.SetFocusExitSubElseIfLen(strSQL)>0ThenstrSQL=strSQL&"ANDProductPrice>="&PricefromElsestrSQL="ProductPrice>="&PricefromEndIfEndIfEndIfIfLen(Priceto)>0ThenIfNotIsNumeric(Priceto)ThenMsgBox”购买价格输入不正确,请重新输入。”txtQP2.SetFocusExitSub-43-ElseIfLen(strSQL)>0ThenstrSQL=strSQL&"ANDProductPrice<="&PricetoElsestrSQL="ProductPrice<="&PricetoEndIfEndIfEndIfIfLen(PurchaseDatefrom)>0ThenIfNotIsDate(PurchaseDatefrom)ThenMsgBox”购买日期输入不正确,请重新输入。"txtDate(0).SetFocusExitSubElseIfLen(strSQL)>0ThenstrSQL=strSQL&"ANDPurchaseDate>=#"&PurchaseDatefrom&"#ElsestrSQL="ProductPrice>=#"&PurchaseDatefrom&"#"EndIfEndIfEndIfIfLen(PurchaseDateto)>0ThenIfNotIsDate(PurchaseDateto)ThenMsgBox"购买日期输入不正确,请重新输入。"txtDate(1).SetFocusExitSubElseIfLen(strSQL)>0ThenstrSQL=strSQL&"ANDPurchaseDate<=#"&PurchaseDateto&"#"ElsestrSQL="ProductPrice<二#"&PurchaseDateto&"#"EndIfEndIfEndIfIfLen(RejectDatefrom)>0ThenIfNotIsDate(RejectDatefrom)ThenMsgBox"注销日期输入不正确,请重新输入。"txtDate(2).SetFocusExitSubElseIfLen(strSQL)>0ThenstrSQL=strSQL&"ANDRejectDate>=#"&RejectDatefrom&"#"ElsestrSQL="RejectDate>=#"&RejectDatefrom&"#"-44-EndIfEndIfEndIfIfLen(RejectDateto)>0ThenIfNotIsDate(RejectDateto)ThenMsgBox”注销日期输入不正确,请重新输入。”txtDate(3).SetFocusExitSubElseIfLen(strSQL)>0ThenstrSQL=strSQL&"ANDRejectDate<二#"&RejectDateto&"#"ElsestrSQL="RejectDate<二#"&RejectDateto&"#"EndIfEndIfEndIfIfLen(DeviceName)>0ThenIfLen(strSQL)>0ThenstrSQL=strSQL&"ANDDeviceNameLIKE'%"&DeviceName&"%'"ElsestrSQL="DeviceNameLIKE'%"&DeviceName&"%'"EndIfEndIfIfLen(DeviceModel)>0ThenIfLen(strSQL)>0ThenstrSQL=strSQL&"ANDDeviceModelLIKE'%"&DeviceModel&"%'"ElsestrSQL="DeviceModelLIKE'%"&DeviceModel&"%'"EndIfEndIfIfLen(strSQL)>0ThenstrSQL="SELECTa.*,b.department,c.TypeNameFROM(tblDeviceASAINNERJOINtblDepartmentASBONa.DeptNO=b.DeptNO)INNERJOINtblTypeInfoCONa.TypeNO=c.TypeNOWHERE"&strSQL&"ORDERBYA.IIDDESC"ElsestrSQL="SELECTa.*,b.department,c.TypeNameFROM(tblDeviceASAINNERJOINtblDepartmentASBONa.DeptNO=b.DeptNO)INNERJOINtblTypeInfoCONa.TypeNO=c.TypeNOORDERBYA.IIDDESC"EndIfgrdQuery.Tag=""fillDeviceGridgrdQuery,strSQLEndSub-45-PrivateSubcmdReject_Click()DimiidAsStringDimstrDateAsStringWithgrdDeviceIf.Row=0ThenMsgBox”请选择要注销的资产!”ElseIfMsgBox("你是否真的要注销当前选择的资产吗?注销后将不能恢复匕vbOKCancel)=vbOKThen.Col=1iid=.TextstrDate=getDate("")IfLen(strDate)>0ThenDimdeviceAsNewclassDeviceIfdevice.DisCard(iid,strDate)=TrueThen.Tag二心fillDeviceGridgrdDeviceEndIfSetdevice=NothingEndIfEndIfEndIfEndWithEndSubPrivateSubcmdReport1_Click()DimreportAsNewdrDeviceDimrsAsADODB.RecordsetSetrs=gConn.Execute("SELECT*FROMtbldevice")WithreportSet.DataSource=rs.DataMember="".ShowvbModalEndWithSetreport=NothingEndSubPrivateSubcmdReport2_Click()DimreportAsNewdrDepartmentDimrsAsADODB.RecordsetSetrs=gConn.Execute("SELECTdepartment,count(*)ascountofDevice,sum(productprice)assumofDeviceFROMtbldeviceainnerjointbldepartmentbona.deptno=b.deptnogroupbyb.department")-46-WithreportSet.DataSource=rs.DataMember="".ShowvbModalEndWithSetreport=NothingEndSubPrivateSubcmdReport3_Click()DimreportAsNewdrRejectDimrsAsADODB.RecordsetSetrs=gConn.Execute("SELECTdevicename,department,rejectdateFROMtbldeviceainnerjointbldepartmentbona.deptno=b.deptnowhererejectdateisnotnull")WithreportSet.DataSource=rs.DataMember="".ShowvbModalEndWithSetreport=NothingEndSubPrivateSubcmdReport4_Click()DimreportAsNewdrCostDimrsAsADODB.RecordsetSetrs=gConn.Execute("SELECTdevicename,department,productprice,productcostFRO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厂家生产合同范本
- 蒸汽购销合同范本
- 二零二五年度个人间借款及法律援助协议
- 二零二五年度外资企业股权变更合同范本
- 2025年度金融借款合同纠纷答辩状制作指南
- 酒店与客户2025年度会议场地租赁及订房合同
- 2025年度智慧城市建设全新员工入职与数据安全合同
- 二零二五年度医疗设备研发劳务派遣员工服务合同
- 二零二五年度个人铲车租赁及租赁费用调整合同
- 2025年度智能制造装备用工承包合同
- GB/T 8162-2018结构用无缝钢管
- 《傲慢与偏见》读书汇报
- 上海专科层次自主招生考试习题集④(含答案)
- 房屋信息查询情况表((2022年-2023年))
- (演唱)在葡萄架下教学设计
- 室上性心动过速的鉴别诊断课件
- 蛋白质纤维-纤维化学与物理课件
- 妇科疾病 阴道炎 (妇产科学课件)
- 乐理讲座:音程与和弦课件
- 马工程西方经济学(第二版)教学课件-5
- 马工程西方经济学(第二版)教学课件-7
评论
0/150
提交评论