仓库管理系统论文v 83页

  • 2.72 MB
  • 2022-05-16 18:34:56 发布

仓库管理系统论文v

  • 83页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
VB仓库管理系统毕业论文仓库管理系统摘 要本系统主要完成对仓库的库存管理,包括入库、出库、库存,员工信息,供应商信息以及密码管理等六个方面。系统可以完成对各类信息的浏览、查询、添加、删除、修改等功能。系统的核心是入库、库存和出库三者之间的联系,每一个表的修改都将联动的影响其它的表,当完成入库或出库操作时系统会自动地完成库存的修改。查询功能也是系统的核心之一,在系统中即有单条件查询和多条件查询,也有精确查询和模糊查询,系统不仅有静态的条件查询,也有动态生成的条件查询,其目的都是为了方便用户使用。系统有完整的用户添加、删除和密码修改功能,并具备报表打印功能。系统采用MicrosoftOffice中的Access2000来设计数据库,并使用当前优秀的开发工具—VB6.0,它有着最为灵活的数据库结构,对数据库应用有着良好的支持。论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点的说明了系统设计的重点、设计思想、难点技术和解决方案。关键字:数据库,SQL语言,vb6.0,数据库组件,仓库管理VB仓库管理系统毕业论文 VB仓库管理系统毕业论文目 录第一章:引言1.1课题来源1.2.开发工具的选择1.3所做的主要工作1.第二章数据库的概论 2.1数据库的发展 2.1.1 数据库的发展  2.1.2 数据库阶段的特点  2.1.3 数据库技术2.2 数据库理论基础   2.2.1 数据库模型  2.2.2 数据库体系结构     2.2.3 数据的独立性   2.2.4 范式 2.3 SQL语言基础    2.3.1 SQL简介   2.3.2 SQL查询     2.3.3 SQL数据更新 第三章Visualbasic下的控件所实现的功能VB仓库管理系统毕业论文 VB仓库管理系统毕业论文3.1实现菜单选项3.2实现工具栏3.3帮助3.4关于版本第四章系统总体规划4.1系统功能4.2系统功能结构图4.3具体操作步骤一览表第五章系统具体实现5.1用户界面的实现5.2数据库的实现5.2.1库存数据库5.2.2用户管理库5.3与VB的连接第六章结束语第七章参考文献第八章 程序源代码、各功能模块的界面图VB仓库管理系统毕业论文 VB仓库管理系统毕业论文第一章   引 言 §1.1  课题来源随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。与此同时,为了管理大量的物品,仓库也大量的出现,仓库的管理问题也就提上了日程。随着的大量增加,其管理难度也越来越大,如何优化仓库的日常管理也就成为了一个大众化的课题。在计算机飞速发展的今天,将计算机这一信息处理利器应用于仓库的日常管理已是势必所然,而且这也将为仓库管理带来前所未有的改变,它可以带来意想不到的效益,同时也会为企业的飞速发展提供无限潜力。采用计算机管理信息系统已成为仓库管理科学化和现代化的重要标志,它给企业管理来了明显的经济效益和社会效益。主要体现在:极大提高了仓库工作人员的工作效率,大大减少了以往入出存流程繁琐,杂乱,周期长的弊端。基于仓库管理的全面自动化,可以减少入库管理、出库管理及库存管理中的漏洞,可以节约不少管理开支,增加企业收入。仓库的管理的操作自动化和信息的电子化,全面提高了仓库的管理水平。随着我国改革开放的不断深入,经济飞速的发展,企业要想生存、发展,要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的,仓库管理的全面自动化、信息化则是其中极其重要的部分。为了加快仓库管理自动化的步伐,提高仓库的管理业务处理效率,建立仓库管理系统已变得十分心要。VB仓库管理系统毕业论文 VB仓库管理系统毕业论文入库、库存、出库还是现在企业仓库管理的常规基本模式,虽然,最近又出现了很多新的管理模式,如:基于零库存思想的沃尔玛特管理方式,但这些新的思想在中国大部分企业的管理中还是难以实现的。所以如何设计好仓库管理系统,尽可能地减少仓库管理的重复性和低效性就成为当前最为重要的问题。仓库管理的核心是入库、库存和出库之间的联系,如何处理好三者之间的关系是系统最为关键的部分。另外,员工信息和供应商信息管理也是仓库管理中一个必不可少的部分,它提供着与入库和出库相关的地一些信息,使得整个系统更加完整,更加实用。通过对仓库管理日常工作的详细调查,搜集了大量的资料,从系统结构的组织,功能的实现,技术的要求以及可行性等多方面进行考虑,认为本课题是一个适应现今仓库管理需求的计算机信息管理系统,具有一定的实际开发价值和使用价值。§1.2 开发工具的选择现在,市场上可以选购的应用开发产品很多,流行的也有数十种。目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有:VisualBasic、VisualC、DELPHI、PowerBulider,vfp等在目前市场上这些众多的程序开发工具中,有些强调程语言的弹性与执行效率;有些则偏重于可视化程序开发工具所带来的便利性与效率的得高,各有各的优点和特色,也满足了不同用户的需求。然而,语言的弹性和工具的便利性是密不可分的,只有便利的工具,却没有弹性的语言作支持,许多特殊化的处理动作必需要耗费数倍的工夫来处理,使得原来所标榜的效率提高的优点失去了作用;相反,如果只强调程语言的弹性,却没有便利的工具作配合,会使一些即使非常简单的界面处理动作,也会严重地浪费程序设计师的宝贵时间。作为数据库系统的开发,VisualBasic是一个非常理想选择。数据库是MISVB仓库管理系统毕业论文 VB仓库管理系统毕业论文中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统选用的数据库语言VisualBasic语言,该开发工具具有很多长处:VisualBasic是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础。在VisualBasic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。总的来说,VisualBasic具有以下特点:可视化编程:用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。VisualBasic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。VisualBasic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。面向对象的程序设计VB仓库管理系统毕业论文 VB仓库管理系统毕业论文4.0版以后的VisualBasic支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(C++)不完全相同。在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而VisualBasic则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,VisualBasic自动生成对象的程序代码并封装起来。每个对象以图形方式显示在界面上,都是可视的。结构化程序设计语言VisualBasic是在BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。VisualBasic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。VisualBasic是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。在设计VisualBasic程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(.EXE),脱离VisualBasic环境,直接在Windows环境下运行。事件驱动编程机制VisualBasic通过事件来执行对象的操作。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。例如,命令按钮是一个对象,当用户单击该按钮时,将产生一个“单击“(CLICK)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。在用VisualBasicVB仓库管理系统毕业论文 VB仓库管理系统毕业论文设计大型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用通用过程来执行指定的操作,这样可以方便编程人员,提高效率。访问数据库VisualBasic具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理MicrosoftAccess格式的数据库,并提供了强大的数据存储和检索功能。同时,VisualBasic还能直接编辑和访问其他外部数据库,如dBASE,FoxPro,Paradox等,这些数据库格式都可以用VisualBasic编辑和处理。VisualBasic提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQLServer,Oracle等。在应用程序中,可以使用结构化查询语言SQL数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户/服务器(client/server)方案。动态数据交换(DDE)利用动态数据交换(DynamicDataExchange)技术,可以把一种应用程序中的数据动态地链接到另一种应用程序中,使两种完全不同的应用程序建立起一条动态数据链路。当原始数据变化时,可以自动更新链接的数据。VisualBasic提供了动态数据交换的编程技术,可以在应用程序中与其他Windows应用程序建立动态数据交换,在不同的应用程序之间进行通信。对象的链接与嵌入(OLE)对象的链接与嵌入(OLE)将每个应用程序都看作是一个对象(object)VB仓库管理系统毕业论文 VB仓库管理系统毕业论文,将不同的对象链接(link)起来,再嵌入(embed)某个应用程序中,从而可以得到具有声音、影像、图像、动画、文字等各种信息的集合式的文件。OLE技术是Microsoft公司对象技术的战略,它把多个应用程序合为一体,将每个应用程序看作是一个对象进行链接和嵌入,是一种应用程序一体化的技术。利用OLE技术,可以方便地建立复合式文档(compounddocument),这种文档由来自多个不同应用程序的对象组成,文档中的每个对象都与原来的应用程序相联系,并可执行与原来应用程序完全相同的操作。动态链接库(DLL)VisualBasic是一种高级程序设计语言,不具备低级语言的功能,对访问机器硬件的操作不太容易实现。但它可以通过动态链接库技术将C/C++或汇编语言编写的程序加入到VisualBasic应用程序中,可以像调用内部函数一样调用其他语言编写的函数。此外,通过动态链接库,还可以调用Windows应用程序接口(API)函数,实现SDK所具有的功能。1.3 本文所做工作引言部分介绍了本系统的课题来源以及对数据库开发工具的选择。第二章介绍了数据库的发展,关系数据库,数据库体系结构,并系统介绍了SQL语言,为设计和理解应用程序做了铺垫。第三章系统介绍了VisualBasic6.0及其部分控件,SQL语言在VisualBasic6.0中的应用,以及Access等。第四章是本文的主体,按照软件工程的要求,从需求分析开始,经过概要设计最后到详细设计,完成对整个系统的设计。第五章根据第四章的设计结果利用Access2000和VisualVB仓库管理系统毕业论文 VB仓库管理系统毕业论文Basic6.0进行了具体的窗体和应用程序设计。总结部分介绍了设计体会和编程体会,并指出了系统设计中的不足和改进的方向第二章   数据库概论§2.1    数据库的发展数据库处理在信息系统的研究中一直是非常重要的主题,然而,近年来,随着WorldWideVB仓库管理系统毕业论文 VB仓库管理系统毕业论文Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。数据库技术能使Internet应用超越具有早期应用特点的简单的发布。同时,Internet技术提供了一种向用户发布数据库内容的标准化的访问方法。这些技术没有脱离经典数据库技术的要求。它们只是加重了数据库技术的重要性。数据库的设计和开发及包括艺术有包括工程。理解用户的需求,然后,把它们转变为有效的数据库设计是一个艺术过程。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用,是一个工程过程。数据库的目的是帮助人们跟踪事务。经典的数据库应用涉及诸如订单、顾客、工作、员工、学生、电话之类的项,或其它数据量较大、需要密切关注的事务。最近,由于数据库的普及,数据库技术已经被应用到了新的领域,诸如用于Internet的数据库或用于公司内联网的数据库。数据库也被越来越多地应用于生成和维护多媒体应用程序上。计算机的数据处理应用,首先要把大量的信息以数据形式存放在存储器中。存储器的容量、存储速率直接影响到数据管理技术的发展。从1956年生产出第一台计算机到现在,存储器的发展,为数据库技术提供了良好的物质基础。使用计算机以后,数据处理的速度和规模,无论是相对于手工方式,还是机械方式,都有无可比拟的优势。通常在数据处理中,计算是比较简单的而数据的管理却比较复杂。数据管理是指数据的收集、整理、组织、存储、维护、检索、传送等操作,这部分操作是数据处理业务的基本环节,而且是任何数据处理业务中必不可少的共有部分。数据管理技术的优劣,将直接影响数据处理的效率。2.1.1 数据库的发展数据管理技术的发展,与硬件(主要是外存)、软件、计算机应用的范围有密切的联系。数据管理技术的发展经过三个阶段:人工管理阶段、文件系统阶段和数据库阶段。人工管理阶段和文件系统阶段都有着相当多的缺陷,诸如数据冗余性,数据不一致性以及数据联系弱等等。也正是由于这些原因,促使人们研究新的数据管理技术,从而产生了数据库技术。20世纪60年代末发生的三件大事,层次模型IMS系统的推出、关于网状模型DBTG报告的发表以及关于关系模型论文的连续发表标志着数据管理技术进入数据库阶段。进入70年代以后,数据库技术得到迅速发展,开发了许多有效的产品并投入运行。数据库系统克服了文件系统的缺陷,提供了对数据更高级更有效的管理。当进入数据库阶段后,随着数据管理规模一再扩大,数据量急剧增加,为了提高效率,开始时,人们只是对文件系统加以扩充,在应用文件中建立了许多辅助索引,形成倒排文件系统。但这并不能最终解决问题。在20世纪60年代末,磁盘技术取得重要进展,具有数百兆容量和快速存取的磁盘陆续进入市场,成本也不高,为数据库技术的产生提供了良好的物质条件。2.1.2 数据库阶段的特点(1)减少数据的重复(RedundancycanbeVB仓库管理系统毕业论文 VB仓库管理系统毕业论文reduced)当在一个非数据库系统当中,每一个应用程序都有属于他们自己的文件,由于无法有系统建立的数据,因此常常会造成存储数据的重复与浪费。例如:在一家公司当中,人事管理程序与工资管理程序或许都会使用到职员与部门的信息或文件,而我们可以运用数据库的方法,把这两个文件整理起来,以减少多余的数据,过度地占用存储空间。(2)避免数据的不一致(Inconsistencycanavoid)本项的特色,可以说是延伸前项的一个特点,要说明这样的一个现象,我们可以从下面这个实例来看:若是在同一家公司当中,职员甲在策划部门工作,且职员甲的记录同时被存放在数据库的两个地方,而数据库管理系统却没有对这样重要的情况加以控制,当其中一条数据库被修改时,便会造成数据的不一致,但是,对于一个健全的数据库管理系统而言,将会对这样的情况加以控制,但有时并不需要刻意消除这种情形,应当视该数据库的需求与效率来决定。                      (3)数据共享(Datashared)对于数据共享的意义,并不是只有针对数据库设计的应用程序,可以使用数据库中的数据,对于其他撰写好的应用程序,同样可以对相同数据库当中的数据进行处理,进而达到数据共享的目的。(4)强化数据的标准化(Standardcanbeenforced)由数据库管理系统,对数据做出统筹性的管理,对于数据的格式与一些存储上的标准进行控制,如此一来,对于不同的环境的数据交换(DataInterchange)上将有很大的帮助,也能提高数据处理的效率。(5)实践安全性的管理(Securityrestrictioncanbeapplied)通过对数据库完整的权限控制,数据库管理者可以确认所有可供用户存取数据的合法途径渠道,并且可以事先对一些较重要或关键性的数据进行安全检查,以确保数据存取时,能够将任何不当损毁的情形降至最低。(6)完整性的维护(IntegritycanbeVB仓库管理系统毕业论文 VB仓库管理系统毕业论文maintained)所谓完整性的问题,就是要确认某条数据在数据库当中,是正确无误的。正如(2)所述,若是无法控制数据的不一致性,便会产生完整性不足的问题,所以,我们会发现,当数据重复性高的时候,数据不完整的情形也会增加,当然,若是数据库的功能完整,将会大大地提高数据完整性,也会增加数据库的维护能力与维护简便性。(7)需求冲突会获得平衡(Conflictingrequirementscanbebalance)在一个较大型的企业当中,用户不同的需求,往往会造成系统或数据库在设计上的困扰,但是一个合适的数据库系统,可以通过数据库管理员的管理,将会有效地整理各方面的信息,对于一些较重要的应用程序,可以适时地提供较快速的数据存取方法与格式,以平衡多个用户在需求上的冲突。上述七个方面构成了数据库系统的主要特征2.1.3 VB仓库管理系统毕业论文 VB仓库管理系统毕业论文数据库技术从文件系统发展到数据库系统是信息处理领域的一个重大变化。在文件系统阶段,人们关注的中心问题是系统功能的设计,因而程序设计处于主导地位,数据只起着服从程序需要的作用。在数据库方式下,信息处理观念已为新体系所取代,数据占据了中心位置。数据结构的设计成为信息系统首先关心的问题,而利用这些数据的应用程序设计则退居到以既定的数据结构为基础的外围地位。目前世界上已有数百万个数据库系统在运行,其应用已经深入到人类社会生活的各个领域,从企业管理、银行业务、资源分配、经济预测一直到信息检索、档案管理、普查统计等。并在通信网络基础上,建立了许多国际性的联机检索系统。我国20世纪90年代初在全国范围内装备了12个以数据库技术为基础的大型计算机系统,这些系分布在邮电、计委、银行、电力、铁路、气象、民航、情报、公安、军事、航天和财税等行业。数据库技术还在不断的发展,并且不断地与其它计算机技术相互渗透。数据库技术与网络通信技术相结合,产生了分布式数据库系统。数据库技术与面向对象技术相结合,产生了面向对象数据库系统。在数据库技术中有四个名词,其概念应该分清。(1)数据库(database,DB):DB是统一管理的相关数据的集合。DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。(2)数据库管理系统(DatabaseManagementSystem,DBMS):DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型和面向对象型DBMS。(3)数据库系统(DatabaseSystem,DBS):DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。(4)数据库技术:这是一门研究数据库的结构、存储、管理和使用的软件学科。数据库技术是操作系统的文件系统基础上发展起来的。而DBMS本身要在操作系统的支持下才能工作。数据库不仅用到数据结构的知识,而且丰富了数据结构的内容。在关系数据库中要用到集合论、数理逻辑的理论。因此,数据库技术是一门综合性较强的学科。§2.2数据库理论基础2.2.1 数据库模型从20世纪50年代中期开始,计算机的应用由科学研究部门逐步扩展到企业、行政部门。至60年代,数据处理成为计算机的主要应用。数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系和实用技术。模型是对现实世界的抽象。在数据库技术中,我们用模型的概念描述数据库的结构与语义,对现实世界进行抽象,表示实体类型及实体间联系的模型称为“数据模型”VB仓库管理系统毕业论文 VB仓库管理系统毕业论文。目前广泛作用的数据模型可分为两种类型。一种是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构,这类模型称为“概念数据模型”。要领模型用于建立信息世界的数据模型,强调其语义表达功能,应该概念简单、清晰,易于用户理解,它是现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具。这一其中著名的模型是“实体联系模型”。另一种数据模型是直接面向数据库的逻辑结构,它是现实世界的第二层抽象。这类模型涉及到计算机系统和数据库管理系统,又称为“结构数据模型”。例如,层次、网状、关系、面向对象等模型。这类模型有严格的形式化定义,以便于在计算机系统中实现。(1)层次模型。用树型结构表示实体类型及实体间联系的数据模型。树的结点是记录类型,每个非根结点有且只有一个父结点。上一层记录类型和下一层记录类型间联系是1∶N联系。层次模型的特点是记录之间的联系通过指针实现,查询效率较高。但层次模型有两个缺点:一是只能表示1∶N联系,虽然有多种辅助手段实现了M∶N联系,但都较复杂,用户不易掌握,二是由于树型结构层次顺序的严格和复杂,引起数据的查询和更新操作也很复杂,因此,编写应用程序也很复杂。(2)网状模型。用有向图结构表示实体类型及实体间联系的数据模型。。1969年DBTG报告提出的数据模型是网状模型的主要代表。有向图中的结点是记录类型,有向边表示从箭尾一端的记录类型到箭头一端的记录类型间联系是1∶N联系。网状模型的特点:记录之间联系通过指针实现,M∶N联系也容易实现(每个M∶N联系可拆成两个1∶VB仓库管理系统毕业论文 VB仓库管理系统毕业论文N联系),查询效率较高。网状模型的缺点是编写应用程序比较复杂,程序员必须熟悉数据库的逻辑结构。由于层次系统和网状系统的应用程序编制比较复杂,因此,从20世纪80年代中期起,其市场已被关系系统所取代。但是使用这两种模型建立起的许多数据库仍然在正常运转,只是在外层加了个关系数据库语言的接口。网状模型有许多成功的产品,20世纪70年代的产品大部分网状系统,例如,Honeywell公司的IDS/Ⅱ、HP公司的IMAGE/3000、Burroughs公司的DMSⅡVB仓库管理系统毕业论文 VB仓库管理系统毕业论文、Umivac公司的DMS1100、Cullinet公司的IDMS、Cimcom公司的TOTAL等(3)关系模型。关系模型的主要是用二维表格结构表达实体集,用外键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。关系模型是数学化模型。SQL语言是关系数据库的标准化语言,已得到了广泛的应用。20世纪70年代对关系数据库的研究主要集中在理论和实验系统的开发方面。80年代初才形成产品,但很快得到广泛的应用和普及,并最终取代了层次、网状数据库产品。现在市场上典型的关系DBMS产品有DB2、ORACLE、SYBASE、INFORMIX和微机型产品Foxpro、Access等。关系模型和网状、层次模型的最大区别是:关系模型用表格数据而不是通过指针链来表示和实现实体间联系。关系模型的数据结构简单、易懂。只需用简单的查询语句就可对数据库进行操作。关系模型是数学化的模型,可把表格看成一个集合,因此集合论、数理逻辑等知识可引入到关系模型中来。关系模型已是一个成熟的有前途的模型,已得到广泛应用。(4)面向对象模型。目前,关系数据库的使用已相当普遍,但是,现实世界中仍然存在着许多含有复杂数据结构的应用领域,例如,CAD数据、图形数据等,而关系模型在这方面的处理能力就显得力不从心。因此,人们需要更高级的数据库技术来表达这类信息。面向对象的概念最早出现在程序设计语言中,随后迅速渗透到计算机领域的每一个分支。面向对象数据库是面向对象概念与数据库技术相结合的产物。面向对象模型能完整地描述现实世界的数据结构,具有丰富的表达能力,但模型相对较复杂,涉及的知识面也广,因此面向对象数据库尚未达到关系数据库那样的普及程度。2.2.2 数据库体系结构数据库的体系结构分三级:内部级(internal),概念级(conceptual)和外部级(external)。这个三级结构有时也称为“三级模式结构”,或“数据抽象的三个级别”,最早是在1971年通过的DBTG报告中提出,后来收入在1975年的美国ANSI/SPARC报告中。虽然现在DBMS的产品多种多样,在不同的操作系统支持下工作,但是大多数系统在总的体系结构上都具有三级模式的结构特征。从某个角度看到的数据特性称为“数据视图”(dataview)。外部级最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称为“外模式”。概念级涉及到所有用户的数据定义,是全局的数据视图。全局数据视图的描述称为“概念模式”。内部级最接近于物理存储设备,涉及到实际数据存储的结构。物理存储数据视图的描述称为“内模式”VB仓库管理系统毕业论文 VB仓库管理系统毕业论文。数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。三级结构之间往往差别很大,为了实现这三个抽象级别的联系和转换,DBMS在三级结构之间提供两个层次的映像(mappings):外模式/模式映像,模式/内模式映像。此处模式是概念模式的简称。2.2.3 数据的独立性由于数据库系统采用三级模式结构,因此系统具有数据独立性的特点。在数据库技术中,数据独立性是指应用程序和数据之间相互独立,不受影响。数据独立性分成物理数据独立性和逻辑数据独立性两级。(1)物理数据独立性如果数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化,那么模式/内模式映像也要进行相当的修改,使概念模式尽可能保持不变。也就是对内模式的修改尽量不影响概念模式,当然,对于外模式和应用程序的影响更小,这样,我们称数据库达到了物理数据独立性。(2)逻辑数据独立性如果数据库的概念模式要进行修改,譬如增加记录类型或增加数据项,那么外模式/模式映像也要进行相应的修改,使外模式尽可能保持不变。也就是对概念模式的修改尽量不影响外模式和应用程序,这样,我们称数据库达到了逻辑数据独立性。现有关系系统产品均提供了较高的物理独立性,而对逻辑独立性的支持尚有欠缺,例如,对外模式的数据更新受到限制等。2.2.4 VB仓库管理系统毕业论文 VB仓库管理系统毕业论文范式建立起一个良好的数据指标体系,是建立数据结构和数据库的最重要的一环。一个良好的数据指标体系是建立DB的必要条件,但不是充分条件。我们完全可以认为所建指标体系中的一个指标类就是关系数据库中的一个基本表,而这个指标类下面的一个个具体指标就是这个基本表中的一个字段。但如果直接按照这种方式建库显然还不能算最佳。对于指标体系中数据的结构在建库前还必须进行规范化的重新组织。在数据的规范化表达中,一般将一组相互关联的数据称为一个关系(relation),而在这个关系下的每个数据指标项则被称为数据元素(dataelement),这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段(field)。规范化表达还规定在每一个基本表中必须定义一个数据元素为关键字(key),它可以唯一地标识出该表中其它相关的数据元素。在规范化理论中表是二维的,它有如下四个性质:在表中的任意一列上,数据项应属于同一个属性(如图中每一列都存放着不同合同记录的同一属性数据)。表中所有行都是不相同的,不允许有重复组项出现(如图中每一行都是一个不同的合同记录)。在表中,行的顺序无关紧要(如图中每行存的都是合同记录,至于先放哪一个合同都没关系)。在表中,列的顺序无关紧要,但不能重复(如图中合同号和合同名谁先谁后都没关系,但二者不可重复或同名)。在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常用系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……,依此类推。第一范式(firstnormalform,简称1stNF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,1stVB仓库管理系统毕业论文 VB仓库管理系统毕业论文NF实际上是没有什么意义的。因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1stNF。第二范式(secondnormalform,简称2ndNF)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primarykey),其它数据元素与主关键字一一对应。例如,在图l9.7中如果我们将合同号定义为主关键字(其它数据元素中的记录数据都有可能重名,故不能作为主关键字),故只要知道了一个合同记录的合同号,就可以唯一地在同一行中找到该合同的任何一项具体信息。通常我们称这种关系为函数依赖(functionaldependence)关系。即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。第三范式(thirdnormalform,简称3rdNF)就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函数关系。也就是说对于一个满足了2ndNF的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键宇数据元素的现象,必须加以消除。为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。§2.3SQL语言基础2.3.1 SQL简介用户对数据库的使用,是通过数据库管理系统提供的语言来实现的。不同的数据库管理系统提供不同的数据库语言。关系数据库管理系统几乎都提供关系数据库标准语言——SQL。SQL的全称是StructuredQueryVB仓库管理系统毕业论文 VB仓库管理系统毕业论文Language,即结构化查询语言。SQL语句可以从关系数据库中获得数据,也可以建立数据库、增加数据、修改数据。1986年ANSI采用SQL语言作为关系数据库系统的标准语言,后被国际化标准组织(ISO)采纳为国际标准。SQL语言使用方便、功能丰富、简洁易学,是操作数据库的工业标准语言,得到广泛地应用。例如关系数据库产品DB2、ORACLE等都实现了SQL语言。同时,其它数据库产品厂家也纷纷推出各自的支持SQL的软件或者与SQL的接口软件。这样SQL语言很快被整个计算机界认可。SQL语言是一种非过程化语言,它一次处理一个记录集合,对数据提供自动导航。SQL语言允许用户在高层的数据结构上工作,而不对单个记录进行操作。SQL语言不要求用户指定数据的存取方法,而是使用查询优化器,由系统决定对指定数据存取的最快速手段。当设计者在关系表上定义了索引时,系统会自动利用索引进行快速检索,用户不需知道表上是否有索引或者有什么类型的索引等细节。SQL语言可以完成许多功能,例如:●查询数据●在数据库表格中插入、修改和删除记录●建立、修改和删除数据对象●控制对数据和数据对象的存取●确保数据库的一致性和完整性等2.3.2 SQL查询数据查询是关系运算理论在SQL语言中的主要体现,SELECT语句是SQL查询的基本语句,当我们在对一个数据库进各种各样的操作时,使用的最多的就是数据查询,在以SQL为基础的关系数据库中,使用的最多的就是SELECT查询语句。SELECT语句的完整句法如下:SELECTVB仓库管理系统毕业论文 VB仓库管理系统毕业论文目标表的列名或列表达式序列FROM  基本表和(或)视图序列[WHERE行条件表达式][GROUPBY列名序列][HAVING组条件表达式][ORDERBY列名[ASC│DEAC]…]我在SELECT语句中还使用了大量的保留字和通配符以进行各种各样的条件查询。在系统中有大量的查询按钮,其使用了大量的查询语句,而且这些查询语句大部分使用的是模糊查询,所以大量的使用了模式匹配符LIKE(判断值是否与指定的字符通配格式相符)。在包含LIKE的查询语句中可以使用两个通配符:%(百分号):与零个或多个字符组成的字符串匹配;_(下划线):与单个字符匹配。系统中的条件判断往往包含多个条件,这时就需要使用逻辑运算符NOT、AND、OR(用于多条件的逻辑连接),谓词ALL以及保留字DISTINCT等等。做为SELECT语句还有很多的使用方法,这里就不再叙述。2.3.3 SQL数据更新使用数据库的目的是为了有效地管理数据,而数据的插入、删除和修改则是必不可少的一个功能。在本系统中就大量地使用了数据插入、删除和修改这三种操作,现做一个简单地介绍。●数据插入往数据库的基本表中插入数据使用的是INSERT语句,其方式有两种:一种是元组值的插入,另一种是查询结果的插入。在本系统中使用的是前一种方式,其句法如下:INSERTINTO基本表名(列表名)VALUES(元组值)●VB仓库管理系统毕业论文 VB仓库管理系统毕业论文数据删除往数据库的基本表中删除数据使用的是DELETE语句,其句法如下:DELETEFROM基本表名[WHERE条件表达式]在些作一点说明,删除语句实际上是“SELECT*FROM基本表名[WHERE条件表达式]”和DELETE操作的结合,每找到一个元组,就把它删除。此外,DELETE语句只能从一个基本表中删除元组,WHERE子句中条件可以嵌套,也可以是来自几个基本表的复合条件。●数据修改当需要修改基本表中元组的某些列值时,可以用UPDATE语句实现,其句法如下:UPDATE基本表名SET列名=值表达式[,列名=值表达式…][WHERE条件表达式]在Delphi中使用SQL语句是很方便的,一般来说,都是通过TQuery组件来使用SQL语言的。有一点要进行说明,虽然通过TQuery组件来使用SQL语言很方便,但考虑到自己对不同组件的理解程度、个人习惯以及其它各个方面,在本系统中我采用的是ADO组件来对数据库进行操作。最简单的方法比如在TADOQuery组件的SQL属性中就可以键入SQL语句,至于详细的使用方法在后面进行介绍。 第三章VisualBasic下的控件所实现的功能Windows下的VisualBasic应用程序基本的构建块是用户所创建的对象,每一个对象都具有一些特性和行为(属性、事件和方法)。开发人员可以最有效利用所创建的每一个对象。使用应用程序具有可通用性可说扩展性和强有力的功能。VisualBasicVB仓库管理系统毕业论文 VB仓库管理系统毕业论文应用由一系列对象组成,包括有函数、菜单、函数、结构和数据窗口、用户对象、用户事件等等,对象中又包含若干控件如命令按钮、单行编辑器等这些对象和控件都可在许多应用中重复使用。3.1实现菜单选项菜单是程序最重要的特性之一,大多数程序都依赖一个定义良好的菜单使程序易于使用和维护,VisualBasic也提供了强大的创建菜单功能是程序更加标准。您可以使用VisualBasic的ApplicationWizard也可以使用VisualBasic的菜单编辑器建立菜单或者修改已经存在的菜单。3.2实现工具栏CoolBar控件与Office97种看到的CoolBar是类似的。CoolBar就是一个可以在窗体上浮动的工具,同时也是其他ActiveX的容器。通过在CoolBar中迁入其他空间你局可以向用户提供更好的灵活性和义用性。Toolbar是工具条控件,是实现工具条的主体。其中的按钮可以显示图像和标题,并按功能分组或加入分隔符,还可以围棋设置鼠标停留在其上显示的提示字符。Toolbar也是一个控件容器且具有Style属性,并可以为其增加下拉按钮和平滑按钮等。选择“工程”下拉菜单中的“部件”选项,显示“部件”对话框。在“控件”选项卡列表中选择“MicrosoftWindowsCommonControls6.0”后工具相中增加改控件。其属性及对象如下:1.Align属性定义工具条在窗体中的位置2.ToolTipText属性是字符串类型,定义控件的提示字符3.Style属性定义按钮外观。VB仓库管理系统毕业论文 VB仓库管理系统毕业论文4.ImageList属性定义与数据条对应的ImageList控件名,该控件定义工具条按钮显示的图像。5.HotImangeList属性设置一个ImageList控件名,该控件定义按钮获得热点时显示的图像。6.DisabledImageList属性定义工具条按钮无效时显示的图像。创建工具条包括ImageList和Toolbar控件ImageList用于为其他控件提供图像库,将ImageList控件加入到工具箱的操作于前述Toolbar控件相同。3.3帮助专业水平的软件通常都带有联机帮助功能。无论写出来的程序是要给大量的用户使用,还是仅仅局限于公司内部有限的使用者,我们都应该为用户提供详细的、易于理解的联机帮助文档。微软的HelpWorkshop4.0是一套独立于VisualBasic的用来协助我们创建、运行于32位Windows操作系统下的帮助文件的工具。使用它我们可以为我们编写的应用程序生成一组帮助文件。3.4关于版本为了是程序显得更具有专业风格,首先可以在其中加入通常的应用程序信息。这些信息包括公司名称、版本号、修订号以及其他类似信息。VisualBasic允许你使用APP对象来保存这些信息,APP对象是一个预定义对象,不需要在程序中创建它。APP对象的大多数属性被应用程序用来提供常规的信息,通过使用这些APP提供的属性,可以在应用程序和用户之间交流重要信息,在项目属性框中可以设置它的属性。第四章系统总体规划VB仓库管理系统毕业论文 VB仓库管理系统毕业论文4.1系统功能1.基础资料设置;2.单据处理;3.统计查询;4.系统维护;5.退出系统。4.2系统功能结构图仓库管理系统基础资料设置单据处理统计查询系统维护部员物物供入出已操门工品品应库库过作设设类设商单单账员置置别置设处处单设VB仓库管理系统毕业论文 VB仓库管理系统毕业论文设置理理据置置查询系统功能结构图1、基础资料设置2、单据处理3.统计查询;4.系统维护;6.退出系统。4.3具体操作步骤一览表:模块名称功能说明1基本资料设置部门,员工,物品类别,物品,供应商信息设置2单据处理入库单,出库,调整处理。3统计查询查询分为采购,入库,出库单查询。4系统维护操作员设置6退出系统第五章.系统具体实现5.1用户界面的实现___主界面具体实现见下图VB仓库管理系统毕业论文 VB仓库管理系统毕业论文在主界面中可以对基础资料进行设置,单据处理,统计查询,系统维护,退出系统几项进行操作。具体详细操作在各界面中有详细说明。 5.2基础资料设置的实现VB仓库管理系统毕业论文 VB仓库管理系统毕业论文在基础资料设置中主要实现员工,部门,物品类别,供应商,物品的添加,编辑,查询,删除等功能,可以对各类信息时行初始化,以实现方便录入与管理。员工设置项分类为:员工编号,所属部门,员工编号。部门设置项分类为:部门编号,部门名称物品类别项分类为:类别编号,类别名称。供应商设置分类为:供应商编号,部门名称。物品设置分类为:物品编号,物品名称,规格型号,物品类别,单位。——数据库设置(见下图数据库表)数据库里存储了员工,详细信息。包括:员工姓名,员工编号,物品编号,物品名称等列名(中文)数据类型宽度小数点位数是否为空员工编号NameDate8No员工姓名VB仓库管理系统毕业论文 VB仓库管理系统毕业论文CodeInteger6No所属单位SexDate2No还有物品信息表,入库表,出库表,盘点表,用户管理表等。图35.3与VB的连接VisualBasic提供了与底层数据库系统紧密的连接。VisualBasic支持不同的关系数据库管理系统并充分发挥每一个数据库的特长。生成独立应用或脱离服务器运行的服务以上的应用,VisualBasic连接数据库的方式有两种:·通过使用VisualBasic的ADO控件。·通过使用由VisualBasic提供的专用的直接与数据库相连的接口第六章结束语VB仓库管理系统毕业论文 VB仓库管理系统毕业论文本系统是一个面向小型企业,具有一定实用性的数据库信息管理系统。它主要完成对仓库的一系列管理,包括入库、出库、库存以及员工和供应商信息管理。本系统采用当前流行的面向对象的开发工具—VISUALBASIC6.0来完成整个系统的设计,在数据库的设计上利用了Access的便利性和实用性。本系统具有相当的实用功能。在查询方面,系统实现了多条件任意字段的模糊查询,同时在分类查询上实现了动态生成,系统可以自动识别用户不同的输入。在物品入库、出库和库存三者之间建立了良好的链接关系,某一部分地修改均会自动引发系统对与其相关的部分进行连锁修改。在用户管理方面,系统较好地实现了用户注册,用户注销和密码修改等各项功能。系统在设计过程中不可避免地遇到了各种各样的问题,由于整个系统完全都是由个人设计的,有关VISUALBASIC6.0许多细节问题都要靠自己去摸索,加之本人水平有限,并没有完全地理解VISUALBASIC6.0的强大功能,而且还存在着许多不足之处。如:※ 受开发条件和开发时间的限制,本系统只利用了本地数据库Access,它同应用程序处于同一系统中,能存储的数据量也有一定限制,并没有发挥出VISUALBASIC6.0其数据库方面的优势;※ 报表打印功能尚不够全面完善,不能实现动态报表;※ 在一些数据输入时没有及时的进行数据格式校验,不能保证数据输入的绝对正确性。※ VB仓库管理系统毕业论文 VB仓库管理系统毕业论文由于时间关系,系统功能实现不够完善,使用不是很方便,比如,没有实现多条记录的连锁删除和添加以及数据的导入功能。这些都是需要完善的地方,该系统离实际使用也还有相当的距离,需要我进行不断地补充和完善。通过本次毕业设计我学到了不少新的东西,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。 致  谢论文完成的前提是老师给我提供了舒适的工作、学习环境,并给予我悉心的关怀与指导。在些表示衷心地感谢。老师认真负责的工作态度、严谨的治学风格,使我深受启发;开发的同时,和同学们之间的相互探讨也使我获益匪浅。半年时间内,我除基本学会开发数据库外更重要的是学到了兢兢业业,奋发向上的精神,这种精神是我今后人生前进道路上的一种力量。所以我再次感谢老师和我的同学们。  第七章参考文献[1]VisualBasic6.0使用指南作者:BobReselman,RichardPeasley,WaynePruchniak.出版社:电子工业出版社[2]中文版MicrosoftOffice97自学通作者:NedSnell出版社:机械工业出版社[3]VisualBasic6.0中文版控件大全作者:MicrosoftVB仓库管理系统毕业论文 VB仓库管理系统毕业论文出版社;电子工业出版社[4]中文Access200024学时教程作者:CraigEddy,TimothyBuchanan出版社:机械工业出版社第八章 程序源代码、各功能模块的界面图登录界面源代码及界面图:OptionExplicitPublicLoginSucceededAsBooleanPrivateSubcmdCancel_Click()"设置全局变量为false"不提示失败的登录LoginSucceeded=FalseMe.HideEndSubPrivateSubcmdOK_Click()"检查正确的密码VB仓库管理系统毕业论文 VB仓库管理系统毕业论文IfNotIsNull(Me.DCboUserName.SelectedItem)ThenIftxtPassword=Me.DCboUserName.BoundTextThen"将代码放在这里传递"成功到calling函数"设置全局变量时最容易的LoginSucceeded=TruestrCurUser=Me.DCboUserName.TextMe.HideElseMsgBox"无效的密码,请重试!",,"登录"txtPassword.SetFocusSendKeys"{Home}+{End}"EndIfElseMsgBox"请选择用户名!",,"登录"Me.DCboUserName.SetFocusEndIfEndSub主界面源代码与界面图:VB仓库管理系统毕业论文 VB仓库管理系统毕业论文OptionExplicitPrivatersSysAsADODB.RecordsetPrivatecmSysAsADODB.CommandPublicFunctionconnstring()AsStringconnstring="Provider=Microsoft.Jet.OLEDB.4.0;Persist"&_"SecurityInfo=False;DataSource="&App.Path&"/db_jxc.mdb""Conjxc.ConnectionString=strConnect""Provider=Microsoft.Jet.OLEDB.4.0;Persist"&_""SecurityInfo=False;DataSource="&App.Path&"datadb_jxc.mdb""Conjxc.ConnectionString=strConnectEndFunctionPrivateSubMDIForm_Load()VB仓库管理系统毕业论文 VB仓库管理系统毕业论文DimstrSQLAsString"DimrsSysAsADODB.RecordsetDimConjxcAsADODB.ConnectionSetConjxc=NewADODB.ConnectionConjxc.ConnectionString=connstringDimrsSysAsADODB.RecordsetConjxc.Open"adOpenDynamic,adLockOptimisticstrSQL="selectofflinefromr_parameter"SetrsSys=NewADODB.RecordsetrsSys.OpenstrSQL,Conjxc,adOpenKeyset,adLockOptimistic"rsSys.MoveFirstIfrsSys!offlineThenMe.mnuAct_dj.Enabled=FalseMe.mnuSql.Enabled=FalseMe.mnuReport.Enabled=FalseMe.mnuSys_trans.Enabled=FalseMe.mnuSys_start.Enabled=TrueMe.mnuSys_begqty.Enabled=TrueElseMe.mnuAct_dj.Enabled=TrueMe.mnuSql.Enabled=TrueMe.mnuReport.Enabled=TrueVB仓库管理系统毕业论文 VB仓库管理系统毕业论文Me.mnuSys_trans.Enabled=TrueMe.mnuSys_start.Enabled=FalseMe.mnuSys_begqty.Enabled=FalseEndIfrsSys.Close"SetcmSys=NewADODB.Command"cmSys.ActiveConnection=DEjxc.Conjxc"cmSys.CommandType=adCmdTextEndSub"PrivateSubMDIForm_Load()"DimstrSQLAsString"DimConjxcAsADODB.Connection"SetConjxc=NewADODB.Connection"Conjxc.ConnectionString=connstring"strSQL="selectofflinefromr_parameter""SetrsSys=NewADODB.Recordset"rsSys.OpenConjxc,adOpenDynamic,adLockOptimistic"rsSys.MoveFirst"IfrsSys!offlineThen"Me.mnuAct_dj.Enabled=False"Me.mnuSql.Enabled=FalseVB仓库管理系统毕业论文 VB仓库管理系统毕业论文"Me.mnuReport.Enabled=False"Me.mnuSys_trans.Enabled=False"Me.mnuSys_start.Enabled=True"Me.mnuSys_begqty.Enabled=True"Else"Me.mnuAct_dj.Enabled=True"Me.mnuSql.Enabled=True"Me.mnuReport.Enabled=True"Me.mnuSys_trans.Enabled=True"Me.mnuSys_start.Enabled=False"Me.mnuSys_begqty.Enabled=False"EndIf"rsSys.Close"SetcmSys=NewADODB.Command"cmSys.ActiveConnection=DEjxc.Conjxc"cmSys.CommandType=adCmdText"EndSubPrivateSubMDIForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)CallmnuExit_ClickIfintNumWindows>0ThenVB仓库管理系统毕业论文 VB仓库管理系统毕业论文Cancel=TrueEndIfSetrsSys=NothingSetcmSys=NothingEndSubPrivateSubmnuEdit_other_Click()FrmOtherEdit.ShowEndSubPrivateSubmnuEdit_ps_Click()FrmPsEdit.ShowEndSubPrivateSubmnuEdit_sales_Click()FrmSaleEdit.ShowEndSubPrivateSubmnuExit_Click()IfintNumWindows=0ThenUnloadMeElseVB仓库管理系统毕业论文 VB仓库管理系统毕业论文MsgBox"请关闭所有子程序后再关闭该主程序!",vbCritical,"提示"EndIfEndSubPrivateSubmnuRec_other_Click()FrmOtherChk.ShowEndSubPrivateSubmnuRec_ps_Click()FrmPsChk.ShowEndSubPrivateSubmnuRec_sales_Click()FrmSaleChk.ShowEndSubPrivateSubmnuReport_DetailUse_Click()FrmRptDetUse.ShowEndSubPrivateSubmnuReport_Mat_Click()FrmRptMat.ShowVB仓库管理系统毕业论文 VB仓库管理系统毕业论文EndSubPrivateSubmnuReport_TotalUse_Click()FrmRptTotUse.ShowEndSubPrivateSubmnuReport_TotalYearUse_Click()FrmRptYearUse.ShowEndSubPrivateSubmnuSet_department_Click()FrmSetDep.ShowEndSubPrivateSubmnuSet_employee_Click()FrmSetEmp.ShowEndSubPrivateSubmnuSet_product_Click()FrmSetPro.ShowEndSubVB仓库管理系统毕业论文 VB仓库管理系统毕业论文PrivateSubmnuSet_protype_Click()FrmSetPrTy.ShowEndSubPrivateSubmnuSet_supplier_Click()FrmSetSup.ShowEndSubPrivateSubmnuSql_djother_Click()FrmOtherSql.ShowEndSubPrivateSubmnuSql_djps_Click()FrmPsSql.ShowEndSubPrivateSubmnuSql_djsales_Click()FrmSaleSql.ShowEndSubPrivateSubmnuSys_begqty_Click()FrmSetMattmp.ShowVB仓库管理系统毕业论文 VB仓库管理系统毕业论文EndSubPrivateSubmnuSys_delete_Click()DimintDelAsIntegerDimstrSQLAsStringintDel=MsgBox("确认要删除所有资料码?",vbInformation+vbYesNo,"删除确认")IfintDel=vbYesThenstrSQL="deletefromdepartment"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="deletefromemployee"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="deletefrommat_detail"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="deletefrommat_head"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="selectp_id,qty,priceintomat_tmpfrommat_head"cmSys.CommandText=strSQLVB仓库管理系统毕业论文 VB仓库管理系统毕业论文cmSys.ExecutestrSQL="droptablemat_head"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="selectp_id,qty,priceintomat_headfrommat_tmp"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="updatemat_headsetqty=0,price=0"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="droptablemat_tmp"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="deletefromproduct"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="deletefromproduct_type"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="deletefromsupplier"cmSys.CommandText=strSQLcmSys.ExecuteVB仓库管理系统毕业论文 VB仓库管理系统毕业论文strSQL="deletefromorder_detail_a"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="deletefromorder_detail_b"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="deletefromps_head_a"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="deletefromps_head_b"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="deletefromother_head_a"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="deletefromother_head_b"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="deletefromsale_detail_a"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="deletefromsale_detail_b"VB仓库管理系统毕业论文 VB仓库管理系统毕业论文cmSys.CommandText=strSQLcmSys.ExecutestrSQL="deletefromsale_head_a"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="deletefromsale_head_b"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="updater_parametersetoffline=true,psnumber=0"cmSys.CommandText=strSQLcmSys.ExecuteMsgBox"资料删除完毕!",vbInformation,"资料删除"EndIfMe.mnuAct_dj.Enabled=FalseMe.mnuSql.Enabled=FalseMe.mnuReport.Enabled=FalseMe.mnuSys_trans.Enabled=FalseMe.mnuSys_start.Enabled=TrueMe.mnuSys_begqty.Enabled=TrueEndSubPrivateSubmnuSys_start_Click()VB仓库管理系统毕业论文 VB仓库管理系统毕业论文DimstrBegAsStringDimstrYear,strMonthAsStringDimstrSQLAsStringstrBeg=InputBox("请输入系统启用时间","系统启用",CStr(Date))IfIsDate(strBeg)ThenstrYear=Right(CStr(Year(CDate(strBeg))),2)strMonth=Format(CStr(Month(CDate(strBeg))),"0#")strSQL="altertablemat_headaddcolumnqty"&strYear&strMonth_&"single"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="altertablemat_headaddcolumnprice"&strYear&strMonth_&"currency"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="updatemat_headsetqty"&strYear&strMonth&"=qty,"&_"price"&strYear&strMonth&"=price"cmSys.CommandText=strSQLcmSys.ExecuteVB仓库管理系统毕业论文 VB仓库管理系统毕业论文strSQL="updater_parametersetpass_date=cdate(""&strBeg&_""),offline=false,monthdate=cdate(""&strBeg&"")"cmSys.CommandText=strSQLcmSys.ExecuteMe.mnuAct_dj.Enabled=TrueMe.mnuSql.Enabled=TrueMe.mnuReport.Enabled=TrueMe.mnuSys_trans.Enabled=TrueMe.mnuSys_start.Enabled=FalseMsgBox"系统已正式启用!",vbInformation,"系统启用"ElseMsgBox"日期格式错误!",vbCritical,"启用错误"ExitSubEndIfEndSubPrivateSubmnuSys_trans_Click()DimstrBegAsStringDimstrYear,strMonthAsStringDimstrSQLAsStringstrBeg=InputBox("请输入月终结转时间","月终结转",CStr(Date))IfIsDate(strBeg)ThenVB仓库管理系统毕业论文 VB仓库管理系统毕业论文strSQL="selectmonthdatefromr_parameter"SetrsSys=NewADODB.RecordsetrsSys.OpenstrSQL,DEjxc.Conjxc,adOpenDynamic,adLockOptimisticrsSys.MoveFirstIfFormat(CDate(strBeg),"yyyy-mm")>Format(rsSys!monthdate,"yyyy-mm")ThenstrYear=Right(CStr(Year(CDate(strBeg))),2)strMonth=Format(CStr(Month(CDate(strBeg))),"0#")strSQL="altertablemat_headaddcolumnqty"&strYear&strMonth_&"single"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="altertablemat_headaddcolumnprice"&strYear&strMonth_&"currency"cmSys.CommandText=strSQLcmSys.ExecutestrSQL="updatemat_headsetqty"&strYear&strMonth&"=qty,"&_"price"&strYear&strMonth&"=price"VB仓库管理系统毕业论文 VB仓库管理系统毕业论文cmSys.CommandText=strSQLcmSys.ExecutestrSQL="updater_parametersetmonthdate=cdate(""&strBeg&_"")"cmSys.CommandText=strSQLcmSys.ExecuteMsgBox"月份结转完毕!",vbInformation,"月终结转"ElseMsgBox"该月份已经月终结转!",vbCritical,"月终结转错误"EndIfElseMsgBox"日期格式错误!",vbCritical,"启用错误"ExitSubEndIfEndSubPrivateSubmnuSys_user_Click()FrmSetUser.ShowEndSub基础资料设置源项源代码与界面图:VB仓库管理系统毕业论文 VB仓库管理系统毕业论文注:各界面程序代码几乎相同故在论文中只取一个界面源代码OptionExplicitPrivatersDepartmentAsADODB.RecordsetPrivatestrMaxNumAsStringPrivateblnIsSQLAsBooleanPrivateSubCmdAct_Click(IndexAsInteger)OnErrorGoToErr:WithrsDepartmentSelectCaseIndexCase0VB仓库管理系统毕业论文 VB仓库管理系统毕业论文.UpdateBatch.MoveLastCase1.CancelUpdateIf.RecordCount<>0Then.MoveFirstEndIfEndSelectEndWithCallIsEdit(False)Me.DataGrid1.RefreshExitSubErr:IfErr.Number=-2147467259ThenMsgBox"部门编号重复!请重新录入新的部门编号!",vbCritical,"错误"EndIfEndSubPrivateSubCmdDep_Click(IndexAsInteger)DimintAnswerAsIntegerSelectCaseIndexCase0VB仓库管理系统毕业论文 VB仓库管理系统毕业论文CallDepAddNewCase1CallIsEdit(True)Me.txtdepartment_id.SetFocusCase2FrmSql.intNumField=2FrmSql.ShowvbModalSelectCaseFrmSql.intNumFieldCase-1blnIsSQL=FalseCmdDep(0).Enabled=TrueCmdDep(3).Enabled=TruersDepartment.Filter=Me.DataGrid1.Columns.Item(0).DataField&_"<>"""Case-2CaseElseblnIsSQL=TrueCmdDep(0).Enabled=FalseCmdDep(3).Enabled=FalsersDepartment.Filter=Me.DataGrid1.Columns.Item(FrmSql.intNumField).DataField&_VB仓库管理系统毕业论文 VB仓库管理系统毕业论文"like"*"&FrmSql.strSqlField&"*""EndSelectCase3intAnswer=MsgBox("确认删除当前记录吗?",vbYesNo+vbQuestion,"删除确认")IfintAnswer=vbYesThenWithrsDepartment.Delete.UpdateBatchIf.RecordCount<>0Then.MoveFirstElseForintAnswer=1To4CmdDep(intAnswer).Enabled=FalseNextEndIfEndWithEndIfCase4Case5UnloadMeVB仓库管理系统毕业论文 VB仓库管理系统毕业论文EndSelectEndSubPrivateSubForm_Load()intNumWindows=OpenWindow(intNumWindows)Me.Height=6300Me.Width=5325CallSetFormStu(Me,frmMain)SetrsDepartment=DEjxc.rsComDepartmentCallIsEdit(False)EndSubPrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)IfCmdDep(5).Enabled=FalseThenMsgBox"请先退出编辑状态后再退出该程序!",,"提示"Cancel=TrueEndIfEndSubPrivateSubForm_Unload(CancelAsInteger)intNumWindows=Closewindow(intNumWindows)rsDepartment.Filter=Me.DataGrid1.Columns.Item(0).DataField&"<>"""VB仓库管理系统毕业论文 VB仓库管理系统毕业论文rsDepartment.CloseSetrsDepartment=NothingEndSubPrivateSubDepAddNew()DimstrSQLAsStringWithrsDepartment"If.RecordCount=0Then"strMaxNum=0"Else".MoveLast"strMaxNum=!department_id"EndIf.AddNew"department_id","""Me.txtdepartment_id.Text=Format(CLng(strMaxNum)+1,"0##")CallIsEdit(True)Me.txtdepartment_id.SetFocusEndWithEndSubPrivateSubIsEdit(blnIsEditAsBoolean)DimintNumAsIntegerVB仓库管理系统毕业论文 VB仓库管理系统毕业论文Me.txtdepartment_id.Enabled=blnIsEditMe.txtdepartment_name.Enabled=blnIsEditForintNum=0To1Me.CmdAct(intNum).Enabled=blnIsEditNextForintNum=0To5Me.CmdDep(intNum).Enabled=NotblnIsEditNextIfblnIsSQL=TrueThenCmdDep(0).Enabled=FalseCmdDep(3).Enabled=FalseEndIfIfrsDepartment.RecordCount=0ThenForintNum=1To4Me.CmdDep(intNum).Enabled=FalseNextEndIfEndSubPrivateSubtxtdepartment_id_KeyPress(KeyAsciiAsInteger)DimstrValidAsStringstrValid="0123456789"VB仓库管理系统毕业论文 VB仓库管理系统毕业论文IfKeyAscii>26ThenIfInStr(strValid,Chr(KeyAscii))=0ThenKeyAscii=0EndIfEndIfIfKeyAscii=13Thentxtdepartment_name.SetFocusEndSub单据处理项源码与界面图:VB仓库管理系统毕业论文 VB仓库管理系统毕业论文OptionExplicitPrivatersPsHAAsADODB.RecordsetPrivatersOrdDAAsADODB.RecordsetPrivatersRparameAsADODB.RecordsetPrivatecmPsHAAsADODB.CommandPrivatestrMaxNumAsStringPrivatelngPsNumAsLongVB仓库管理系统毕业论文 VB仓库管理系统毕业论文PrivateSubCmdAct_Click(IndexAsInteger)DimintRowAsIntegerDimblnIsTrueAsBooleanDimstrSQLAsStringWithrsPsHASelectCaseIndexCase0blnIsTrue=SaveValid()IfNotblnIsTrueThenExitSubEndIfWithrsOrdDAIf.RecordCount<>0Then.MoveFirstWhileNot.EOF!order_id=Me.txtps_id.Text.MoveNextWendEndIfEndWithrsOrdDA.Filter="order_id=""&Me.txtps_id.Text&"""VB仓库管理系统毕业论文 VB仓库管理系统毕业论文rsOrdDA.UpdateBatch.Filter="ps_id<>""".UpdateBatch.MoveLastCallIsEdit(False)strSQL="updater_parametersetpsnumber=psnumber+1"cmPsHA.CommandText=strSQLcmPsHA.ExecuteCase1rsOrdDA.CancelBatch.Filter="ps_id<>"""If.RecordCount<>0Then.MoveFirstEndIf.CancelBatchCallIsEdit(False)rsOrdDA.Filter="order_id=""&Me.txtps_id.Text&"""Case2rsOrdDA.AddNew"order_id",Me.txtps_id.TextrsOrdDA.Filter="order_id=""&Me.txtps_id.Text&"""rsOrdDA.MoveLastDataGrid2.Col=1VB仓库管理系统毕业论文 VB仓库管理系统毕业论文CallIsEdit(True)CallTxtgrid2_LeaveCase3IfrsOrdDA.RecordCount<>0ThenrsOrdDA.DeleteEndIfIfrsOrdDA.RecordCount<>0ThenrsOrdDA.MoveFirstDataGrid2.Col=1CallIsEdit(True)CallTxtgrid2_LeaveEndIfEndSelectEndWithEndSubPrivateSubCmdDep_Click(IndexAsInteger)DimintAnswerAsIntegerDimstrSQLAsStringSelectCaseIndexCase0CallPsHAAddNewVB仓库管理系统毕业论文 VB仓库管理系统毕业论文Case1CallIsEdit(True)Me.txtps_date.SetFocusWithrsOrdDAIf.RecordCount<>0Then.MoveFirstDataGrid2.Col=1CallTxtgrid2_LeaveEndIfEndWithCase2FrmSql.intNumField=6FrmSql.ShowvbModalSelectCaseFrmSql.intNumFieldCase-1CmdDep(0).Enabled=TrueCmdDep(3).Enabled=TruersPsHA.Filter=Me.DataGrid1.Columns.Item(0).DataField&_"<>"""rsOrdDA.Filter="order_id=""&Me.txtps_id.Text&"""Case-2VB仓库管理系统毕业论文 VB仓库管理系统毕业论文CaseElseCmdDep(0).Enabled=FalseCmdDep(3).Enabled=FalsersPsHA.Filter=Me.DataGrid1.Columns.Item(FrmSql.intNumField).DataField&_"like"*"&FrmSql.strSqlField&"*""rsOrdDA.Filter="order_id=""&Me.txtps_id.Text&"""EndSelectCase3intAnswer=MsgBox("确认删除当前记录吗?",vbYesNo+vbQuestion,"删除确认")IfintAnswer=vbYesThenWithrsPsHAstrSQL="deletefromorder_detail_awhereorder_id=""&Me.txtps_id.Text&"""cmPsHA.CommandText=strSQLcmPsHA.Execute.Delete.UpdateBatchIf.RecordCount<>0Then.MoveFirstEndIfVB仓库管理系统毕业论文 VB仓库管理系统毕业论文rsOrdDA.Filter="order_id=""&Me.txtps_id.Text&"""EndWithEndIfCase4Case5UnloadMeEndSelectEndSubPrivateSubDataGrid1_RowColChange(LastRowAsVariant,ByValLastColAsInteger)rsOrdDA.Filter="order_id=""&Me.txtps_id.Text&"""EndSubPrivateSubDataGrid2_RowColChange(LastRowAsVariant,ByValLastColAsInteger)IfCmdDep(2).Enabled=TrueThenLblStatus.Caption=Product_Status(DataGrid2.Columns(1).Text)EndIfEndSubVB仓库管理系统毕业论文 VB仓库管理系统毕业论文PrivateSubDCboSup_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenMe.txtps_maker.SetFocusEndSubPrivateSubForm_Load()intNumWindows=OpenWindow(intNumWindows)Me.Height=7305Me.Width=7845CallSetFormStu(Me,frmMain)SetrsPsHA=DEjxc.rsComPsHASetrsOrdDA=DEjxc.rsComOrdDASetrsRparame=NewADODB.RecordsetSetcmPsHA=NewADODB.CommandcmPsHA.ActiveConnection=DEjxc.ConjxccmPsHA.CommandType=adCmdTextrsOrdDA.Filter="order_id=""&Me.txtps_id.Text&"""CallIsEdit(False)EndSubPrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)IfCmdDep(5).Enabled=FalseThenMsgBox"请先退出编辑状态后再退出该程序!",,"提示"VB仓库管理系统毕业论文 VB仓库管理系统毕业论文Cancel=TrueEndIfEndSubPrivateSubForm_Unload(CancelAsInteger)intNumWindows=Closewindow(intNumWindows)rsPsHA.ClosersOrdDA.CloseSetrsPsHA=NothingSetrsOrdDA=NothingSetrsRparame=NothingSetcmPsHA=NothingEndSubPrivateSubPsHAAddNew()DimstrSQLAsStringWithrsPsHA.AddNewstrSQL="selectpsnumberfromr_parameter"rsRparame.OpenstrSQL,DEjxc.Conjxc,adOpenDynamic,adLockOptimisticWithrsRparameVB仓库管理系统毕业论文 VB仓库管理系统毕业论文.MoveFirstlngPsNum=CLng(!psnumber)+1EndWithMe.txtps_id.Text="CR"&Format(lngPsNum,"0######")rsRparame.ClosersOrdDA.Filter="order_id=""&Me.txtps_id.Text&"""CallIsEdit(True)Me.txtps_date.Text=CStr(dteSysDate)Me.txtps_maker.Text=strCurUserMe.txtps_date.SetFocusEndWithEndSubPrivateSubIsEdit(blnIsEditAsBoolean)DimintNumAsIntegerMe.txtps_car.Enabled=blnIsEditMe.txtps_date.Enabled=blnIsEditMe.txtps_demo.Enabled=blnIsEdit"Me.txtps_id.Enabled=blnIsEditMe.txtps_maker.Enabled=blnIsEditMe.DCboSup.Enabled=blnIsEditMe.DataGrid1.Enabled=NotblnIsEditVB仓库管理系统毕业论文 VB仓库管理系统毕业论文IfrsOrdDA.RecordCount<>0ThenTxtgrid2.Visible=blnIsEditElseTxtgrid2.Visible=FalseEndIfForintNum=0To3Me.CmdAct(intNum).Enabled=blnIsEditNextForintNum=0To5Me.CmdDep(intNum).Enabled=NotblnIsEditNextIfMe.txtps_id=""ThenForintNum=2To3Me.CmdAct(intNum).Enabled=FalseNextEndIfIfrsPsHA.RecordCount=0ThenForintNum=1To4Me.CmdDep(intNum).Enabled=FalseNextEndIfEndSubVB仓库管理系统毕业论文 VB仓库管理系统毕业论文PrivateSubTxtgrid2_KeyDown(KeyCodeAsInteger,ShiftAsInteger)SelectCaseKeyCodeCasevbKeyF2IfDataGrid2.Col=1ThenFrmFindPro.strFindPro=Txtgrid2.TextFrmFindPro.ShowvbModalIfFrmFindPro.strFindPro<>""ThenTxtgrid2.Text=FrmFindPro.strFindProDataGrid2.Columns(1).Text=Txtgrid2.TextEndIfEndIfCasevbKeyReturnCallColumn_valueCallCal_PriceCallColToRightCallTxtgrid2_LeaveCasevbKeyLeftCallColumn_valueCallCal_PriceCallColToLeftCallTxtgrid2_LeaveVB仓库管理系统毕业论文 VB仓库管理系统毕业论文CasevbKeyRightCallColumn_valueCallCal_PriceCallColToRightCallTxtgrid2_LeaveCasevbKeyUpCallColumn_valueCallCal_PriceCallRowToUpCallTxtgrid2_LeaveCasevbKeyDownCallColumn_valueCallCal_PriceCallRowToDownCallTxtgrid2_LeaveEndSelectEndSubPrivateSubTxtgrid2_KeyPress(KeyAsciiAsInteger)DimstrValidAsStringIfDataGrid2.Col=2OrDataGrid2.Col=3ThenstrValid="0123456789."VB仓库管理系统毕业论文 VB仓库管理系统毕业论文IfKeyAscii>26ThenIfInStr(strValid,Chr(KeyAscii))=0ThenKeyAscii=0EndIfEndIfEndIfEndSubPrivateSubtxtps_car_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenMe.txtps_demo.SetFocusEndSubPrivateSubtxtps_date_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenMe.DCboSup.SetFocusEndSubPrivateSubtxtps_id_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Andtxtps_id.Text<>""ThenIfLen(txtps_id.Text)=7Thentxtps_id.Text="CR"&txtps_id.TextEndIfCmdAct(2).Enabled=TrueVB仓库管理系统毕业论文 VB仓库管理系统毕业论文CmdAct(3).Enabled=TrueMe.txtps_date.SetFocusElseCmdAct(2).Enabled=FalseCmdAct(3).Enabled=FalseEndIfEndSubPrivateSubtxtps_id_Validate(CancelAsBoolean)Iftxtps_id.Text<>""ThenIfLen(txtps_id.Text)=7Thentxtps_id.Text="CR"&txtps_id.TextEndIfCmdAct(2).Enabled=TrueCmdAct(3).Enabled=TrueElseCmdAct(2).Enabled=FalseCmdAct(3).Enabled=FalseEndIfEndSubPrivateSubtxtps_maker_KeyPress(KeyAsciiAsInteger)VB仓库管理系统毕业论文 VB仓库管理系统毕业论文IfKeyAscii=13ThenMe.txtps_car.SetFocusEndSubPrivateSubTxtgrid2_Leave()Txtgrid2.Text=DataGrid2.Columns(DataGrid2.Col).TextIfDataGrid2.Columns(1).Text<>""ThenLblStatus.Caption=Product_Status(DataGrid2.Columns(1).Text)ElseLblStatus.Caption=""EndIfTxtgrid2.SelStart=0Txtgrid2.SelLength=Len(Txtgrid2.Text)Txtgrid2.Width=DataGrid2.Columns(DataGrid2.Col).WidthTxtgrid2.Left=DataGrid2.Left+DataGrid2.Columns(DataGrid2.Col).LeftTxtgrid2.Top=DataGrid2.Top+DataGrid2.Row*DataGrid2.RowHeight+225Txtgrid2.SetFocusEndSubPrivateSubColToRight()VB仓库管理系统毕业论文 VB仓库管理系统毕业论文IfDataGrid2.Col1ThenDataGrid2.Col=DataGrid2.Col-1EndIfEndSubPrivateSubRowToUp()WithrsOrdDAIfNot.BOFThen.MovePreviousEndIfIf.BOFThen.MoveNextEndWithEndSubVB仓库管理系统毕业论文 VB仓库管理系统毕业论文PrivateSubRowToDown()WithrsOrdDAIfNot.EOFThen.MoveNextEndIfIf.EOFThen.MovePreviousEndWithEndSubPrivateSubCal_Price()WithDataGrid2If.Columns(2).Text<>""And.Columns(3).Text<>""Then.Columns(4).Value=Round(CCur(.Columns(2).Value*.Columns(3).Value),2)EndIfEndWithEndSubPrivateFunctionSaveValid()AsBooleanIfLeft(Me.txtps_id.Text,2)<>"CR"OrLen(Me.txtps_id.Text)<>9ThenMsgBox"单据编号格式错误!",vbCritical,"错误"VB仓库管理系统毕业论文 VB仓库管理系统毕业论文txtps_id.SetFocusSaveValid=FalseExitFunctionEndIfIfMe.txtps_date.Text=""Or(NotIsDate(Me.txtps_date.Text))ThenMsgBox"日期格式错误!",vbCritical,"错误"txtps_date.SetFocusSaveValid=FalseExitFunctionEndIfIfIsNull(Me.DCboSup.SelectedItem)ThenMsgBox"必须选择一个供应商!",vbCritical,"错误"Me.DCboSup.SetFocusSaveValid=FalseExitFunctionEndIfIfMe.txtps_maker=""ThenMsgBox"制单人不能为空!",vbCritical,"错误"txtps_maker.SetFocusSaveValid=FalseExitFunctionEndIfVB仓库管理系统毕业论文 VB仓库管理系统毕业论文IfrsOrdDA.RecordCount=0ThenMsgBox"单据明细项不能为空!",vbCritical,"错误"txtps_date.SetFocusSaveValid=FalseExitFunctionEndIfSaveValid=TrueEndFunctionPrivateSubColumn_value()WithDataGrid2If.Col=2ThenIfTxtgrid2.Text<>""Then.Columns(.Col).Text=CStr(Round(CSng(Txtgrid2.Text),4))ElseIf.Col=3ThenIfTxtgrid2.Text<>""Then.Columns(.Col).Text=CStr(Round(CCur(Txtgrid2.Text),2))Else.Columns(.Col).Text=Txtgrid2.TextEndIfEndWithEndSubVB仓库管理系统毕业论文 VB仓库管理系统毕业论文统计查询源代码与界面图:OptionExplicitPrivatersPsHBAsADODB.RecordsetPrivatersOrdDBAsADODB.RecordsetPrivatecmPsHBAsADODB.CommandPrivatestrMaxNumAsStringPrivateSubCmdDep_Click(IndexAsInteger)VB仓库管理系统毕业论文 VB仓库管理系统毕业论文DimintAnswerAsIntegerDimstrSQLAsStringSelectCaseIndexCase0FrmSql.intNumField=6FrmSql.ShowvbModalSelectCaseFrmSql.intNumFieldCase-1rsPsHB.Filter=Me.DataGrid1.Columns.Item(0).DataField&_"<>"""rsOrdDB.Filter="order_id=""&Me.txtps_id.Text&"""Case-2CaseElsersPsHB.Filter=Me.DataGrid1.Columns.Item(FrmSql.intNumField).DataField&_"like"*"&FrmSql.strSqlField&"*""rsOrdDB.Filter="order_id=""&Me.txtps_id.Text&"""EndSelectCase1Case2VB仓库管理系统毕业论文 VB仓库管理系统毕业论文UnloadMeEndSelectEndSubPrivateSubDataGrid1_RowColChange(LastRowAsVariant,ByValLastColAsInteger)rsOrdDB.Filter="order_id=""&Me.txtps_id.Text&"""EndSubPrivateSubDataGrid2_RowColChange(LastRowAsVariant,ByValLastColAsInteger)IfCmdDep(0).Enabled=TrueThenLblStatus.Caption=Product_Status(DataGrid2.Columns(1).Text)EndIfEndSubPrivateSubForm_Load()intNumWindows=OpenWindow(intNumWindows)Me.Height=7305Me.Width=7845CallSetFormStu(Me,frmMain)SetrsPsHB=DEjxc.rsComPsHBVB仓库管理系统毕业论文 VB仓库管理系统毕业论文SetrsOrdDB=DEjxc.rsComOrdDBSetcmPsHB=NewADODB.CommandcmPsHB.ActiveConnection=DEjxc.ConjxccmPsHB.CommandType=adCmdTextrsOrdDB.Filter="order_id=""&Me.txtps_id.Text&"""EndSubPrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)IfCmdDep(2).Enabled=FalseThenMsgBox"请先退出编辑状态后再退出该程序!",,"提示"Cancel=TrueEndIfEndSubPrivateSubForm_Unload(CancelAsInteger)intNumWindows=Closewindow(intNumWindows)rsPsHB.ClosersOrdDB.CloseSetrsPsHB=NothingSetrsOrdDB=NothingSetcmPsHB=NothingEndSubVB仓库管理系统毕业论文 VB仓库管理系统毕业论文VB仓库管理系统毕业论文