基于VB+ACC图书管理系统毕业论文.doc
摘要图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面,一方面要求建立起数据一致性和完整性强、数据安全性好的库;另一方面则要求应用程序功能完备,易使用等特点。本文介绍了数据库管理系统的基本设计方法,详细阐述了整个应用系统的设计思路,并对各部分设计周期进行了详尽的分析,最终达成了一个完整的设计方案;在文章的最后,还根据数据库系统的调试结果,提出了可以进一步改进的部分,以便在投入实际应用后系统可以更加稳定可靠的工作。本文的数据库系统是一个图书管理系统,面向中小型书店、个体书店进行全面的人员、物流管理,旨在实现书店管理信息化。本系统采用会员制管理,将人员分为经理、仓库管理员、售书员、会员、游客等,分别拥有不同的权限,各司其职,以便提高工作效率。系统功能包括:供应商管理、进书管理、图书资料管理、售书管理、会员管理、库存统计、售书统计、退货统计、基本统计分析等。 用户权限:一、经理权限:主要包括各种统计分析、员工管理、制定会员政策等等。二、仓库管理员权限:包含进书管理、供应商管理、库存管理、退货管理等。三、售书员权限:包含售书管理、会员管理等。因此本人结合设计的要求,对Access数据库、VB应用程序设计进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。本文所设计的图书管理系统可以满足经理、仓库管理员、售书员、会员、游客的需要。本文首先分析了图书管理信息系统的应用需求,按照数据库设计理论一步一步地给出了系统需求说明书、局部ER图、全局ER图、系统关系模式,子模式,建立了数据库.然后进行了具体的程序设计,实现了数据库表的浏览,记录的添加、删除和修改,报表的生成,实现了多数据库表的连接操作,实现了条件查询和模糊查询,并灵活实现了对不可更新查询结果集的更新操作,实现了主从表操作,实现了密码维护功能,设计充分利用Visual Basic的强大力量,提高了编程效率和可靠性。目录摘要第一章、数据库系统设计1.1数据库设计概述1.2数据库设计周期第二章、图书管理系统具体设计2.1 图书管理系统总体规划2.2需求分析2.3概念设计2.4数据库的实现第三章、图书管理系统应用程序设计(经理模块)3.1员工管理3.2个人资料3.3会员政策3.4统计分析3.5图书检索3.6书店情况3.7客户反馈3.8会员、游客模块的基本介绍第四章、结束语附录参考文献关键字图书管理系统,Visual Basic,Access数据库 第一章 数据库系统设计1.1数据库设计概述计算机信息系统以数据库为核心,在数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新、加工、统计和传播等操作。对于数据库应用开发人员来说,为使现实世界的信息流计算机话,并对计算机话的信息进行各种操作,就是如何利用数据库管理系统、系统软件和相关硬件系统,将用户的要求转化成有效的数据结构,并使数据库结构易于实现用户新的要求的过程。确切的说,数据库设计是指对于一个给定的应用环境,提供一个确定最优数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立起既能反映现实世界信息和信息联系,满足用户数据要求和加工要求,有能被某个数据库管理系统所接受,同时能实现系统目标,并有效存取数据的数据库。1.2数据库设计周期根据软件工程的思想,数据库设计的周期可以划分为六个阶段:(1)规划阶段:确定开发的总目标,给出计划开发的软件系统的功能、性能、可靠性以及接等方面的设想。 (2)需求分析阶段:认真细致地了解用户对数据的加工要求,确定系统的功能与边界。本阶段的最终结果,提供一个可作为设计基础的系统说明书,包括对软硬件环境的要求和一整套完善的数据流程图。(3)设计阶段:把需求分析阶段所确定的功能细化,主要工作是概念设计阶段、逻辑设计阶段、物理设计阶段,然后,对每个阶段内部设计详细的流程。 (4)程序编制阶段:以一种或几种特定的程序设计语言表达上一阶段确定的各模块控制流程。程序编制时应遵循结构化程序设计方法。(5)调试阶段:对已编好的程序进行单元调试(分调),整体调试(联调)和系统测试(验收)。(6)运行和维护阶段:这是整个设计周期最长的阶段,其工作重点是收集和记录系统实际运行的数据。在运行中,必须保持数据库的完整性,必须有效的处理数据故障和进行数据库恢复。同时解决开发过程的遗留问题,改正错误进行功能完善。第二章 图书管理系统具体设计 2.1图书管理系统总体规划对于数据库系统,规划工作是十分必要的。规划的好坏将直接影响到整个图书管理系统的成功与否,数据库设计中的规划阶段的主要任务是建立数据库的必要性及可行性分析,确定数据库系统在整个图书管理系统的地位。根据图书管理数据库对技术人员和管理人员的水平、数据采集和管理活动以及计算机素质的要求;数据库技术对计算机系统的软硬件的要求。决定把数据库管理系统设计成为一个综合的数据库。此数据库包括所有操作人员的所有活动功能。所以,用一个综合的数据库就能满足图书管理要求,而且实现容易。本图书管理系统采用会员制管理,将人员分为经理、仓库管理员、售书员、会员、游客等,分别拥有不同的权限,各司其职,以便提高工作效率。系统功能包括:供应商管理、进书管理、图书资料管理、售书管理、会员管理、库存统计、售书统计、退货统计、基本统计分析等。通过这个系统经理可以对书店进行各种统计分析、员工管理、制定会员政策等等;仓库管理员可以进行进书管理、供应商管理、库存管理、退货管理等;售书员可以进行售书管理、会员管理等。而会员和普通消费者可以进行图书的浏览、注册会员、会员资料的修改等。2.2 需求分析设计一个性能良好的数据库系统,明确应用环境对系统的要求是首要的和最基本的。特别是数据应用非常广泛,非常复杂,要是事先没有对信息进行充分和细致的分析,这种设计就很难取得成功。通过需求分析阶段对图书管理系统的整个应用情况作全面的、详细的调查,确定图书管理的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求,并把这些写成用户和数据库设计者都能够接受的文档。事实上,需求分析是数据库开发中最难的任务之一。因为,第一,系统本身是可变的,用户的需求必须不断调整,使之与这种变化相适应。第二,用户很难说清某部分工作的功能处理过程。所以,设计人员必须认识到:在整个需求分析以及系统设计过程中,用户参与的重要性,通过各种方法展开调查分析。本图书管理系统满足五方面的需求,分别是经理管理、仓库管理员管理、售书员管理、会员查询、游客注册查询。经理管理对书店进行各种统计分析、员工管理、制定会员政策等等;仓库管理员管理进行进书管理、供应商管理、库存管理、退货管理等;售书员管理进行售书管理、会员管理等;会员管理进行图书的浏览、资料修改等;游客进行图书的浏览、注册会员等。2. 概念设计在概念设计阶段中,设计人员从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。然后再把概念模式转换成逻辑模 式。将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定DBMS的限制。利用ER方法进行数据库的概念设计,可分成三步进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局模式,最后对全局ER模式进 行优化,得到最终的模式,即概念模式。(1)设计局部ER模式实体和属性的定义:图书(图书编号,图书分类号,图书名称,丛书,作者,出版社,版次,ISBN,定价,库存量,内容介绍,关键词,出版日期,入库日期)图书分类(图书分类号,图书分类,所属父类编号)供应商(供应商编号,供应商,地址,网址,联系人,电话,传真,电子邮件)会员(会员卡号,会员等级,姓名,性别,地址,单位,电话,电子邮件,人生格言,注册日期)会员政策(会员级别,会员标准,打折,赠送礼品,备注)员工(员工帐号,姓名,性别,地址,电话,手机,电子邮件,人生格言,创建日期)身份(用户ID,用户密码,用户身份)ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意 两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之 间是否存在联系,多个实体类型之间是否存在联系,等等。解释如下:u 一个用户只能具有一种身份,而一种身份可被多个借阅者所具有;u 一本图书只能属于一种图书类别(类别),而一种图书类别可以包含多本图书。(2)设计全局ER模式所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。1)确定公共实体类型:为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。2)局部ER模式的合并:合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。3)消除冲突:冲突分为三类:属性冲突、结构冲突、命名冲突。设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。(3)全局ER模式的优化:在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。2.4 数据库的实现我选用Microsoft Office Access 2003来进行数据库的逻辑设计。首先创建十三个基本数据库表如表2-12-13所示,然后根据全局ER 图,建立各个表之间的联系,如表2-14所示。字段名称数据类型可否为空说明用户ID文本NULL主键用户密码文本NOT NULL用户身份文本NOT NULL表2-1 用户身份表的结构(Admin)字段名称数据类型可否为空说明图书编号文本NOT NULL主键图书分类号文本NOT NULL外键书名文本NOT NULL丛书文本NULL作者文本NOT NULL出版社文本NOT NULL版次文本NULLISBN文本NOT NULL定价货币NOT NULL库存量数字NOT NULL内容简介备注NOT NULL关键词文本NOT NULL出版日期文本NULL入库时间日期/时间NOT NULL表2-2 图书信息表的结构(Book)字段名称数据类型可否为空说明供应商编号文本NOT NULL主键供应商文本NOT NULL地址文本NOT NULL网址文本NOT NULL联系人文本NOT NULL电话文本NOT NULL传真文本NOT NULL电子邮件文本NOT NULL单位简介备注NOT NULL表2-3 供应商信息表的结构(供应商)字段名称数据类型可否为空说明会员卡号文本NOT NULL主键会员等级文本NOT NULL外键姓名文本NOT NULL性别文本NOT NULL地址文本NOT NULL单位文本NOT NULL电话文本NOT NULL电子邮件文本NOT NULL人生格言备注NOT NULL注册日期日期/时间NOT NULL表2-4 会员信息表的结构(会员表)字段名称数据类型可否为空说明会员级别文本NOT NULL主键会员标准数字NOT NULL打折文本NOT NULL赠送礼品文本NOT NULL备注备注NOT NULL表2-5 会员政策信息表的结构(会员政策)字段名称数据类型可否为空说明ID自动编号NOT NULL主键供应商编号文本NOT NULL外键图书编号文本NOT NULL外键数量数字NOT NULL单价货币NOT NULL折扣数字NOT NULL金额货币NOT NULL进书日期日期/时间NOT NULL备注备注NOT NULL表2-6 进书记录信息表的结构(进书记录)字段名称数据类型可否为空说明ID自动编号NOT NULL主键姓名文本NOT NULL身份文本NOT NULL性别文本NOT NULL单位文本NOT NULL地址文本NOT NULL电子邮件文本NOT NULL反馈信息备注NOT NULL反馈日期日期/时间NOT NULL表2-7 客户反馈信息表的结构(客户反馈)字段名称数据类型可否为空说明ID自动编号NOT NULL主键图书编号文本NULL外键数量数字NOT NULL会员卡号文本NOT NULL外键实际打折数字NOT NULL实收金额货币NOT NULL日期文本NOT NULL备注备注NOT NULL表2-8 售书记录信息表的结构(售书记录)字段名称数据类型可否为空说明书店名称文本NOT NULL主键地址文本NOT NULL网址文本NOT NULL联系人文本NOT NULL电话文本NOT NULL手机文本NOT NULL电子邮件文本NOT NULL书店简介备注NOT NULL备注备注NOT NULL表2-9 书店介绍信息表的结构(书店介绍)字段名称数据类型可否为空说明图书分类号文本NOT NULL主键图书分类文本NOT NULL所属父类编号文本NULL表2-10 图书分类信息表的结构(图书分类)字段名称数据类型可否为空说明图书编号文本NOT NULL主键进价货币NOT NULL进书日期文本NOT NULL表2-11 图书进价信息表的结构(图书进价表)字段名称数据类型可否为空说明ID自动编号NOT NULL主键供应商编号文本NOT NULL外键图书编号文本NOT NULL外键进价货币NOT NULL退货数量数字NOT NULL金额货币NOT NULL退货原因备注NOT NULL退货日期日期/时间NOT NULL备注备注NOT NULL表2-12 退货记录信息表的结构(退货记录)字段名称数据类型可否为空说明员工帐号文本NOT NULL主键姓名文本NOT NULL性别文本NOT NULL地址文本NOT NULL电话文本NOT NULL手机文本NOT NULL电子邮件文本NOT NULL人生格言备注NOT NULL创建日期日期/时间NOT NULL表2-13 员工信息表的结构(员工表)关联名称关联数据表关联主键读者查询图书分类表BOOK表图书分类号反馈信息客户反馈表ID基本统计图书分类表BOOK表售书记录图书进价表图书分类号图书编号进书查询供应商表进书记录表BOOK表供应商编号图书编号库存统计BOOK表图书分类表图书分类号售书查询会员表售书记录表BOOK表会员卡号图书编号售书统计售书记录表BOOK表图书分类表图书编号图书分类号退货查询供应商表退货记录表BOOK表供应商编号图书编号退货统计供应商表退货记录表BOOK表供应商编号图书编号员工信息ADMIN表员工表用户ID表2-14 数据库表间的联系表第三章、图书管理系统应用程序设计(经理模块)本图书管理系统根据用户权限将人员大体分为五种,分别是经理、仓库管理员、售书员、会员、游客。其中经理、仓库管理员、售书员模块是图书管理系统的后台操作模块。作为整个系统的设计者来说,首先面对的客户就是书店的管理者,购书者的需求实际上只是书店的一部分,但是先决的需求是管理者对图书管理系统管理的需求。所以只有在做好后台管理系统后,才可以在这个基础上来做前台系统。我们作为管理员来对整个图书管理系统进行后台管理,即要对系统的数据库进行操作如:供应商管理、进书管理、图书资料管理、售书管理、会员管理、库存统计、售书统计、退货统计、基本统计分析等。会员、游客模块是图书管理系统的前台操作模块。所进行的操作如:图书的浏览、资料修改、注册会员等。根据用户的权限又将其细化,如:经理的权限:主要包括各种统计分析、员工管理、制定会员政策等;仓库管理员的权限:主要包括进书管理、供应商管理、库存管理、退货管理等;售书员的权限:主要包括售书管理、会员管理等;会员管理进行图书的浏览、资料修改等;游客进行图书的浏览、注册会员等。本人是负责整个系统的分析与设计以及经理模块的编写,所以接下来我将对经理模块做详细的介绍。3.1员工管理模块功能:这个模块主要实现的有五个功能:创建员工帐号、修改员工资料、修改员工密码、查看员工资料及维护。模块运行过程:点击“员工管理”菜单,显示出六个子功能项:创建员工帐号、修改员工资料、修改员工密码、员工信息、员工帐号管理。进入“创建员工帐号”,输入要添加的资料,点击“确定”后,计算机将输入的信息写入数据库Admin和会员信息表中。进入“修改员工资料”,输入要修改的员工帐号,按Tab键,如果员工帐号存在,则显示其员工信息,点击“修改”后,计算机将输入的信息写入数据库会员信息表中。如不存在,则会提示“该员工帐号不存在!”。进入“修改员工密码”,输入要修改的员工帐号,按Tab键,如果员工帐号存在,则显示其员工的旧密码信息,输入新的密码后,点击“修改”后,计算机将输入的信息写入数据库Admin表中。如不存在,则会提示“该员工帐号不存在!”。进入“员工信息”,可以查看所有员工的资料。进入“员工帐号管理”,可逐条显示员工信息,并且可以实现上述创建员工帐号、修改员工资料的功能,以及删除员工资料的功能。3.2个人资料模块功能:这个模块主要实现的有二个功能:显示和修改当前用户资料、修改当前用户密码。模块运行过程:点击“个人资料”菜单,显示出二个子功能项:基本资料、修改密码。进入“基本资料”,输入要修改的资料信息,点击“修改”后,计算机将输入的信息写入数据库会员信息表中。进入“修改密码”,输入当前用户的旧密码以及要修改的新密码,点击“修改”后,如果员工旧密码正确,计算机将输入的新密码信息写入数据库Admin中。如旧密码不正确,则会提示“用户密码验证错误!你无权修改密码!”。3.3会员政策模块功能:这个模块主要实现的有二个功能:制定会员优惠政策和等级标准,查看会员资料及维护。模块运行过程:点击“会员政策”菜单,显示出四个子功能项:制定会员优惠政策、制定会员等级标准、会员信息、会员管理。进入“制定会员优惠政策”,可以对会员等级制定优惠政策,如“折扣”、“赠送礼品”等,并可修改会员等级标准,计算机将输入的信息写入数据库会员政策表中。进入“制定会员等级标准”,同“制定会员优惠政策”相同。进入“会员信息”,可以查看所有会员及游客的资料。进入“会员管理”,可逐条显示会员及游客的信息,并且可以进行创建新会员、修改会员及游客资料,以及删除会员及游客资料的功能。3.4统计分析模块功能:这个模块主要实现的有五个功能:基本统计分析、详细统计分析、库存统计、售书统计、退货统计。模块运行过程:点击“统计分析”菜单,显示出五个子功能项:基本统计分析、详细统计分析、库存统计、售书统计、退货统计。进入“基本统计分析”,可以查看所有的售书记录。进入“详细统计分析”,输入要查询的具体日期,点击“统计”后,计算机将显示该日售书的售书记录,并显示该日的交易总数量、销售总金额以及盈利总额。如查询的日期没有售书记录或日期输入有误,则会提示“该时段没有销售记录,或日期填写错误!”。进入“库存统计”,可以查看现在的库存图书的信息资料。进入“售书统计”,可以查看所有所售图书的总数量和总实收金额的信息资料。进入“基本统计”,可以查看所有所退图书的总数量和总退货金额的信息资料。3.5图书检索模块功能:这个模块主要实现的有二个功能:按具体内容检索图书、浏览全部图书。模块运行过程:点击“图书检索”菜单,显示出六个子功能项:按图书编号检索、按书名检索、按分类检索、按作者检索、按关键词检索、浏览全部。进入“按图书编号检索”,输入要查询的图书编号,点击“确定”后,计算机将显示该图书的信息资料。如输入的图书编号不存在,则会提示“没有找到你要的相关记录!”。进入“按书名检索”,功能同上。进入“按分类检索”,功能同上。进入“按作者检索”,功能同上。进入“按关键词检索”,功能同上。进入“浏览全部”,可以查看到所有图书的信息资料。3.6书店情况模块功能:这个模块主要实现的有三个功能:制定书店的基本情况、查看进书记录、查看售书记录。模块运行过程:点击“书店情况”菜单,显示出四个子功能项:制定书店的简介、制定书店的联系方式、进书记录、售书记录。进入“制定书店的简介”,可以对书店的简介,以及书店的联系方式等书店基本情况进行修改,计算机将修改后的信息写入数据库书店介绍表中。进入“制定书店的联系方式”,功能同上。进入“进书记录”,显示书店所有的进书记录。进入“售书记录”,显示书店所有的售书记录。3.7客户反馈模块功能:这个模块主要实现的有三个功能:读者意见或建议、读者投诉、反馈信息的管理。模块运行过程:点击“客户反馈”菜单,显示出三个子功能项:读者意见或建议、读者投诉、反馈信息的管理。进入“读者意见或建议”,输入读者的基本信息和反馈的意见或建议,点击“确定”后,计算机将输入的信息写入数据库客户反馈表中。进入“读者投诉”,输入读者的基本信息和投诉意见,点击“确定”后,计算机将输入的信息写入数据库客户反馈表中。进入“反馈信息的管理”,可逐条显示客户的反馈信息,并且可以进行添加、修改以及删除反馈资料的功能。3.8会员、游客模块的基本介绍会员及游客模块大体相同,实现的功能有图书检索、客户反馈、查看书店介绍、查看会员政策,两者唯一的区别在于会员有修改会员资料及密码的功能;而游客有会员注册的功能。其实现过程与经理模块中相应的功能相同,这里就不在一一介绍。第四章、结束语通过炽天使图书管理系统的开发,我对软件开发过程有了更清晰的了解,首先是问题定义、需求分析,然后是功能设计、详细设计等,并对软件测试的方法、手段有了较深的理解,同时对书店的流程有了一个系统的认识。在开发过程还认真学习了与系统相关的知识,极大地拓宽了我的知识面,我感到收获不小。在系统的开发初期,必须要熟悉企业的管理流程,初步了解ERP的相关知识,这样才能进入到设计的过程中去。从开始熟悉这些知识到对整体设计有了解,再从概要设计、详细设计到开始编码,以及最后的测试,整个过程感觉很充实,虽然遇到了不少困难,但每当通过自己查资料、或是向指导老师请教以及和同学请教,而设计出解决方案并成功实现时,那种成就感和满足感足以鼓励自己加班加点的辛苦。在编制过程中,我首先考虑到了界面的友好性,并在界面设计时不采用烦琐的细节,使界面简单、清晰,便于操作。尽管在设计的过程中,我们时刻考虑到了操作界面的友好性,但实际情况是远远不能满足客户的要求,考虑到软件使用群体将是一群几乎没有任何电脑操作经验的人,我们还在考虑着怎样可以进一步的完善和改进。本次编制中的不足之处是因为是首次尝试使用Visual Basic编制可应用的数据管理系统,在实际应用中有些功能还不是很到位。我将不断提高自己,争取今后在编制程序时,能编写出有个性且应用性较强的数据库管理系统。经过这段时间的设计实习,确实学到了不少的东西,同时也深感自己知识的欠缺。在以后的学习工作中,我一定要继续坚持不懈地学习新兴的专业知识及相关的非专业知识,只有这样才能紧跟时代的潮流。用户登录判定身份经理仓库管理员售书员会员、游客员工管理个人资料会员政策统计分析图书检索书店情况客户反馈退出、注销YN附录图1 系统流程图用户登录界面图和窗体源代码(FrmLogoIn.frm):Private Sub CmdCancel_Click()Unload MeEndEnd SubPrivate Sub CmdHelp_Click()Load FrmHelpFrmHelp.Show vbModalEnd SubPrivate Sub CmdLogoIn_Click()Dim userName As StringDim passwd As StringuserName = TxtUserName.Textpasswd = TxtPasswd.TextTxtUserName.Enabled = FalseTxtPasswd.Enabled = FalseCmdLogoIn.Enabled = FalseCmdCancel.Enabled = FalseIf userName = "" Then MsgBox "请输入你的帐号!", vbOKOnly + vbExclamation, "系统登陆" TxtUserName.Enabled = True TxtPasswd.Enabled = True CmdLogoIn.Enabled = True CmdCancel.Enabled = True TxtUserName.SetFocus Exit SubElseIf passwd = "" Then MsgBox "请输入你的密码!", vbOKOnly + vbExclamation, "系统登陆" TxtUserName.Enabled = True TxtPasswd.Enabled = True CmdLogoIn.Enabled = True CmdCancel.Enabled = True TxtPasswd.SetFocus Exit SubElse Call CheckUser(userName, passwd)End IfIf Not logOK Then TxtUserName.Enabled = True TxtPasswd.Enabled = True CmdLogoIn.Enabled = True CmdCancel.Enabled = True TxtPasswd.SetFocus TxtPasswd.SelStart = 0 TxtPasswd.SelLength = Len(TxtPasswd.Text)End IfEnd SubPrivate Sub TxtPasswd_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = 13 Then CmdLogoIn.SetFocusEnd IfEnd SubPrivate Sub TxtUserName_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = 13 Then TxtPasswd.SetFocusEnd IfEnd Sub系统登录菜单窗体源代码(FrmMain.frm):Private Sub FMH_webHlp_Click()Dim pid As Longpid = Shell("Explorer.exe ", vbNormalFocus)If pid = 0 Then MsgBox "无法打开浏览器!", vbOKOnly + vbExclamation, "打开程序出错"End IfEnd SubPrivate Sub frmMainH_about_Click()Load frmAboutfrmAbout.Show vbModalEnd SubPrivate Sub FrmMainH_hlp_Click()Load FrmHelpFrmHelp.Show vbModalEnd SubPrivate Sub FrmMainS_exit_Click()Call Sys_exitEnd SubPrivate Sub frmMainS_logOff_Click()Call LogOffEnd SubPrivate Sub FrmMainS_return_Click()If UserShenFen = "经理" Then Load FrmAdminMain FrmAdminMain.ShowElseIf UserShenFen = "仓库管理员" Then Load FrmCangGuanMain FrmCangGuanMain.ShowElseIf UserShenFen = "售书员" Then Load FrmBookSellerMain FrmBookSellerMain.ShowElseIf UserShenFen = "会员" Then Load FrmMemberMain FrmMemberMain.ShowElse Load FrmGuestMain FrmGuestMain.ShowEnd IfEnd SubPrivate Sub FrmMnuS_jsq_Click()Dim pid As Longpid = Shell("Calc.exe", vbNormalFocus)If pid = 0 Then MsgBox "无法打开计算器!", vbOKOnly + vbExclamation, "打开程序出错"End IfEnd SubPrivate Sub MDIForm_Load()'设置用户环境If UserShenFen = "经理" Then Load FrmAdminMain FrmAdminMain.ShowElseIf UserShenFen = "仓库管理员" Then Load FrmCangGuanMain FrmCangGuanMain.ShowElseIf UserShenFen = "售书员" Then Load FrmBookSellerMain FrmBookSellerMain.ShowElseIf UserShenFen = "会员" Then Load FrmMemberMain FrmMemberMain.ShowElse Load FrmGuestMain FrmGuestMain.ShowEnd IfEnd SubPrivate Sub MDIForm_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = vbRightButton Then PopupMenu popMnuEnd IfEnd SubPrivate Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)Load FrmLogInFrmLogIn.ShowIf UserShenFen = "经理" Then Unload FrmAdminMainElseIf UserShenFen = "仓库管理员" Then Unload FrmCangGuanMainElseIf UserShenFen = "售书员" Then Unload FrmBookSellerMainElseIf UserShenFen = "会员" Then Unload FrmMemberMainElse Unload FrmGuestMainEnd IfUnload FrmMainUserShenFen = ""logOK = FalseEnd SubPrivate Sub MfrmMainS_notepad_Click()Dim pid As Longpid = Shell("Notepad.exe", vbNormalFocus)If pid = 0 Then MsgBox "无法打开记事本!", vbOKOnly + vbExclamation, "