《毕业设计(论文)VB6.0+Access工程材料管理系统(附源程序).doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)VB6.0+Access工程材料管理系统(附源程序).doc(63页珍藏版)》请在三一办公上搜索。
1、摘 要在工程成本中,工程材料费一般占工程总造价的70%左右。由于工程材料费用所占比重很大,就意味者节约材料用量、减少材料的损失和降低材料费用,可以有效地降低工程成本。随着建筑业地改革与发展,材料管理对企业经济效益地影响已经越来越得到重视,其中一个行之有效的手段就是:利用计算机技术来提高建筑材料的科学管理水平、最大限度地发挥企业物资的经济效益。关键词: 信息技术;Visual Basic;Access;数据库;DBA;JET全套源程序代码,联系153893706目录摘 要1ABSTRACT2目录3前言5第一章 工程材料管理系统的需求分析51.1建筑施工企业项目部需要什么样的材料管理软件51.1.
2、1实用性51.1.2易操作性51.1.3先进性61.1.4可维护性61.1.5可升级性61.1.6强大的统计查询、核算、分析功能61.1.7完善的材料价格采集、比选功能61.1.8数据安全性61.2借助信息技术加强施工企业管理7第二章 编程环境的选择102.1编程工具102.2关系型数据库的实现102.3二者的结合(DBA)10第三章 系统简介及运行环境113.1 系统简介113.1.1 数据维护113.1.2出入库管理113.1.3报表输出113.2 系统运行环境12第四章 总体设计134.1系统功能模块图134.2.1 数据库设计144.2.2 界面设计154.2.3 功能设计16第四章
3、结论32附录33前言一个施工企业项目管理的核心是控制进度、质量、成本。三者又是相互影响,相互促进的。在很长一段时间内,建筑施工企业对进度、质量高度重视但是忽视对于成本的控制或者没有很好的手段去控制,造成普遍利润水平较低,甚至亏损的状况,出现“没活着急,有活更着急”的情况。项目成本控制并不仅是财务部门的工作,要想控制好成本就要从相关业务入手:材料管理、机械管理、劳务管理、分包管理等;还要注重尽量精细,不仅通过财务、材料、机械、劳务、分包等部门了解到工程整体成本状况,更要了解到工程细部成本状况。这样才能为成本控制提供真实准确的数据基础。工程材料管理系统通过对工程材料进行科学的分类、实时动态的统计来
4、提高工程项目中材料的使用率和周转效率,降低工程成本。其最终目标是实现项目现场及相关企业工程材料管理的科学化、规范化。本系统在单机上运行,能够满足中、小型施工企业的实际需求。第一章 工程材料管理系统的需求分析1.1建筑施工企业项目部需要什么样的材料管理软件目前,市场中已经出现了一些材料管理软件,那么,对于施工项目部来说究竟需要什么样的材料管理软件呢?1.1.1实用性材料管理软件应适合当前施工企业项目部材料管理工作的实际业务流程,能够满足客户的合理需求,解决实际问题。1.1.2易操作性施工企业现场工作人员受客观条件限制,计算机的操作水平有限,如果软件操作步骤复杂,难于掌握,势必也会影响工作效率,要
5、求材料管理人员在不影响正常工作的前提下花费很大精力学习软件的使用是不太现实的。因此就要求软件界面直观,操作简单,容易理解和掌握。1.1.3先进性企业所选择的材料管理软件不应该仅仅是作为进、销、存工具软件来使用,软件中应融入先进的材料管理思想,只有这样,才能有助于施工企业项目部提高材料管理水平。1.1.4可维护性不同企业对于材料管理的业务模式、管理机制、岗位设置等是千差万别的,甚至是在同一企业的不同项目部间都会有所差别,各自有适合本企业的一套管理经验。这就要求材料管理软件可维护性比较强,具有一定的伸缩性,可以根据不同的业务需求,来灵活地配置软件系统的模块、功能。1.1.5可升级性由于用户需求会发
6、生变化,不可避免的带来软件升级的问题,软件应预留接口,方便日后升级及软件功能的扩展,满足企业未来发展的需求。1.1.6强大的统计查询、核算、分析功能材料管理过程中会产生大量的数据,需要相关人员做统计查询、核算、分析工作,以便实时、动态地监控材料成本的发生,辅助管理层进行决策。材料管理软件应在这方面提供强大的功能,改变过去手工统计查询的低效率状况。利用软件的统计、分析功能为企业编制内部材料消耗定额及建立材料价格库提供基础数据,指导企业投标。1.1.7完善的材料价格采集、比选功能软件应该提供多种途径帮助用户实时采集材料市场价格,进行价格比较,使用户购买到质优价廉的材料,降低采购成本。1.1.8数据
7、安全性在实现信息化管理过程中,数据安全性显得尤为重要。如果软件的数据安全性得不到保障,一旦遇到突发情况,如断电、操作系统崩溃、电脑病毒等,用户辛辛苦苦建立起的重要数据信息无法得到恢复,那损失将是惨重的。因此,软件应具有较高的数据安全策略,提供数据实时备份与恢复功能,用来保证数据安全。基于以上的选择标准,施工企业一定能够优选出适合本企业施工项目部使用的材料管理软件系统,从而加快工作效率,规范材料管理制度,控制和节约材料成本,最终提高项目部的材料管理水平。1.2借助信息技术加强施工企业管理当前,建筑市场逐渐规范,施工企业间的激烈竞争、市场覆盖区域的逐渐扩大;再加上工程建设周期的缩短、经济环境的错综
8、复杂等,都使建筑施工企业面临着越来越大的压力和风险。如何有效的规避风险,加强建筑施工企业的综合素质,提高企业的竞争力,并在新的市场环境中健康、快速的发展,已成为施工企业管理者不停思考的课题。首先,地域间楚河汉界变通途和经济的全球化的趋势越来越明显,地理距离对施工企业的市场扩张的限制已经越来越小了,各地的施工企业乃至世界的各路诸侯都在全国范围内不断的扩张、渗透。身处此境,施工企业的组织结构、业务流程、管理手段、人力资源等方面皆面临着前所未有的冲击和挑战。其次,进入新的经济时代以来,施工企业间的竞争正在转化为基于企业核心能力的竞争。麦肯锡咨询公司曾对核心竞争力的定义:一个组织内部将具有互补性的技术
9、和知识进行整合,使得组织内的一项业务或者多项业务能够成为竞争行业的领先者,具有明显优势,这便叫核心竞争力。施工企业现都面临着互补性知识间整合的问题,新知识的掌握和应用正成为企业构筑这种核心竞争力的焦点。同时,在整合之际,也为企业的发展和壮大提供了难得的机遇。正如达尔文的进化论曾指出的那样:能够在不断变化的环境中生存下来的生物,不是那些最强大或最凶猛的动物,而是那些最能适应变化的动物。企业的兴与衰也是如此,诸多企业在市场竞争中的此消彼长就印证了这个道理:谁主动应对、主动变革,谁就能基业常青;谁漠视变化、不善应对,则在市场竞争中谁就会陷入越来越被动的境地。环顾全国范围乃至世界范围内的成功企业,他们
10、共同的特点就是一直不断的审视和改进自身的业务流程;不断的发展员工的技能和能力;不断的将新技术应用到所在领域中,并向管理广度和深度进军,从而持续提高企业的工作效率,并最终获得竞争优势。从过去到今天,施工企业对于提高运作效率和经营效益的追求一直没有改变过。保证施工项目运作效率的是业务流程及相应的组织架构,监控和反映经营效益的是会计体系和绩效管理机制,而能支撑企业这些业务活动的正是企业的信息管理系统,如图0-1所示。迅猛发展的信息技术给社会的发展带来了巨大的能量,有效的推动了社会的进步,已经或正在改变着我们的工作、学习、生活和思想。信息技术在社会各个领域的广泛应用,实际上就是信息系统的应用。使用信息
11、系统完善和加强传统的管理方式,重新认识和再造各种企业原有的业务流程,成为了企业在激烈的市场竞争中取胜的战略手段。信息管理系统的概念示意如图0-2所示。从组织的角度看,信息管理系统是组织的一个组成部分或是组织的自然延伸;从管理的角度看,信息管理系统是企业的管理人员应对市场环境的一种解决方案;从技术的角度看,信息管理系统实际上是企业组织的管理人员为了解决面临的各种问题而采用的一种集成了计算机硬件和软件的工具。信息管理系统的应用,目前在我国的建筑行业还处于起步阶段,要谨慎对待 “全面建设、一步到位”的做法。其他行业初期建设信息化管理系统时给我们留下了很多可供借鉴的经验和教训。面对复杂问题,寄希望于捷
12、径,往往会进入雷区,欲速而不达。因为,一个企业全体员工的意识、技能都不是一朝一夕就可具备的,需要培育、需要发展。企业与周边环境的配套与适应也是重要问题,否则会出现,一面高精尖、一面小米步枪,在接口处卡脖子的现象。随着问题的积累,甚至会导致系统被废弃,巨额投资浪费的严重后果。我们要遵循规律,防止陷阱,就要从最基础、最根本的做起,层层推进,依次改善,最终实现“通过全面应用信息管理系统,大幅提高企业效益”的目标。第二章 编程环境的选择2.1编程工具微软公司的Visual Basic 6.0是Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。Visual Basic提供了
13、大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。故而,实现本系统VB是一个相对较好的选择。2.2关系型数据库的实现Access2000 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户
14、共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。2.3二者的结合(DBA)微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及Visual Basic 来访问数据库并对其进行各种操作。Visual Basic、Access以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。DATA 控件在数据库中的信息与将信息显示给用户看的Visual Basic程序之间架起了一座桥梁。我们可以设置DA
15、TA控件的各个属性,告诉它要调用那个数据库的哪个部分。缺省情况下,DATA控件根据数据库中的一个或多个数据表建立一个dynaset-type(动态集合)类型的记录集合。DATA控件还提供了用来浏览不同记录的各种跳转按钮。将DATA控件放置在窗体中之后,我们还必须在该控件与要处理的数据库之间建立联系。第三章 系统简介及运行环境3.1 系统简介工程材料管理系统是为了满足广大建筑企业对工程材料的管理需求而开发的,既能管理普通材料,又能对周转材料进行管理;能够满足对多个仓库材料自动盘点和按工程项目的材料使用情况进行核算。系统采用Visual Basic 6.0开发,用户权限管理保证了系统与数据的安全。
16、工程材料管理系统主要包括以下几个方面的功能:3.1.1 数据维护对系统的用户及权限、材料分类及编码、仓库信息、供应商信息、客户信息等进行初始化设置。3.1.2出入库管理能够方便地录入和管理出入库各种材料的数据信息。3.1.3报表输出能够准确地自动生成仓库材料期段报表。3.2 系统运行环境P2以上微机;操作系统: 中文Windows95/98或以上的版本,系统要求预装Office2000套件中的Access2000文字编辑程序;主 存: 最低64MB,建议增设到128MB以上;硬盘空间: 剩余空间100MB以上;鼠 标: Microsoft及其兼容类鼠标。打 印 机: 支持Windows95下的
17、所有打印机第四章 总体设计4.1系统功能模块图系统设计包括登陆界面设计、数据库设计、主界面设计、菜单设计和功能设计。功能设计包括输入设计、查询设计。4.2.1 数据库设计数据库采用Access数据库,使用VisData或在Access环境中创建数据库表单:1.材料分类表2.库存材料表3.出库表4.入库表5.客户表6.供应商表7.员工表(如图)(图1)4.2.2 界面设计主界面是用户打开系统首先见到的界面,也是进入其他模块的入口。主界面将常用菜单项设计为工具栏,在工具栏上有项目、出库、入库、报表等菜单。主界面运行如下:(图2)实现代码:Private Sub CoolBar1_Resize()M
18、ovingText1.Width = CoolBar1.WidthEnd SubPrivate Sub MDIForm_Load()Unload FrmSetUnload frmRKUnload frmPrintUnload frmCKUnload FrmHYEnd SubPrivate Sub _Click()frmPrint.ShowEnd SubPrivate Sub_Click()frmCK.ShowEnd SubPrivate Sub_Click()frmRK.ShowEnd SubPrivate Sub _Click()FrmSet.ShowEnd Sub4.2.3 功能设计项目模
19、块项目模块分为员工管理、供应管理、客户管理、材料分类、材料管理五个部分,用来输入各项信息。运行界面如下图所示:(图3)实现代码:Private Sub asPopup1_Click(Cancel As Boolean)asPopup5.BackColor = &H8000000FasPopup4.BackColor = &H8000000FasPopup2.BackColor = &H8000000FasPopup1.BackColor = &HFFC0C0asPopup6.BackColor = &H8000000FSSTab1.Tab = 3End SubPrivate Sub asPop
20、up2_Click(Cancel As Boolean)asPopup5.BackColor = &H8000000FasPopup4.BackColor = &H8000000FasPopup2.BackColor = &HFFC0C0asPopup1.BackColor = &H8000000FasPopup6.BackColor = &H8000000FSSTab1.Tab = 2End SubPrivate Sub asPopup4_Click(Cancel As Boolean)asPopup5.BackColor = &H8000000FasPopup4.BackColor = &
21、HFFC0C0asPopup2.BackColor = &H8000000FasPopup1.BackColor = &H8000000FasPopup6.BackColor = &H8000000FSSTab1.Tab = 1End SubPrivate Sub asPopup5_Click(Cancel As Boolean)asPopup5.BackColor = &HFFC0C0asPopup4.BackColor = &H8000000FasPopup2.BackColor = &H8000000FasPopup1.BackColor = &H8000000FasPopup6.Bac
22、kColor = &H8000000FSSTab1.Tab = 0End SubPrivate Sub asPopup6_Click(Cancel As Boolean)asPopup5.BackColor = &H8000000FasPopup4.BackColor = &H8000000FasPopup2.BackColor = &H8000000FasPopup1.BackColor = &H8000000FasPopup6.BackColor = &HFFC0C0SSTab1.Tab = 4End SubPrivate Sub Form_Load() MakeWindow Me Alw
23、aysOnTop Me, TrueMe.Top = MDIFrmMain.Height / 2 - Me.Height / 2 - 1000Me.Left = MDIFrmMain.Width / 2 - Me.Width / 2asPopup5.BackColor = &HFFC0C0SSTab1.Tab = 0Combo1.AddItem Combo1.AddItem Combo1.AddItem Combo1.AddItem Combo2.AddItem 1Combo2.AddItem 2Combo2.AddItem 3Combo2.AddItem 4Combo2.AddItem 5Co
24、mbo3.AddItem Combo3.AddItem Combo3.AddItem Combo3.AddItem Combo3.AddItem Combo3.AddItem Combo3.AddItem Combo3.AddItem Combo3.AddItem Combo3.AddItem Combo3.AddItem Combo3.AddItem Combo3.AddItem Combo3.AddItem Combo3.AddItem Combo3.AddItem Combo3.AddItem Combo3.AddItem Combo3.AddItem Combo3.AddItem Co
25、mbo3.AddItem Data1.DatabaseName = App.Path & .mdbData1.Connect = ;pwd=lee1012Data1.RecordSource = Data1.RefreshData1.Visible = FalseData2.DatabaseName = App.Path & .mdbData2.Connect = ;pwd=lee1012Data2.RecordSource = Data2.RefreshData2.Visible = FalseData3.DatabaseName = App.Path & .mdbData3.Connect
26、 = ;pwd=lee1012Data3.RecordSource = Data3.RefreshData3.Visible = FalseData4.DatabaseName = App.Path & .mdbData4.Connect = ;pwd=lee1012Data4.RecordSource = Data4.RefreshData4.Visible = FalseData5.DatabaseName = App.Path & .mdbData5.Connect = ;pwd=lee1012Data5.RecordSource = Data5.RefreshData5.Visible
27、 = FalseToolbar5.Buttons(5).Visible = FalseToolbar5.Buttons(6).Visible = FalseEnd SubPrivate Sub Image1_Click()End SubPrivate Sub imgTitleLeft_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) DoDrag MeEnd SubPrivate Sub imgTitleMain_MouseDown(Button As Integer, Shift As Integ
28、er, x As Single, y As Single) DoDrag MeEnd SubPrivate Sub imgTitleMinimize_Click() Me.WindowState = 1End SubPrivate Sub imgTitleRight_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) DoDrag MeEnd SubPrivate Sub lblTitle_MouseDown(Button As Integer, Shift As Integer, x As Sing
29、le, y As Single) DoDrag MeEnd SubPrivate Sub imgTitleClose_Click() Unload MeEnd SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button.IndexCase 1 Data1.Recordset.MovePreviousIf Data1.Recordset.BOF = True ThenData1.Recordset.MoveFirstEnd IfCase 2 Data1.Recordset.Mo
30、veNextIf Data1.Recordset.EOF = True ThenData1.Recordset.MoveLastEnd IfCase 4 On Error GoTo add_error Data1.Recordset.AddNew Data1.Recordset() = Dateadd_error: If Err.Number = 3426 Then MsgBox & Err & & Err.Description, 0, Unload Me End IfToolbar1.Buttons(1).Visible = FalseToolbar1.Buttons(2).Visible
31、 = FalseToolbar1.Buttons(4).Visible = FalseToolbar1.Buttons(5).Visible = TrueToolbar1.Buttons(6).Visible = TrueToolbar1.Buttons(7).Visible = FalseCase 5 On Error GoTo update_errorIf Text3.Text = ThenMsgBox , 0, Exit SubEnd If Data1.UpdateRecord Data1.Recordset.Bookmark = Data1.Recordset.LastModified
32、update_error: If Err.Number = 3020 Then MsgBox & Err & & Err.Description, 0, Unload Me End IfToolbar1.Buttons(1).Visible = TrueToolbar1.Buttons(2).Visible = TrueToolbar1.Buttons(4).Visible = TrueToolbar1.Buttons(5).Visible = TrueToolbar1.Buttons(6).Visible = TrueToolbar1.Buttons(7).Visible = TrueCas
33、e 6 On Error GoTo CanceErrData1.Recordset.EditData1.Recordset.CancelUpdateToolbar1.Buttons(1).Visible = TrueToolbar1.Buttons(2).Visible = TrueToolbar1.Buttons(4).Visible = TrueToolbar1.Buttons(5).Visible = TrueToolbar1.Buttons(6).Visible = TrueToolbar1.Buttons(7).Visible = TrueCanceErr:If Err.Number
34、 = 3021 Then MsgBox & Err & & Err.Description, 0, End IfCase 7 On Error GoTo del_error a = MsgBox(, vbExclamation + vbOKCancel + vbApplicationModal, )If a = 1 Then Data1.Recordset.Delete Data1.Recordset.MoveLast End IfIf a = 2 Then Exit Subdel_error: If Err.Number = 3426 Then MsgBox & Err & & Err.De
35、scription, 0, Unload Me End IfEnd SelectEnd SubPrivate Sub Toolbar2_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button.IndexCase 1 Data2.Recordset.MovePreviousIf Data2.Recordset.BOF = True ThenData2.Recordset.MoveFirstEnd IfCase 2 Data2.Recordset.MoveNextIf Data2.Recordset.EOF = True
36、ThenData2.Recordset.MoveLastEnd IfCase 4 On Error GoTo add_error Data2.Recordset.AddNew Data1.Recordset() = Dateadd_error: If Err.Number = 3426 Then MsgBox & Err & & Err.Description, 0, Unload Me End IfToolbar2.Buttons(1).Visible = FalseToolbar2.Buttons(2).Visible = FalseToolbar2.Buttons(4).Visible
37、= FalseToolbar2.Buttons(5).Visible = TrueToolbar2.Buttons(6).Visible = TrueToolbar2.Buttons(7).Visible = FalseCase 5 On Error GoTo update_errorIf Text3.Text = ThenMsgBox , 0, Exit SubEnd If Data2.UpdateRecord Data2.Recordset.Bookmark = Data2.Recordset.LastModifiedupdate_error: If Err.Number = 3020 T
38、hen MsgBox & Err & & Err.Description, 0, Unload Me End IfToolbar2.Buttons(1).Visible = TrueToolbar2.Buttons(2).Visible = TrueToolbar2.Buttons(4).Visible = TrueToolbar2.Buttons(5).Visible = TrueToolbar2.Buttons(6).Visible = TrueToolbar2.Buttons(7).Visible = TrueCase 6 On Error GoTo CanceErrData2.Reco
39、rdset.EditData2.Recordset.CancelUpdateToolbar2.Buttons(1).Visible = TrueToolbar2.Buttons(2).Visible = TrueToolbar2.Buttons(4).Visible = TrueToolbar1.Buttons(5).Visible = TrueToolbar2.Buttons(6).Visible = TrueToolbar2.Buttons(7).Visible = TrueCanceErr:If Err.Number = 3021 Then MsgBox & Err & & Err.De
40、scription, 0, End IfCase 7 On Error GoTo del_error a = MsgBox(, vbExclamation + vbOKCancel + vbApplicationModal, )If a = 1 Then Data2.Recordset.Delete Data2.Recordset.MoveLast End IfIf a = 2 Then Exit Subdel_error: If Err.Number = 3426 Then MsgBox & Err & & Err.Description, 0, Unload Me End IfEnd Se
41、lectEnd SubPrivate Sub Toolbar3_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button.IndexCase 1 Data3.Recordset.MovePreviousIf Data3.Recordset.BOF = True ThenData3.Recordset.MoveFirstEnd IfCase 2 Data3.Recordset.MoveNextIf Data3.Recordset.EOF = True ThenData3.Recordset.MoveLastEnd IfCa
42、se 4 On Error GoTo add_error Data3.Recordset.AddNew Data1.Recordset() = Dateadd_error: If Err.Number = 3426 Then MsgBox & Err & & Err.Description, 0, Unload Me End IfToolbar3.Buttons(1).Visible = FalseToolbar3.Buttons(2).Visible = FalseToolbar3.Buttons(4).Visible = FalseToolbar3.Buttons(5).Visible = TrueToolbar3.Buttons(6).Visible = TrueToolbar3.Buttons(7).Visible = FalseCase 5 On Error GoTo update_errorIf Text3.Text = ThenMsgBox , 0, Exit SubEnd If Data3.UpdateRecord Data3.Recordset.Bookmark = Data3.Recordset.LastModifiedupdate_error: If Err.Number = 3020 Then MsgBox