2021-2022年收藏的精品资料设备管理系统.doc
目 录第一章 绪论11.1系统开发的背景11.2系统开发的目的、意义11.3课题中涉及的相关技术及概念3第二章 系统开发的要求52.1硬件配置及外设设备与配置52.2 所用的开发软件、应用软件平台及语言52.3系统的功能特点62.3.1系统的功能62.3.2系统的组成结构及其流程图62.3.3 本组成员及分工8第三章 数据库设计93.1数据库设计概述93.2系统数据库结构(E-R表示)10第四章 详细设计154.1详细设计概述154.2 系统界面设计及代码编写154.2.1设备分配管理模块设计154.2.2设备维护管理模块设计234.2.3设备报废管理模块设计25第五章 系统运行调试345.1系统测试345.2系统的特点34第六章 结束语35参考文献36第一章 绪论1.1系统开发的背景目前公司设备自动化管理水平不是很高。大多数设备管理办法是设备采购进来以后,将设备的基本情况和相关信息登记存档,然后将档案存档。以后档案基本就没人维护,如设备位置变迁、检修情况、设备当前运行状态等信息根本不会体现在设备台帐上,即设备跟踪信息不能及时体现在设备档案上。某些使用设备管理系统,对设备的跟踪信息即使能体现在设备档案上,但设备的缺陷处理及设备缺陷等功能没有实施,设备检修的备品备件情况和检修成本核算没有实现,整个设备管理信息化仍处于较低水平。本信息系统合理的借鉴国际领先的设备管理思想并结合国内设备管理现状,可以完全能满足设备管理的需要。并通过对各行业设备管理情况的长期研究探索,以灵活、通用为主要设计思想,开发适合于各行业设备管理信息系统。本系统将会提高的办公效率和设备可靠性,减少工作人员的劳动强度,减少办公耗材,提高的现代化管理水平。实时报警功能对的安全生产更是不可忽视。1.2系统开发的目的、意义目前公司设备自动化管理水平不是很高。大多数设备管理办法是设备采购进来以后,将设备的基本情况和相关信息登记存档,然后将档案存档。以后档案基本就没人维护,如设备位置变迁、检修情况、设备当前运行状态等信息根本不会体现在设备台帐上,即设备跟踪信息不能及时体现在设备档案上。某些使用设备管理系统的单位,对设备的跟踪信息即使能体现在设备档案上,但设备的缺陷处理及设备缺陷等功能没有实施,设备检修的备品备件情况和检修成本核算没有实现,整个公司设备管理信息化仍处于较低水平。将管理任务分成小块,落实到个人并能随时查询设备当前情况和历史情况,对设备的可靠性分析有直接作用,使管理人员从手工计算、统计工作中解脱出来。 现在,科学技术的飞速发展把人类社会推向了一个崭新的时代信息时代。这已是无可争议的事实;信息对社会经济发展的巨大推动作用,使其与物质能源一起并列为现代社会的三大支柱,这已在全社会达到共识。随着对信息作为一种资源来管理的需求日益加强,信息研究领域出现了一种新的管理思想和模式信息管理。因此,就诞生了“信息管理”这样一个概念。由于信息是普遍存在的,人类信息管理活动的范围也是十分广泛的,信息管理不仅是信息工作的一部分,而且已被认为是现代管理的重要组成部分。信息管理的概念源于西方,也是在世界信息量迅速增长、信息技术日新月异、信息产业强劲发展的六七十年代出现的。时至今日,信息管理已不仅仅是一个概念,而是信息学和管理学中的重要内容了。对信息管理的理解,一种认为是,信息管理 就是对信息的管理。在此,信息管理是指狭义的信息资源管理,实际上就是对信息本身的管理;另一种认为,信息管理不仅是对信息的管理,而是对涉及信息活动的各种要素,如信息、技术、人员、组织进行合理的组织和有效的控制,从而满足社会的信息需求。在此,信息管理是指广义的信息资源管理。综合两种理解,信息管理是指对人类信息活动所产生的社会信息进行管理,信息管理是管理的一种,既要对信息进行管理,也要对信息活动进行管理。信息和信息活动都是信息管理的客体。简而言之,信息管理就是对信息和信息活动的管理,这就是我们对信息管理的全面理解。世界经济发展已进入一个激烈竞争的年代,可以说,谁先获得信息,谁就有可能抓住发展经济的机遇。同样,谁能很好地管理和利用信息,谁就有可能占领市场,获得效益。国内外大量事实已说明:在目前这个激烈竞争的市场经济中,谁的信息管理现代化水平高,谁重视信息资源的开发和利用,谁就能抓住机遇,在竞争中取胜。本信息管理系统合理的借鉴国际领先的设备管理思想并结合国内设备管理现状,经过长期的现场调研,完全能满足国内一般的设备管理的需要。并通过对各行业设备管理情况的长期研究探索,以灵活、通用为主要设计思想,开发适合于设备管理的信息系统。使用本系统之后,将会提高的办公效率和设备可靠性,减少工作人员的劳动强度,减少办公耗材,提高的现代化管理水平。作这个课题是为了方便的公司设备进行统计及管理工作,减少每天需要涉及到的相关工作量,尽可能的提高工作效率,可以节省人力物力的浪费。1.3课题中涉及的相关技术及概念系统采用了先进的Access数据库技术,面向对象的编程方法学以及软件工程方法学Visual Basic 6.0中文版是一种应用程序开发工具,它的功能就是用来编程Windows 下的应用程序。Visual Basic 6.0是在原有的Basic语言的基础上的进一步发展,他包含了数百条语句。函数及关键词,其中很多与Windows GUI有直接的关系。Visual Basic 语言简单易学,只要稍有语言基础就可以很快的掌握并进而精通。可视化的用户界面设计功能,把程序设计人员从繁琐复杂的截面设计中解脱出来;可视化编程环境的“所见即所得(WYSIWYG)”功能,是界面设计如积木游戏一般,编程变成了一种享受;强大的多媒体功能可轻而易举地开发出集声音,动画,影像和图片于一体的多媒体应用程序;新增的网络功能提供了编写Internet程序的能力。Visual Basic 6.0 还支持用户自己开发ActiveX控件和制作ActiveX文档。”Visual”一词在计算机程序设计领域中意为:”可视化的”,Microsoft公司的其冠以Visual的产品都含有这个意思。VB就是可视化程序设计语言。可视化程序设计指的是一种开发图形用户界面的方法,使用这种方法,程序员不须编写大量代码去描述界面元素的外观和位置,只要把预先建立的界面元素用鼠标拖放到屏幕上适当的位置即可。Visual Basic在原有BASIC语言的基础上进一步发那,至今包含了数百条语句、函数及关键词,其中很多和Windows GUIe直接关系。专业人员可以用Visual Basic实现其他任何Windows编程语言的功能,而初学者只要掌握 几个关键词就可以建立实用的应用程序。Visual Basic的基本特点VB的基本特点有两个:VB提供可视化的编程工具VB向程序员提供图形对象(窗体,控件,菜单等)进行应用程序的界面设计,应用程序的界面相当于用工具画出来的,大大简化了程序员的编程工作。程序采取“事件驱动”方式VB改变了程序的机制,没有传统意义上的主程序,使程序执行的基本方法是有“事件”来驱动子程序(或过程)的运行,如用鼠标点击命令按扭,就产生了一个命令按扭的“单击事件”,响应的执行一段程序(事件过程:Command1_Click())。为什么要选择VB6.0 ?微软公司的Visual Basic 6.0是Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。Visual Basic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。故而,实现本系统VB是一个相对较好的选择。第二章 系统开发的要求2.1硬件配置及外设设备与配置工硬件环境:硬件平台是指开发与运行所需要的硬件环境,主要包括计算机机型及硬件配置。由于本系统是一个小型的管理系统,因此对计算机硬件的要求不高,比较经济,只要配备如下表所示的就可以。内容 最低配置 建议配置主机 P/200 PII/266以上内存 64MB 128MB以上硬盘 10GB 20GB以上显示器 VGA以上 2.2 所用的开发软件、应用软件平台及语言 软件平台是指系统开发与运行的软件环境。本系统在开发时选用了稳定性较强的Windows XP中文专业版和Visual Basic6.0作为开发语言,由于这些软件产品都是Microsoft公司的产品,因此彼此之间的兼容性较好,开发出的应用系统稳定性较高。VB6.0中文版,它是运行于Windows95和Windows NT平台的32位数据库系统,充分发挥了32位微处理器强大的32位数据处理性能。它功能强大,直观易用,支持客户/服务器结构和面向对象编程,提供多种可视化编程工具,支持最新Internet技术, WWW数据库的设计,最新流行的ActiveX等。应用程序开发:Visual basic 6.0 与其它access 工具可以很好的配合,例如,运用Visual InterDev 创建Web应用程序的开发人员可以很容易地使用Visual Basic 来创建组件。用Visual Basic创建的 ActiveX 控件可以在Visual Basic 应用程序中使用,以实现一些附加功能。2.3系统的功能特点2.3.1系统的功能本系统主要完成新增设备的入库记录、新增设备的维护、设备领用登记和维护、设备使用与维修登记和维护、信息检索、系统管理功能。2.3.2系统的组成结构及其流程图本系统主要有以下模块:新增设备的入库记录、新增设备的维护、设备领用登记和维护、设备使用与维修登记和维护、信息检索、系统管理。为了美化系统界面,本系统加上一个图片在主界面上,用户在使用要系统时,为了增加本系统的安全时,首先需要验证,只有在登录界面上输入正确的用户名和密码才能登陆本系统使用,系统默认的用户为:syp/123系统的整体结构如下图2-1:基本信息管理设备台帐管理设备配件管理设备维护管理设备报废管理系统用户管理设备分配管理设备管理系统图2-1 设备管理系统的整体结构图系统流程分析图:开 始用户登录拥有管理的权用户审批权限 重试 失败 成功下面分别论述本系统的各个功能模块的作用:()系统登陆:点击可执行文件设备管理系统.exe之后,就进入本登陆界面,用户需要如上所述的正确的用户名和密码之后才能使用本系统。()设备采购入库:本应用模块的主要功能是实现对设备的入库管理工作,包括记录添加、编辑、删除等操作。()设备台账:本应用模块的主要功能是实现对设备的出库管理工作,包括记录添加、编辑、删除等操作。()设备维修和使用:本应用模块的主要功能是实现对教学的还库管理工作,包括记录添加、编辑、删除等操作。(5)信息查询:本应用模块集成了本系统的所有数据库文件,可以跟据设备的编号,名称等进行查询。 (6)退出系统:退出本系统,恢复系统的实始状态。2.3.3 本组成员及分工张琴:基本信息管理、设备台帐管理、设备配件管理、数据库操作、系统用户管理许映丽:设备分配管理、设备维护管理、设备报废管理第三章 数据库设计3.1数据库设计概述Visual Basic具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理Microsoft Access格式的数据库,并提供了强大的数据存储和检索功能。同时,Visual Basic还能直接编辑和访问其他外部数据库,如DBASE,FoxPro,Paradox等,这些数据库格式都可以用Visual Basic编辑和处理。 数据库是信息管理系统的后台,存储着所有的信息,在信息管理系统中有着很重要的地位。数据库设计的好与坏,直接影响到这个系统的运行效率。良好的数据库设计,可以提高数据信息的存储效率,保证数据信息的完整性和一直性。同时,一个合理的数据库结构有利于程序的实现。这里选用Access 2000作为后台数据库。 数据库是某个企业、组织或部门所设计的数据的一个综合,它不仅要反映数据本身的内容,而且要反映数据之间的联系。在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。简单地说,数据模型是现实世界的模拟。 3.2系统数据库结构(E-R表示) 为了使E-R图表示得更加清晰,现将E-R图分成实体及其属性图和实体及其联系图。分别如下几个图所示:设备采购设备名称设备编号采购人采购日期生产厂家生产日期购入数量金额 设备入库:图3.1 设备入库台账的管理:台账管理设备编号设备名称领取人领取时间领取单位领取数量图3.2 台帐管理使用与维护:使用与维护设备名称设备编号维修次数使用情况(良/差)维修费用维修记录图3.3 使用与维护3.3设计表结构 1类型表如表3-1:编号字段名称 数据类型 说明 1 Id自动编号,长整型类型编号,主键 2TypeName文本,长度为50类型名称,必填字段(是),允许空字符串(否) 3TypeId数字,字节类型分析,1表示设备分类;2表示部门信息表3-1 类型表2设备台帐如表3-2:编号字段名称数据类型说明1Id文本,长度为50设备编号,主键2Name文本,长度为50设备名称,必填字段(是),允许空字符串(否)3Model文本,长度为50设备名称,必填字段(否),允许空字符串(是)4TypeId数字,长整型分类编号,必填字段(是)5Price数字,整型价格,必填字段(否)6DCount数字,整型数量,必填字段(否)7Unit文本,长度为10计量单位,必填字段(否),允许空字符串(是)8CreateDate日期/时间创建日期,必填字段(否)9Poster文本,长度为50创建人,必填字段(否),允许空字符串(是)10Flag数字,字节设备类型,1-设备;2-配件11Status文本,长度为20设备状态(正常、分配、报废)表3-2 设备台帐表3设备分配表如表3-3:编号字段名称数据类型说明1Id自动编号,长整型分配编号,主键2DeptId数字,长整型部门编号,必填字段(是)3EmpName文本,长度为50负责人,必填字段(是),允许空字符串(否)4DevId文本,长度为50设备编号,必填字段(是),允许空字符串(否)5CreateDate数字,整型创建日期,必填字段(是)6Flag数字,字节分配标记,1-分配;2-分配确认,必填字段(是)表3-3 设备分配表4分配配件表如表3-4:编号字段名称数据类型说明1Id数字,长整型自动编号,主键2DisId数字,长整型分配编号,必填字段(是)3DevId文本,长度为50配件编号,必填字段(是),允许空字符串(否)4ACount数字,整型数量,必填字段(是)表3-4 分配配件表5设备维护表如表3-5:编号字段名称数据类型说明1Id数字,长整型分配编号,主键2DevId文本,长度为50设备编号,必填字段(是),允许空字符串(否)3MnName文本,长度为50维护人姓名,必填字段(否),允许空字符串(是)4MnDate日期/时间维护日期,必填字段(否)5MnSum数字,长整型维护费用,必填字段(否)6Comment备注备注,必填字段(否),允许空字符串(是)表3-5 设备维护表6设备报废表如表3-6:编号字段名称数据类型说明1Id数字,长整型自动编号,主键2DevId文本,长度为50设备编号,必填字段(是),允许空字符串(否)3DCount数字,整型报废数量,必填字段(是)4DSum数字,长整型折算金额,必填字段(否)5Reason文本,长度为200报废原因,必填字段(是),允许空字符串(否)6CreateDate日期/时间申请时间,必填字段(是)7UserName文本,长度为40申请人,必填字段(是),允许空字符串(否)8Checker文本,长度为40审批人,必填字段(否),允许空字符串(是)9CheckDate日期/时间审批日期,必填字段(否)10Result文本,长度为200审批意见,必填字段(否),允许空字符串(是)11Status文本,长度为10状态(申请、提交、同意、不同意、报废)表3-6 设备报废表7用户信息表如表3-7:编号字段名称数据类型说明1UserName文本,长度为40用户名,主键,必填字段(是),允许空字符串(否)2UserPwd文本,长度为40密码,必填字段(是),允许空字符串(否)3UserType数字,字节用户类型,1-系统管理员;2-审批经理4Email文本,长度为50电子邮件,必填字段(是),允许空字符串(否)表3-7 用户信息表第四章 详细设计4.1详细设计概述详细设计的任务:详细设计就是要在概要设计的结果的基础上,考虑“怎样实现”这个件统,直到对系统中的每个模块给出足够详细的过程性描述。主要任务如下: 为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述; 确定每一模块使用的数据结构; 确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及模块输入数据、输出数据及局部数据的全部细节。 要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试,模块的测试用例是软件测试计划的重要组成部分,通常应包括输入数据,期望输出等内容。4.2 系统界面设计及代码编写4.2.1设备分配管理模块设计设备分配管理模块的功能是将指定的设备以及配件分配给相关的部门,主要内容包括:添加设备分配信息,包括编号、分配部门、负责人等信息。1. 修改设备分配信息。2. 删除设备分配信息。3. 设备分配信息确认。4. 查看设备分配信息。4.2.1.1设计批量选择设备配件窗体批量选择设备配件窗体的名称为FrmAccessorySel。批量选择设备配件窗体的布局如图4-1。图 4-1 批量选择设备配件窗体的布局当单击“选择配件”按钮,触发Cmd_DeviceSel_Click事件,代码如下:Private Sub Cmd_DeviceSel_Click() '选择配件 FrmDeviceSel.nFlag = 2 FrmDeviceSel.Caption = "选择设备配件" FrmDeviceSel.Show 1 '读取指定对象信息 sDevId = Trim(MyDeviceSel.Id) AccessoryRefreshEnd Sub程序将打开FrmDeviceSel窗体,并将nFlag设置为2,表示选择设备配件。函数AccessoryRefresh的功能是根据选择的配件编号sDevID从表Device和Type中读取配件信息,并将其显示在表格控件db_Accessory中Private Sub AccessoryRefresh() AdoAccessory.ConnectionString = Conn AdoAccessory.RecordSource = "SELECT d.Id AS 编号,d.Name AS 配件名称," _ + "d.Model AS 配件型号,t.TypeName AS 分类," _ + "d.Unit AS 单位,d.DCount AS 数量 " _ + " FROM Device d,Types t WHERE d.TypeId=t.Id " _ + " AND d.Id='" + sDevId + "'" AdoAccessory.Refresh Set db_Accessory.DataSource = AdoAccessory db_Accessory.Columns(0).Width = 800 db_Accessory.Columns(1).Width = 1400 db_Accessory.Columns(2).Width = 1400 db_Accessory.Columns(3).Width = 1200 db_Accessory.Columns(4).Width = 800 db_Accessory.Columns(5).Width = 800End Sub在txtCount文本框中输入配件数量,然后单击“确定”按钮,代码如下:Private Sub Cmd_OK_Click() '检查用户录入数据的有效性 If Len(Trim(sDevId) = 0 Then MsgBox "请选择设备" Cmd_DeviceSel.SetFocus Exit Sub End If If Len(Trim(txtCount) = 0 Or Val(txtCount) <= 0 Then MsgBox ("请输入分配数量,分配数量大于0") txtCount.SetFocus Exit Sub End If '把用户录入的数据赋值到数据库对象变量中 With MyAList .DevId = sDevId .ACount = Val(txtCount) .DisId = DId .Insert End With '关闭窗口 Unload MeEnd Sub程序将选择的设备配件数据保存到AccessoryList表中,DisID字段值为当前选择的设备分配单编号。4.2.1.2设计设备分配编辑窗体设备分配编辑窗体的名称为FrmDistributeEdit,窗体布局如图4-2。图4-2 设备分配编辑窗体的布局下面分析窗体FrmDistributeEdit各个过程的代码。1、 全局变量定义窗体中定义了3个变量,对应的代码如下:Public Modify As Boolean '插入=false,修改=truePublic OriId As Long '分配编号Public sDevId As String '设备编号2、 连接数据源窗体中使用了三个数据源,分别取得表Types中的部门信息、表Device中设备信息和配件信息.3、 Form_Load过程Private Sub Form_Load() DeptRefresh '刷新部门信息列表 DeviceRefresh '刷新设备信息列表 AccessoryRefresh '刷新配件信息列表End Sub4、 Cmd_DeviceSel_Click过程当单击选择设备按钮,从设备列表中选择要分配的设备,代码如下:Private Sub Cmd_DeviceSel_Click() FrmDeviceSel.nFlag = 1 '选择设备 FrmDeviceSel.Show 1 '设备列表 '读取指定设备对象信息中设备编号 sDevId = Trim(MyDeviceSel.Id) DeviceRefresh '刷新设备列表 Cmd_Save.Enabled = True '保存按钮可用End Sub5、 Cmd_Add_Click过程Private Sub Cmd_Add_Click() '添加分配的配件信息 FrmAccessoryEdit.DId = OriId '设置分配编号 FrmAccessoryEdit.Show 1 '显示添加配件窗体 AccessoryRefresh '刷新配件数据End Sub6、 Cmd_Del_Click过程Private Sub Cmd_Del_Click() If AdoAccessory.Recordset.EOF = True Then MsgBox "请选择记录" Exit Sub End If If MsgBox("是否确定要删除 ", vbYesNo, "请确认") = vbNo Then Exit Sub End If '删除分配的配件记录 MyAList.Delete (AdoAccessory.Recordset.Fields(0) AccessoryRefresh '刷新配件列表End Sub7、 Cmd_Save_Click过程Private Sub Cmd_Save_Click() '检查用户录入数据的有效性 If Len(Trim(txtDate) = 0 Then MsgBox ("请输入分配日期") txtDate.SetFocus Exit Sub End If If Len(Trim(dco_DeptId.Text) = 0 Then MsgBox "请选择设备使用部门" dco_DeptId.SetFocus Exit Sub End If If Len(Trim(txtName) = 0 Then MsgBox "请输入设备负责人" txtName.SetFocus Exit Sub End If If Len(Trim(sDevId) = 0 Then MsgBox "请选择设备" Cmd_DeviceSel.SetFocus Exit Sub End If '把用户录入的数据赋值到数据库对象变量中 With MyDistribute .DevId = Trim(sDevId) .EmpName = MakeStr(txtName) .DeptId = Val(dco_DeptId.BoundText) .CreateDate = MakeStr(txtDate) .Flag = 1 '根据变量Modify的值,决定是插入新数据,还是修改已有的数据 If Modify = False Then .Insert '插入新记录后取得其编号 OriId = .MaxId '保存后可以编辑配件信息 Cmd_Add.Enabled = True Cmd_Del.Enabled = True Frame2.Enabled = True Else .Update (OriId) End If End WithEnd Sub4.2.1.3设计设备分配管理窗体设备分配管理窗体FrmDistribute布局如图4-3。图 4-3 设备分配管理窗体布局部分代码介绍:1、 GridRefresh过程Private Sub GridRefresh() '设置查询条件 If Len(Trim(txtName) = 0 Then SchCnd = "" Else SchCnd = " AND d.Name Like '%" + Trim(txtName) + "%'" End If '设置连接数据源 Adodc1.ConnectionString = Conn '设置SELECT语句 Adodc1.RecordSource = "SELECT s.Id AS 编号,s.DevId AS 设备编号," _ + "d.Name AS 设备名称,d.Model AS 设备型号," _ + "t.TypeName AS 分配部门,s.EmpName AS 负责人," _ + "s.CreateDate AS 申请日期," _ + "IIF(s.Flag=1,'分配','分配确认') AS 状态 " _ + " FROM Distribute s,Device d ,Types t " _ + " WHERE s.DevId=d.Id AND s.DeptId=t.Id " _ + SchCnd + " ORDER BY s.Id" Adodc1.Refresh '设置列宽度 Set DataGrid1.DataSource = Adodc1 DataGrid1.Columns(0).Width = 800 DataGrid1.Columns(1).Width = 1200 DataGrid1.Columns(2).Width = 1000 DataGrid1.Columns(3).Width = 1000 DataGrid1.Columns(4).Width = 1000 DataGrid1.Columns(5).Width = 1000 DataGrid1.Columns(6).Width = 1200 DataGrid1.Columns(7).Width = 800End Sub2、 Cmd_Add_Click过程Private Sub Cmd_Add_Click() '将Modify变量设置为False,表示当前状态为插入新记录 FrmDistributeEdit.Modify = False '初始化FrmDistributeEdit信息 FrmDistributeEdit.sDevId = "" FrmDistributeEdit.txtDate = Date FrmDistributeEdit.txtName = "" FrmDistributeEdit.dco_DeptId.Text = "" '配件操作和保存操作为不可用 FrmDistributeEdit.Cmd_Add.Enabled = False FrmDistributeEdit.Cmd_Del.Enabled = False FrmDistributeEdit.Cmd_Save.Enabled = False FrmDistributeEdit.Frame2.Enabled = False '启动编辑窗体 FrmDistributeEdit.Show 1 '刷新DataGrid表格的内容 GridRefreshEnd Sub3、 Cmd_Modi_Click过程Private Sub Cmd_Modi_Click() '修改 If Adodc1.Recordset.EOF = True Then MsgBox "请选择记录" Exit Sub End If '将Modify变量设置为False,表示当前状态为插入新记录 FrmDistributeEdit.Modify = True '初始化FrmDistributeEdit信息 FrmDistributeEdit.OriId = Adodc1.Recordset.Fields(0) FrmDistributeEdit.sDevId = Trim(Adodc1.Recordset.Fields(1) FrmDistributeEdit.txtDate = Trim(Adodc1.Recordset.Fields(6) FrmDistributeEdit.txtName = Trim(Adodc1.Recordset.Fields(5) FrmDistributeEdit.dco_DeptId.Text = Trim(Adodc1.Recordset.Fields(4) '启动编辑窗体 FrmDistributeEdit.Show 1 '刷新DataGrid表格的内容 GridRefreshEnd Sub4、 Cmd_Del_Click过程Private Sub Cmd_Del_Click() If Adodc1.Recordset.EOF = True Then MsgBox "请选择记录" Exit Sub End If If MsgBox("是否确定要删除 ", vbYesNo, "请确认") = vbNo Then Exit Sub End If '删除分配记录 MyDistribute.Delete (Adodc1.Recordset.Fields(0) '根据分配编号删除配件信息 MyAList.DeleteByDisId (Adodc1.Recordset.Fields(0) GridRefreshEnd Sub5、 Cmd_Dis_Click过程Private Sub Cmd_Dis_Click() If Adodc1.Recordset.EOF = True Then MsgBox "请选