╟原创╢仓库管理系统(VBA版)
- 格式:xls
- 大小:7.54 MB
- 文档页数:20
基于Excel VBA库房管理系统的设计与实现【摘要】Excel在处理数据上灵活方便,在表格制作以及统计分析等方面功能也很强大。
而其开发工具VBA又可以轻松实现Excel操作的自动化。
根据我院库房耗材管理工作的现状,利用Excel VBA来处理耗材数据并自动生成相应报表,进而达到提高库房管理工作效率的目的。
【关键词】Excel VBA;耗材;库房管理1 引言在学院后勤管理工作中,耗材的出入库管理是一件日常性的工作,管理员需要及时了解掌握各种耗材的出库量、入库量和库存量,便于合理安排工作。
由于耗材种类繁多,而传统管理是采用纸质版或大量电子版文件、文件夹数据的管理方式,不仅时间上工作效率低,而且造成大量资源浪费。
随着学院规模不断壮大,耗材数据将持续增长,数据库将非常庞大,管理也将越来越困难。
为此开发了基于Excel VBA技术实现出库、入库、库存盘点、库存统计、数据转结等方面功能的库房管理系统。
2 设计思路开发本管理系统,有效控制耗材积压,方便库房管理员随时出库、入库、修改、查询等,逐步完善和规范数据。
此系统主要有一个主模块,八个子模块以及各模块下面的若干低一级子模块组成。
目前系统主要解决任务如下:2.1 出、入库简单方便,且能及时打印出、入库单,减轻了原来手工填写出入库单的工作量。
2.2 便于及时统计出库和入库情况。
2.3 按类型统计汇总各类耗材数量。
2.4 随时可以查看库存情况,同时支持查看单件耗材库存数量。
2.5 通过数据库管理可以修改相应数据,且规范数据库数据类型,避免信息统计不准确。
2.6 通过上报数据功能实现数据人性化处理和即时共享。
2.7 学期数据转结主要是减少了数据冗余。
2.8 数据安全保密,每次登录系统需要进行身份验证。
库房管理系统数据关系图(如图1)3 系统结构、功能设计(如图2)4 报表生成系统内各类查询功能均可以根据学院原先报表样式生成相应电子报表,方便打印存档。
为解决各类报表数据类型不统一问题,则在后台设计了一个临时工作表,此工作表可以根据报表生成时的一些代码命令临时存放一些数据,关闭报表的同时清空当前数据。
VBA 编程制作ERP 生产管理系统我这里和大家分享一下用 Excel VBA 编程制作企业ERP 管理系统的经验。
我们都知道无论什么企业它的运营过程中会产生大量的数据, 而这些数据是企业管理的基础,那么怎么把这些基础数据存储运用呢,那就是ERP 系统,ERP 功能到底有多强大,它可以涉及企业所以业务流程,供应链管理、销售与市场、分销、客户服务、财务管理、 制造管理、库存管理、工厂与设备维护、报表、工作流服务和企业信息系统等,还可以和其它企业管理系统集成运 用,比如PDM 制造执行系统 MES 、OA 系统、HR 系统等,其功能如下图所示:企业应该有一个 ERP 系统,对于大公司来说,买个几十 W 搞个ERP 系统可以说是小意思,而对于一些小企业来 说,用一个ERP 就是奢侈的一件事,买不起怎么办,对于小企业来说 ERP 不用太复杂,有个库存管理、生产管理也许就够用了,因此才有这个主题一一用 Excel VBA 编程制作小企业 ERP 系统。
有的人会说Excel 不适合做ERP 系统,的确Excel 的VBA 密码保护功能太弱, 辛辛苦苦做出来的成果谈不上任 何回报保证,单独的 Excel 在处理大量数据时太弱,必须结合数据库,专业的程序员看不上 VBA 这种弱语言(也许 这在他们眼里根本算不上语言,只是一种脚本 ),所以从事VBA 编程的大多数是业余爱好者,他们不以此为吃饭的资本,也没有太多的精力去完成 ERP 这么大的一个项目工程,Excel 只适合去做辅助工具,用VBA 去做开发大型项目违背了微软设计 VBA 的初衷。
接触过ERP 系统的人都知道,无论是哪种 ERP 系统都有一些共同的弱点:录入、修改、删除等操作繁琐 ;查询分析麻烦;新增功能二次开发麻烦,企业上用ERP 还得开展培训工作,计算机水平不好的人还用不了ERP 而如果用Excel VBA 结合Excel 作界面开发的ERP 这样的ERP 只要会EXCEL 就会使用,会VBA 编程就能更改成自己想要的 ERP 系统。
第一章公司介绍与系统的需求分析1.1公司简介佳雪公司是一个专销电动机的公司,主要业务是进行电动机的进货与分销,作为一个销售的中介公司,其要求有入库与出库的主要数据库,可以简单的记录数据,并且可以进行多方面的查询,使得公司有较详细的数据统计与分析。
其主要业务如以下图所示:1.图1.1.12.查询功能1)按型号查询有两个结果:A生成入库量、出库量、节余量B生成两个数据来源表,包括出库来源与入库来源;2)按单位查询结果:生成型号、产品名称、时间(入/出库)、单价再生成出入库的两个基本情况表,包括供应商和顾客的基本情况,如型号、出/入库时间,单价,发票编号、结帐情况;3.本系统主要运用Visual Basic的内嵌数据库Access来记录数据;4.产品信息:序号(自动生成)、型号(文本)、入库时间(日期)、出库时间(日期)、数量(数字)、发票编号(文本)、单价(货币)、厂商名称(文本)、供应商名称(文本)、厂商与供应商的电话(数字)、结帐情况(是/否)[是为0,否为-1]1.2分析与描述一.根据1.1章节的具体要求,总结出以下的数据流程:图1.2.1 数据流程二.根据以上情况,按要求设计了几个相关的数据库 表:出库、入库查询:查询结余、出库查询、入库查询、型号出库查询、型号入库查询 ● 主要的出库表属性如以下表所示:表1.2.1● 由于入库表与出库想类似,所以在此不做详细介绍。
● 为了方便查询,因此在出库与入库的基础上增加了几个查询表,具体字段如下:1.查询结余:型号、产品名称、出库数量、入库数量2.出库查询:顾客名称、型号、出库时间、单价、出库数量OF SUM 、发票编号、结帐情况3.入库查询:供应商名称、型号、入库时间、单价、入库数量OF SUM、发票编号、结帐情况4.出库型号查询:型号、产品名称、顾客名称、单价、发票编号、结帐情况5.入库型号查询:型号、产品名称、供应商名称、单价、发票编号、结帐情况1.3数据库的主要特点数据库中的每一个表都必须符合下面几个特征:*表中的每一个单元的内容只有一个值*所有字段的名称都不相同*记录的前后次序和字段的左右次序可以变化,不受限制*数据库中的表的上下次序不受限制*表中不应有内容完全相同的记录*表中的每一个字段都必须有相同的数据类型使用Visual Basic开发应用程序的两个主要思想:*可视设计*事件驱动编程Visual Basic应用程序不同于其他语言开发的单一性程序。
摘要 (3)关键词:仓库管理,数据库技术,信息化管理,管理信息系统 (3)Summary (3)第一章绪论 (5)1.1选题背景 (5)1.2 课题来源 (5)1.3 开发工具的选择...................................... 错误!未定义书签。
第二章系统分析........................................... 错误!未定义书签。
2.1 系统初步调查........................................ 错误!未定义书签。
2.1.1仓库管理业务的调查.............................. 错误!未定义书签。
2.1.2 现行管理中出现的一些问题 ....................... 错误!未定义书签。
2.2 可行性分析........................................... 错误!未定义书签。
2.3 系统开发目标......................................... 错误!未定义书签。
2.4 新系统逻辑模型的提出................................. 错误!未定义书签。
第三章系统设计.. (7)3.1 总界面设计 (7)3.2 安全性设计 (8)3.3 系统功能结构设计 (8)3.3.1系统菜单的设计.................................. 错误!未定义书签。
3.3.2 日常操作子系统的设计 ........................... 错误!未定义书签。
3.3.3、记录管理功能子系统的设计 ...................... 错误!未定义书签。
3.3.4、信息管理子系统 ................................ 错误!未定义书签。
摘要仓库管理系统是为了实现企业产品管理地系统化、规范化和自动化,从而提高企业管理效率而设计地.它完全取代了原来一直用人工管理地工作方式,避免了由于管理人员地工作疏忽以及管理质量问题所造成地各种错误,为及时、准确、高效地完成仓库管理提供了强有力地工具和管理手段.仓库管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了仓库管理地要求.整个系统由基本信息、单据中心、查询统计、报表打印、维护设置、帮助等模块组成.本系统是在以ACCESS2000作为后台数据库,以Visual Basic为编程语言来开发地.仓库管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了仓库管理计算机化.关键字:仓库,管理系统,数据库目录前言1摘要2Abstract3目录41 仓库管理系统开发环境简介61.1 中文Visual Basic 6.0 简介61.2 ACCESS2000简介72 系统可行性分析83 系统总体设计103.1 系统目标设计103.2 开发设计思想103.3 系统功能需求分析113.4 系统功能模块设计114 数据库设计124.1 数据库需求分析124.2 数据库概念结构设计144.3 数据库逻辑结构设计185 系统主窗体设计245.1 创建工程工程—仓库管理系统245.2 创建系统主窗体245.3 创建主窗体菜单255.4 创建主窗体工具栏515.4.1 工具栏控件常用属性和事件515.4.2 设置工具栏属性525.5 设置主窗体状态栏566 系统模块设计576.1 基本信息模块设计576.1.1 创建货物信息窗体576.1.2 创建仓库信息窗体586.1.3 创建库存状况信息窗体596.2 单据中心模块设计606.2.1 创建新增入库单窗体616.2.2 创建入库单管理窗体626.2.3 创建月盘点窗体636.3 查询统计模块设计636.3.1 创建单据查询窗体646.3.2 创建库存查询窗体646.3.3 创建货物出入统计窗体656.3.4 创建职员操作统计窗体666.4 报表打印模块设计676.4.1创建打印入库单窗体676.4.2 创建打印月盘点窗体686.5 维护设置模块设计696.5.1 公司和职员信息706.5.2 查看日志706.5.3 数据清除716.5.4 系统初始化716.5.5 备份数据库716.5.6 还原数据库和还原到昨天数据库726.5.7 用户管理726.7 帮助模块设计72总结74致谢75参考文献763.3 系统功能需求分析系统开发地总体任务是实现各种信息地系统化、规范化和自动化.系统功能分析是在系统开发地总体任务地基础上完成.本仓库管理系统需要完成功能主要有:●仓库管理各种信息地输入,包括货物、供应商、客户、仓库信息地输入等.●仓库管理各种信息地查询、统计、修改和维护,包括货物、单据查询,货物出入、职员操作统计,各种信息地修改和维护等.●打印报表地生成.●在货物管理中加入最高储备和最低储备字段,对仓库中地产品实现监控和报警.●操作日志地管理.●仓库管理系统地使用帮助.3.4 系统功能模块设计在系统功能分析地基础上,考虑到Visual Basic程序编制地特点,得到如图3-1所示地系统功能模块图.图3-1 系统功能模块图.图5-1 系统主窗体6 系统模块设计6.1基本信息模块设计基本信息模块主要包括:●货物信息●仓库信息●供应商信息●往来客户信息●库存状况信息6.1.1 创建货物信息窗体货物信息窗体可以进行货物管理,如:增加货物类别、货物种类,对货物基本信息可以进行编辑.除了"货物编号"外,对货物删除,会进行智能判断,如果其它表单用了该货物信息将不能被删除.它地界面设计如图6-1所示.图6-1 货物信息窗体6.1.2 创建仓库信息窗体通过仓库信息窗体可以对仓库信息进行管理.它同时规定:新增仓库不能同名,通过"更换保管员"按钮来更换保管员,不能直接进行编辑仓库名称、地点,备注可以直接编.它地界面设计成如图6-2所示.图6-2 仓库信息窗体6.1.3 创建库存状况信息窗体通过限定仓库查看仓库库存状况,可以清楚地知道企业各个仓库地库存情况.库存状况信息窗体地界面如图6-3所示.图6-3库存状况信息窗体由于篇幅有限,供应商信息窗体和窗客户信息窗体这里丛略.图6-4 新增入库单窗体6.2.2 创建入库单管理窗体入库单地管理对于企业仓库管理尤为重要,它地界面设计如图6-5所示.图6-5 入库单管理窗体注意:"退出入库单"是取消入库,但不一定能成功,因为要看入库地仓库剩余地库存量.虽然退出,但入库所有地"其它金额"依然存在.而"删除入库单"则是删除,没有“其它金额“,一般是盘点后地操作或入库单地误操作.另外,还有出库单、借入单、借出单、调拨单、报损单地新增和管理,由于它们和入库类似,这里不再一一列出.6.2.3 创建月盘点窗体仓库进行月盘点,会将本月该仓库地货物出入信息和金额出入信息进行统计.它对于企业地管理者和决策者非常重要.月盘点窗体设计成如图6-6所示.图6-6月盘点窗体6.3 查询统计模块设计查询统计模块主要完成地功能有:●单据查询●库存查询●货物出入统计●职员操作统计6.3.1创建单据查询窗体单据地查询,支持模糊查询.它地界面设计如图6-7所示.图6-7 单据查询6.3.2创建库存查询窗体库存地查询,支持模糊查询,对仓库货物状况也能进行统计.它地界面设计如图6-8所示.图6-8 库存查询窗体6.3.3 创建货物出入统计窗体货物地出入统计,可以限定仓库,出入时间.它地界面设计如图6-9所示.图6-9 货物出入统计6.3.4 创建职员操作统计窗体职员地操作统计,可以限定仓库,操作时间.界面设计如图6-10所示.图6-10 职员操作统计6.4 报表打印模块设计报表打印完成地功能主要有:●单据打印<包括入库单、出库单、借入单、借出单、调拨单、报损单)●月盘点打印6.4.1创建打印入库单窗体它地界面设计如图6-11所示.在图6-11中选择了某一入库单之后,点击“打印入库单”按钮,会进入入库单打印界面,它和新增入库单是同一界面,也即图6-4.在图6-4中点击“打印”就可以打印入库单,同时用户也可以根据需要选择自己喜欢地背景颜色.6-11打印入库单窗体6.4.2 创建打印月盘点窗体它地界面设计如图6-12所示.在图6-12中选择了某一盘点单之后,点击“打印”按钮,会进入月盘点单打印界面,它和进行月盘点是同一界面,也即图6-6,点击图6-6地打印月盘点就可以打印了.图6-12 打印月盘点窗体6.5 维护设置模块设计维护设置模块是为了仓库管理系统地稳定性和安全性而设计地,它完成地主要功能有:●公司和职员信息●查看日志●数据清除●系统初始化●备份数据库●还原数据库<包括还原到昨天数据库)●用户管理6.5.1公司和职员信息可以修改公司地信息.可以进行职员地信息管理,增加,删除,修改等.由于篇幅有限,其窗体略.6.5.2查看日志查看职员地操作日志,可以清楚地知道职员在工作中对仓库进行了哪些管理.这对于查找职员地误操作从而恢复系统提供了帮助,同时也保证了安全性,防止某些人地非法操作.它地界面设计如图6-13.图6-13 查看日志6.5.3数据清除可以选择性删除数据表单.对于系统产生地无用数据可以删除.数据清除窗体界面设计如图6-14所示.图6-14数据清除窗体界面Powered by 计算机毕业论文网。
库存管理系统请教ExcelVBA大侠库存管理系统请教ExcelVBA大侠:你好!我边工作边学习花了三个月的时间,综合了高跃勋编写的《库存管理系统3.2》和伍云辉创作的《库存管理系统》(Excel2003版),本人结合企业实操改写扩容了这个《库存管理系统》。
共有56张工作表,以超过了库存管理范围,有供应、生产和销售管理的部分功能,可理解为《物控管理系统》,但系统功能未完善,希望能得到大侠的指点和完善,以便企业尽快使用。
本人建议:以Excel版本为准,便于企业在实务中复制和删除数据,操作简明,快捷方便。
要具备材料和成品的全方体日常需求,具体操作将材料仓和成品仓分开使用。
本系统各工作表设置及计算结果通过演示基本正确(如有错误数据是在代码未更新前的演示数据),出入库如有退货用负数表示,自动显示为负数退货单,打印页面都设置完好,工程代码未设密码,工作表保护密码为:wyh 有下列问题请求大侠完善解决:1.主界面:是供临时使用的,希望大侠用代码超链接、打开和隐藏工作表,靠大侠完善主界面和Protect工作表的设置及系统封装。
2.材料列表窗体:只能显示4个类别窗口,不能满足企业日常需要,一般企业的材料或成品要分八九个类别,希望大侠能扩冲解决。
3.商品信息:收货单价及时更新,在入库单保存数据时更新收货单价。
我是在商品信息的收货单价列设置的函数公式(当前入库明细工作表的商品编码相同时,重复的商品编码次数金额合计除以重复的商品编码次数数量合计,乘以重复的商品编码次数,除以重复的商品编码次数,等于加权平均最新收货单价),但因函数的计算速度慢,不便于实操。
希望大侠能改用工程代码执行收货单价更新。
4.申购单:现货存量列数据从月度库存表中结存数量读入。
我是在申购单的现货存量列设置的函数公式(当商品编码相同时,等于月度库存表的结存数量),但在刷新月度库存工作表后,申购单的现货存量列的公式中行次变化了,需要重新修改公式才行,不实际。
仓库管理系统项目的建立这是本人利用闲暇之余在上制作的一个简陋的类库管系统,现图文结合的方式一步一步展现制作过程。
由于本人是个初学者,里面存在很多不足之处望得到高手们的指导。
此文可作供初学者们学习交流。
作者联系方式:E-mail最终运行效果打开软件出现如下登录界面输入系统预设用户名及密码( 1 1 )单击“登录”或单击“新用户”添加新用户进入如下主界面:建立工程1、创建标准EXE2、按“打开”3、添加MDI窗体——打开4、编辑菜单在空白处右击——点击“菜单编辑器”在“标题”里输入“系统”,在“名称”里输入“Sys”(注意此处不能为汉字)点击“下一个”再点击“”“确定”退到MDI界面点击“系统”——“退出”如下,然后编写代码。
代码如下:Private Sub Exit_Click()EndEnd Sub数据库的建立中可以创建Access数据库。
如下建立一个“用户表”的数据库,用来存放用户信息及一些出入库管理信息。
如下图单击“外接程序”再单击“可视化数据管理器”出现如图点击“文件”——“新建”——“Microsoft Access”——“Version MDB”输入数据库名,“保存”出现如下图在数据窗口中右击——“新建表”,最终如下往数据表里添加数据在这里就不罗嗦了,请查阅相关书籍。
登录界面窗口的建立最终界面如下:1、Adodc1的添加过程为:单击“工程”——“部件”出现下图所示,选择“控件”下的“Microsoft ADO Data Control (OLEDB)”单击“确定”在工具栏中会出现“”图标,单击它并拖动到相应位置即可。
其它元件不在一一说明。
2、本窗体代码如下:Private Sub Command1_Click() '“登录”、“确定”按钮 If = "确定" And = "取消" Then '如果为“确定”则添加新用户If = "" Then '提示用户输入用户名MsgBox "请输入用户名!", , "登录信息提示:"Exit SubElse 'Dim usename As String '检测用户名是否已经存在Dim strS As Stringusename = TrimstrS = "select * from 用户登录信息表 where 用户名='" & usename & "'"= adCmdText= strSIf = False ThenMsgBox "您输入的用户已存在!", , "登录提示信息:"= ""= ""= ""Exit SubEnd IfEnd IfIf = "" Then '提示用户密码不能为空 MsgBox "密码不能为空!", , "登录提示信息:"Exit SubEnd IfIf = "" ThenMsgBox "请再次输入密码!", , "登录提示信息:"Exit SubEnd IfIf <> ThenMsgBox "两次输入的密码不一致,请确认!", , "登录提示信息:"= ""Exit SubElse'添加新用户"用户名") = Trim"密码") = TrimMsgBox ("添加新用户成功,现在您可以登陆系统了!")= False= False= "登录"= "退出"End IfElse '“登录”按钮,用户登录 Dim strSno As StringDim strSelect As StringstrSno = Trim '检测用户名是否存在strSelect = "select 密码 from 用户登录信息表 where 用户名 = '" & strSno & "'"= adCmdText= strSelectIf = True ThenMsgBox "用户名不存在,请重新输入!", , "登录提示信息:"= ""= ""End IfIf "密码") = Trim Then '检测密码是否正确'Unload Me'MsgBox "登陆成功!", , "登录提示信息:"ElseMsgBox "密码不正确,请重新输入!", , "登录提示信息:"= ""End IfEnd IfEnd SubPrivate Sub Command2_Click() '“退出”或“取消”按钮 If = "取消" Then= False= False= "登录"= "退出"= ""= ""ElseEnd 'Unload MeEnd IfEnd SubPrivate Sub Command3_Click() '“新用户”按钮= True= True= ""= ""= ""= "确定"= "取消"End SubPrivate Sub Command3_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)= TrueEnd SubPrivate Sub Command3_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)= FalseEnd SubPrivate Sub Form_Load()= False= FalseEnd SubPrivate Sub Timer1_Timer() '时间time1控件的time事件代码,用来'显示向左移动的欢迎字幕If + > 0 Then '当标签右边位置大于0时,标签向左移- 80Else '否则标签从头开始=End IfIf + > 0 Then- 80Else=End IfEnd Sub主界面窗体如下:代码:Private Sub AddNew_Click() = True= FalseEnd SubPrivate Sub CHKPMCHX_Click()= "出库信息"Dim pm As StringDim n As Stringpm = InputBox("产品名", "请输入", 0)n = "select * from 出库表 where 品名 = '" & pm & "'" = adCmdText= nCall InitGrid1End SubPrivate Sub CHKXHCHX_Click()= "出库信息"Dim XH As StringDim n As StringXH = InputBox("产品型号", "请输入", 0)n = "select * from 出库表 where 型号 = '" & XH & "'" = adCmdText= nEnd SubPrivate Sub CKCZ_Click()'End SubPrivate Sub CKJSHR_Click()= "出库信息"Dim JSHR As StringDim n As StringJSHR = InputBox("经手人", "请输入", 0)n = "select * from 出库表 where 经手人 = '" & JSHR & "'"= adCmdText= nCall InitGrid1End SubPrivate Sub CKSHJ_Click()= "出库信息"Dim CHKRQ As StringDim n As StringCHKRQ = InputBox("出库日期,格式为:月/日/年如:12/1/2011", "请输入", 0) n = "select * from 出库表 where 出库日期 = '" & CHKRQ & "'"= adCmdText= nCall InitGrid1End SubPrivate Sub CKZCX_Click()= "出库信息"Dim ZB As StringZB = "select * from 出库表 "= adCmdText= ZBCall InitGrid1End SubPrivate Sub Command1_Click()If = "" Then '提示用户输入用户名MsgBox "请输入用户名!", , "登录信息提示:"Exit SubElse 'Dim usename As String '检测用户名是否已经存在 Dim strS As Stringusename = TrimstrS = "select * from 用户登录信息表 where 用户名='" & usename & "'"= adCmdText= strSIf = False ThenMsgBox "您输入的用户已存在!", , "登录提示信息:"= ""= ""= ""Exit SubEnd IfEnd IfIf = "" Then '提示用户密码不能为空MsgBox "密码不能为空!", , "登录提示信息:"Exit SubEnd IfIf = "" ThenMsgBox "请再次输入密码!", , "登录提示信息:"Exit SubEnd IfIf <> ThenMsgBox "两次输入的密码不一致,请确认!", , "登录提示信息:"= ""= ""Exit SubElse'添加新用户"用户名") = Trim"密码") = TrimDim X As IntegerX = MsgBox("成功添加新用户,是否要重新登录!", vbYesNo + vbQuestion + vbDefaultButton1, "提示信息!") If X = vbYes ThenUnload MeEnd If'MsgBox ("成功添加新用户!")' = False' = False' = "登录"' = "退出"End If= False= True= ""= "'"= ""'End SubPrivate Sub Command2_Click() = False= TrueEnd SubPrivate Sub CXDL_Click()'Unload MeEnd SubPrivate Sub Exit_Click()EndUnload Form1Unload Form2Unload Form3Unload Form4Unload Form5Unload Form6Unload Form7Unload Form8End SubPrivate Sub Form_Load()TextUserName = Trim Unload Form1= FalseCall InitGrid0= - 1060= - 560==End SubPrivate Sub GHCZ_Click()'End SubPrivate Sub GHPMCX_Click()= "归还信息"Dim pm As StringDim n As Stringpm = InputBox("产品名", "请输入", 0)n = "select * from 归还表 where 品名 = '" & pm & "'" = adCmdText= nCall InitGrid2End SubPrivate Sub GHRCX_Click()= "归还信息"Dim JCR As StringDim n As StringJCR = InputBox("归还人", "请输入", 0)n = "select * from 归还表 where 归还人 = '" & JCR & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub GHSJCX_Click()= "归还信息"Dim JCRQ As StringDim n As StringJCRQ = InputBox("归还日期,格式为:月/日/年如:12/1/2011", "请输入", 0) n = "select * from 归还表 where 归还日期 = '" & JCRQ & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub GHXHCX_Click()= "归还信息"Dim XH As StringDim n As StringXH = InputBox("产品型号", "请输入", 0)n = "select * from 归还表 where 型号 = '" & XH & "'" = adCmdText= nCall InitGrid2End SubPrivate Sub GHZCX_Click()= "归还信息"Dim ZB As StringZB = "select * from 归还表 "= adCmdText= ZBCall InitGrid2End SubPrivate Sub JCCZ_Click()'End SubPrivate Sub JCHPMCHX_Click()= "借出信息"Dim pm As StringDim n As Stringpm = InputBox("产品名", "请输入", 0)n = "select * from 借出表 where 品名 = '" & pm & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub JCHXHCHX_Click()= "借出信息"Dim XH As StringDim n As StringXH = InputBox("产品型号", "请输入", 0)n = "select * from 借出表 where 型号 = '" & XH & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub JCRCX_Click()= "借出信息"Dim JCR As StringDim n As StringJCR = InputBox("借出人", "请输入", 0)n = "select * from 借出表 where 借出人 = '" & JCR & "'" = adCmdText= nCall InitGrid2End SubPrivate Sub JCSHJCX_Click()= "借出信息"Dim JCRQ As StringDim n As StringJCRQ = InputBox("借出日期,格式为:月/日/年如:12/1/2011", "请输入", 0) n = "select * from 借出表 where 借出日期 = '" & JCRQ & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub JCZCX_Click()= "借出信息"Dim ZB As StringZB = "select * from 借出表 "= adCmdText= ZBCall InitGrid2End SubPrivate Sub JSHRCHX_Click()= "归还信息"Dim JSHR As StringDim n As StringJSHR = InputBox("经手人", "请输入", 0)n = "select * from 归还表 where 经手人 = '" & JSHR & "'" = adCmdText= nCall InitGrid2End SubPrivate Sub JSHRCX_Click()= "借出信息"Dim JSHR As StringDim n As StringJSHR = InputBox("经手人", "请输入", 0)n = "select * from 借出表 where 经手人 = '" & JSHR & "'" = adCmdText= nCall InitGrid2End SubPrivate Sub PMCX_Click()= "库存信息"Dim pm As StringDim n As Stringpm = InputBox("产品名", "请输入", 0)n = "select * from 库存表 where 品名 = '" & pm & "'"= adCmdText= nCall InitGrid0End SubPrivate Sub RKCZ_Click()'End SubPrivate Sub RKJSHR_Click()= "入库信息"Dim JSHR As StringDim n As StringJSHR = InputBox("经手人", "请输入", 0)n = "select * from 入库表 where 经手人 = '" & JSHR & "'" = adCmdText= nCall InitGrid1End SubPrivate Sub RKPMCHX_Click()= "入库信息"Dim pm As StringDim n As Stringpm = InputBox("产品名", "请输入", 0)If Len(pm) > 0 Thenn = "select * from 入库表 where 品名 = '" & pm & "'" = adCmdText= nEnd IfCall InitGrid1End SubPrivate Sub RKSHJ_Click()= "入库信息"Dim RKRQ As StringDim n As StringRKRQ = InputBox("入库日期,格式为:月/日/年如:12/1/2011", "请输入", 0) n = "select * from 入库表 where 入库日期 = '" & RKRQ & "'"= adCmdText= nCall InitGrid1End SubPrivate Sub RKXHCHX_Click()= "入库信息"Dim XH As StringDim n As StringXH = InputBox("产品型号", "请输入", 0)If Len(XH) > 0 Thenn = "select * from 入库表 where 型号 = '" & XH & "'"= adCmdText= nEnd IfCall InitGrid1End SubPrivate Sub RKZCX_Click()= "入库信息"Dim ZB As StringZB = "select * from 入库表 "= adCmdText= ZBCall InitGrid1End SubPrivate Sub Timer1_Timer()If + > 0 Then '当标签右边位置大于0时,标签向左移- 80Else '否则标签从头开始 =End IfIf + > 0 Then- 80Else=End IfIf + > 0 Then- 80Else=End IfIf + > 0 Then- 80Else=End IfEnd SubPrivate Sub XGMM_Click()'End SubPrivate Sub XHCX_Click()= "库存信息"Dim XH As StringDim n As StringXH = InputBox("产品型号", "请输入", 0)If Len(XH) > 0 Then 'And Val(XH) <> 0n = "select * from 库存表 where 型号 = '" & XH & "'" = adCmdText= nEnd IfCall InitGrid0End SubPrivate Sub ZB_Click()= "库存信息"Dim ZB As String'Dim N As String'PM = InputBox("产品名", "请输入", 0)ZB = "select * from 库存表 " 'where 品名 = '" & PM & "'" = adCmdText= ZBCall InitGrid0End SubPrivate Sub InitGrid0()With DataGrid1.Columns(0).Width = 1600.Columns(1).Width = 2200.Columns(2).Width = 2200.Columns(3).Width = 1000.Columns(4).Width = 1000.Columns(5).Width = 4000End WithEnd SubPrivate Sub InitGrid1()With DataGrid1.Columns(0).Width = 800.Columns(1).Width = 1600.Columns(2).Width = 1600.Columns(3).Width = 800.Columns(4).Width = 800.Columns(5).Width = 1000.Columns(6).Width = 800.Columns(7).Width = 4000End WithEnd SubPrivate Sub InitGrid2()With DataGrid1'.Columns(0).Caption = "学号" ' .Columns(1).Caption = "课程名" '.Columns(2).Caption = "学分" ' .Columns(3).Caption = "成绩" '设置DtgCond的列宽.Columns(0).Width = 800.Columns(1).Width = 1600.Columns(2).Width = 1600.Columns(3).Width = 800.Columns(4).Width = 800.Columns(5).Width = 800.Columns(6).Width = 1000.Columns(7).Width = 800.Columns(8).Width = 4000End WithEnd Sub用户重新登录界面代码:Private Sub Command1_Click()Dim strSno As StringDim strSelect As StringstrSno = Trim '检测用户名是否存在 strSelect = "select 密码 from 用户登录信息表 where 用户名 = '" & strSno & "'"= adCmdText= strSelectIf = True ThenMsgBox "用户名不存在,请重新输入!", , "登录提示信息:"= ""= ""Exit SubEnd IfIf "密码") = Trim Then '检测密码是否正确Unload Me'MsgBox "登陆成功!", , "登录提示信息:"ElseMsgBox "密码不正确,请重新输入!", , "登录提示信息:" = ""End IfEnd SubPrivate Sub Command2_Click()Unload MeEnd Sub修改用户密码界面代码:Private Sub Command1_Click()If Trim <> ThenMsgBox "用户名不正确,请确认!", , "信息提示!"= ""Exit SubElseDim name As StringDim names As Stringname = Trimnames = "select * from 用户登录信息表 where 用户名='" & name & "'" = adCmdText= namesIf = "" ThenMsgBox "请输入旧密码!", , "信息提示!"Exit SubEnd IfIf "密码") <> Trim ThenMsgBox "旧密码不正确,请确认!", , "信息提示!"= ""Exit SubEnd IfIf = "" ThenMsgBox "请输入新密码!", , "信息提示!"Exit SubEnd IfIf = "" ThenMsgBox "请再次输入新密码!", , "信息提示!"Exit SubEnd IfIf Trim <> Trim ThenMsgBox "两次输入的新密码不一致!", , "信息提示!" = ""= ""Exit SubElse"密码") = TrimMsgBox ("密码修改成功!")Unload Me'End IfEnd IfEnd SubPrivate Sub Command2_Click()Unload Me'End Sub入库管理代码:Private Sub Command1_Click()If = "" And = "" ThenMsgBox "“品名”和“型号”不能同时为空,必须输入其中一项!", , "提示信息!" Exit SubElseIf = "" And = "" ThenMsgBox "请输入产品“数量”或“单位”之一!", , "提示信息!"Exit SubEnd IfIf = "" ThenMsgBox "请经手人签名!", vbCritical, "提示信息!"Exit SubEnd If'添加 "品名") = Trim"型号") = Trim"数量") = Trim"单位") = Trim"经手人") = Trim"入库日期") = Date"说明") = TrimEnd IfDim pm As StringDim pms As StringDim n As StringDim m As Stringpm = Trimn = Valpms = "select * from 库存表 where 品名='" & pm & "'"= adCmdText= pmsIf ThenWith Form2. ."品名") = Trim."型号") = Trim."数量") = Trim."单位") = Trim."说明") = Trim. End WithElsem = "数量").ValueIf "型号") = Trim Then"数量") = Val(m) + Val(n)End IfEnd IfDim X As IntegerX = MsgBox("产品入库登记成功,是否继续添加产品!", vbYesNo + vbQuestion + vbDefaultButton1, "提示信息!") If X = vbNo ThenUnload Me'Else= ""= ""= ""= ""= ""= ""= ""End If= "入库信息"Dim ZB As StringZB = "select * from 入库表 " 'where 品名 = '" & PM & "'"= adCmdText= ZBSubPrivate Sub Command2_Click()= ""= ""= ""= ""= ""= ""End SubPrivate Sub Command3_Click()Unload Me'End Sub出库管理代码:Private Sub Command1_Click()If = "" And = "" Then ' = "" And = "" ThenMsgBox "“品名”和“型号”不能同时为空,必须输入其中一项!", , "提示信息!" Exit SubIf = "" And = "" Then ' = "" ThenMsgBox "请输入产品“数量”或“单位”之一!", , "提示信息!"Exit SubEnd IfIf = "" ThenMsgBox "请经手人签名!", vbCritical, "提示信息!"Exit SubEnd If'添加"品名") = Trim 'Trim"型号") = Trim 'Trim"数量") = Trim"单位") = Trim 'Trim"经手人") = Trim"出库日期") = Date"说明") = TrimEnd IfDim pm As StringDim pms As StringDim n As StringDim m As Stringpm = Trimn = Valpms = "select * from 库存表 where 品名='" & pm & "'"= adCmdText= pmsm = "数量").ValueIf "型号") = Trim Then"数量") = Val(m) - Val(n)End IfDim X As IntegerX = MsgBox("产品出库登记成功,是否继续添加产品!", vbYesNo + vbQuestion + vbDefaultButton1, "提示信息!") If X = vbNo ThenUnload Me'End If= ""= ""= ""= ""= ""= ""= ""= "出库信息"Dim ZB As StringZB = "select * from 出库表 " 'where 品名 = '" & PM & "'"= adCmdText= ZBSubPrivate Sub Command2_Click()= ""= ""= ""= ""= ""= ""= ""End SubPrivate Sub Command3_Click() Unload Me'End SubPrivate Sub Form_Load()Do Until "型号") "品名")"单位")LoopEnd Sub借出管理代码:Private Sub Command1_Click()If = "" And = "" Then ' = "" And = "" ThenMsgBox "“品名”和“型号”不能同时为空,必须输入其中一项!", , "提示信息!" Exit SubElseIf = "" And = "" Then ' = "" ThenMsgBox "请输入产品“数量”或“单位”之一!", , "提示信息!"Exit SubEnd IfIf = "" ThenMsgBox "请经手人签名!", vbCritical, "提示信息!"Exit SubEnd If'添加"品名") = Trim 'Trim"型号") = Trim 'Trim"数量") = Trim"单位") = Trim 'Trim"经手人") = Trim"借出人") = Trim"借出日期") = Date"说明") = TrimEnd IfDim pm As StringDim pms As StringDim n As StringDim m As Stringpm = Trimn = Valpms = "select * from 库存表 where 品名='" & pm & "'"= adCmdText= pmsm = "数量").ValueIf "型号") = Trim Then"数量") = Val(m) - Val(n)End IfDim X As IntegerX = MsgBox("产品借出登记成功,是否继续添加产品!", vbYesNo + vbQuestion + vbDefaultButton1, "提示信息!") If X = vbNo ThenUnload MeEnd If= ""= ""= ""= ""= ""= ""= ""= "借出信息"Dim ZB As StringZB = "select * from 借出表 " 'where 品名 = '" & PM & "'" = adCmdText= ZBSubPrivate Sub Command2_Click()= ""= ""= ""= ""= ""= ""= ""End SubPrivate Sub Command3_Click()Unload MeEnd SubPrivate Sub Form_Load()Do Until "品名")"型号")"单位")LoopEnd Sub归还管理代码:Private Sub Command1_Click()If = "" And = "" Then ' = "" And = "" ThenMsgBox "“品名”和“型号”不能同时为空,必须输入其中一项!", , "提示信息!" Exit SubElseIf = "" And = "" Then ' = "" ThenMsgBox "请输入产品“数量”或“单位”之一!", , "提示信息!"Exit SubEnd IfIf = "" ThenMsgBox "请经手人签名!", vbCritical, "提示信息!"Exit SubEnd IfIf = "" ThenMsgBox "请输入归还人姓名!", vbCritical, "提示信息!"Exit SubEnd If'添加 "品名") = Trim 'Trim"型号") = Trim 'Trim"数量") = Trim"单位") = Trim 'Trim"经手人") = Trim"归还人") = Trim"归还日期") = Date"说明") = TrimEnd IfDim pm As StringDim pms As StringDim n As StringDim m As Stringpm = Trimn = Valpms = "select * from 库存表 where 品名='" & pm & "'"= adCmdText= pmsm = "数量").ValueIf "型号") = Trim Then"数量") = Val(m) + Val(n)End IfDim X As IntegerX = MsgBox("产品归还登记成功,是否继续添加产品!", vbYesNo + vbQuestion + vbDefaultButton1, "提示信息!") If X = vbNo ThenUnload MeEnd If= ""= ""= ""= ""= ""= ""= ""= "归还信息"Dim ZB As StringZB = "select * from 归还表 " 'where 品名 = '" & PM & "'"= adCmdText= ZBSubPrivate Sub Command2_Click()= ""= ""= ""= ""= ""= ""= ""End SubPrivate Sub Command3_Click() Unload MeEnd SubPrivate Sub Form_Load()' Dim i As String' i = 0'' ' Do Until ' "品名") ' "型号")' "单位")' ' i = i + 1' LoopCall pmEnd SubPrivate Sub pm()Dim i As VariantDim j As VariantDim k As VariantDim a As VariantDim b As VariantDim c As VariantDim s As VariantDim D As Varianti = 0j = 0Do Until a = a + "," + "品名")b = b + "," + "型号")b = b + "," + "单位")i = i + 1LoopD = Split(a, ",")If j < i Thens = D(2)s'k = 0'If k < j And D(k) <> D(j) Then'If D(k) <> D(j) Then' D(j)' k = k + 1' Else' k = k + 1'End If'End Ifj = j + 1End If= s 'a + "," + D(2) + D(1) '+ " " + Val(i) + " " + Val(j) + " " + Val(k) = j' D(1)End Sub。
下面是整个仓库管理系统整个设计界面和代码,还是不会的朋友可以私信我。
一、初始界面及代码初始界面代码:Private Sub CommandButton1_Click()入库界面.Show '显示入库界面End SubPrivate Sub CommandButton2_Click()出库界面.Show '显示出库界面End Sub二、出库界面及代码出库界面代码:Private Sub CommandButton1_Click()If TextBox1 = "" Then '检测输入数据是否为空,如果为空弹出'提示窗口,提示用户需要填写MsgBox "名称不能为空", vbOKOnlyExit SubEnd IfIf TextBox2 = "" ThenMsgBox "型号不能为空", vbOKOnlyExit SubEnd IfIf TextBox3 = "" ThenMsgBox "国标号不能为空", vbOKOnlyExit SubEnd IfIf TextBox4 = "" ThenMsgBox "材质不能为空", vbOKOnlyExit SubEnd IfIf TextBox5 = "" ThenMsgBox "数量不能为空", vbOKOnlyExit SubEnd IfIf TextBox6 = "" ThenMsgBox "技术通知号不能为空", vbOKOnlyExit SubEnd IfDim i% '制作后台数据,将现有库存属性'合并为一列存入sheet2,方便下'一步出库时对照i = 2With Sheet1While .Cells(i, 1) <> ""Sheet2.Cells(i, 1) = .Cells(i, 1) & " " & .Cells(i, 2) & " " & .Cells(i,3) & " " & .Cells(i, 4) & " " & .Cells(i, 6)i = i + 1WendEnd WithDim sr As StringDim fd As RangeDim r%Dim idate As Date '记录当前出库时间idate = Format(Now, "yyyy/m/d")sr = TextBox1.Value & " " & TextBox2.Value & " " & TextBox3.Value & " " & TextBox4.Value & " " & TextBox6.ValueSet fd = Sheet2.Range("a:a").Find(what:=sr, lookat:=xlWhole) '用'find函数对要出库标准件在库存中匹配,找到其所在行If fd Is Nothing Then '如果未找到,弹出提示窗体提示用户MsgBox "错误,未在库存中找到您要出库的东西,请重新输入", vbOKOnlyExit SubEnd Ifr = fd.RowWith Sheet1If Abs(TextBox5.Value) > .Cells(r, 5) Then '核对库存是否满足出库数量MsgBox "库存不足,请核对数量是否正确", vbOKOnlyExit SubEnd If.Cells(r, 5) = .Cells(r, 5) - TextBox5.Value '现有库存数量减去出库数量.Cells(r, 10) = .Cells(r, 10) & ";" & idate & "出库" & TextBox5.Value & "件"MsgBox "出库成功,库存数量变为" & .Cells(r, 5), vbOKOnly '出库成功提示End WithCall clear '清空所有文本框内的值End SubSub clear() '清空函数TextBox1 = ""TextBox2 = ""TextBox3 = ""TextBox4 = ""TextBox5 = ""TextBox6 = ""End SubPrivate Sub CommandButton2_Click() Call clearEnd Sub三、入库界面及代码入库界面代码:Private Sub CommandButton1_Click()If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Or TextBox5 = "" Or TextBox6 = "" _Or TextBox7 = "" Or TextBox8 = "" ThenCall 漏项检测Exit SubEnd IfCall 后台合并数据Dim sr As StringDim fd As RangeDim r%Dim i%Dim idate As Dateidate = Format(Now, "yyyy/m/d") '读取当前系统时间,并设定格式sr = TextBox1.Value & " " & TextBox2.Value & " " & TextBox3.Value & " " & TextBox4.Value & " " & TextBox6.ValueSet fd = Sheet2.Range("a:a").Find(what:=sr, lookat:=xlWhole) '用find函数对要出库标准件'在库存中找到其所在行If fd Is Nothing Then '如果入库的标准件不在库存中则执行下面的命令i = 2 '查找第一行空行While Cells(i, 1) <> ""i = i + 1Wend '查找第一行空行With Sheet1.Cells(i, 1) = TextBox1.Value '将用户填写的数据录入表格.Cells(i, 2) = TextBox2.Value.Cells(i, 3) = TextBox3.Value.Cells(i, 4) = TextBox4.Value.Cells(i, 5) = TextBox5.Value.Cells(i, 6) = TextBox6.Value.Cells(i, 7) = idate & "入库" & TextBox5.Value & "件".Cells(i, 8) = TextBox7.Value.Cells(i, 9) = TextBox8.ValueEnd WithMsgBox "添加完成", vbOKOnlyCall clearExit Sub'''''''''''''''''''''End Ifr = fd.RowCells(r, 5) = Cells(r, 5) + TextBox5.ValueCells(r, 7) = Cells(r, 7) & ";" & idate & "入库" & TextBox5.Value & "件"MsgBox "添加完成", vbOKOnlyCall clearEnd SubPrivate Sub CommandButton2_Click() '一键清空Call clearEnd SubSub clear() '清空函数TextBox1 = ""TextBox2 = ""TextBox3 = ""TextBox4 = ""TextBox5 = ""TextBox6 = ""TextBox7 = ""TextBox8 = ""End SubSub 漏项检测()If TextBox1 = "" Then '检测输入数据是否为空,如果为空弹出提示窗口,提示用户需要填写MsgBox "名称不能为空", vbOKOnlyExit SubEnd IfIf TextBox2 = "" ThenMsgBox "型号不能为空", vbOKOnlyExit SubEnd IfIf TextBox3 = "" ThenMsgBox "国标号不能为空", vbOKOnlyExit SubEnd IfIf TextBox4 = "" ThenMsgBox "材质不能为空", vbOKOnlyExit SubEnd IfIf TextBox5 = "" ThenMsgBox "数量不能为空", vbOKOnlyExit SubEnd IfIf TextBox6 = "" ThenMsgBox "技术通知号不能为空", vbOKOnlyExit SubEnd IfIf TextBox7 = "" ThenMsgBox "备注不能为空", vbOKOnlyExit SubEnd IfIf TextBox8 = "" ThenMsgBox "摆放位置不能为空", vbOKOnlyExit SubEnd IfEnd SubSub 后台合并数据()Dim j% '制作后台数据,将现有库存属性合并为一列存入sheet2,方便下一步入库时对照j = 2With Sheet1While .Cells(j, 1) <> ""Sheet2.Cells(j, 1) = .Cells(j, 1) & " " & .Cells(j, 2) & " " & .Cells(j, 3) & " " & .Cells(j, 4) & " " & .Cells(j, 6)j = j + 1WendEnd WithEnd Sub。
操作教程:1.導出編碼A.將編碼庫中編碼按格式導出到編碼表(Bmind)中.(先打開保護功能)2.開單A.物料請購單(QingGou),物料入庫單(RuKu),物料出庫單(ChuKu)B.開單切換功能在開單表(KaiDan)的[P1]單元格<QGD=請購單,RKD=入庫單,CKD=出庫單>C.切換好開單項,點[管理工具] 中的"新建"功能,系統會自動為您生成一個開單編號,並將表單還原到默認狀態D.填寫表單的必填項,雙擊"物料編碼"列啟動編碼輸出控件,選擇您需要的數據寫出到表單E.檢查錄入的數據,保存3.查詢A.切換<QGD=請購單,RKD=入庫單,CKD=出庫單>B.選擇查詢的開單編號,點擊[查詢]4.刪改A.切換<QGD=請購單,RKD=入庫單,CKD=出庫單>B.選擇刪改的開單編號,點擊[刪改]C.已經審核的單是不可以刪改的5.高級查詢A.物料請購單(QingGou),物料入庫單(RuKu),物料出庫單(ChuKu)中各有啟用雙擊功能的查詢選項B.默認支持雙擊查詢,當您雙擊上述三表中的任何有效數據立即啟動高級查詢C.高級查詢表中也支持雙擊功能,查詢條件可以自定義(開單表KaiDan中點擊"查詢"指令可以啟動高級查詢)6.參數管理A.參數管理,開單表KaiDan中點擊"參數"指令打開參數設置表,用戶按格式可新建,更改各參數※.新建,修正与删除編碼A.打开新建编码控件,选择需要添加的类型.B.在物料信息栏输入物料参数,完成后点"添加编码"到数据库.C.修正物料编码:选择类型选择物料,修正物料参数,点"修正编码"到数据库.D.编码删除:选择类型选择物料,可以多选,点右键"删除",输入口令:{默认:"D"},按提示完成删除.E.程序智能生成:拼音简码<需安装微软拼音输入法>,2或4位類型碼,4位名称码,3位属性码並將表單還原到默認狀態令可以啟動高級查詢)。
仓库管理系统论文(VB做的)1111摘要库存管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强.数据安全性好的库。
而对于后者则要求应用程序功能完备,易操作易使用等特点。
经过分析如此情况,我决定使用微软公司的Visual Basic 6为开发工具,利用其提供的各种面向对象的开发工具,尤其是ADO,是能方便而简洁操纵数据库的智能化对象,短期内就可以开发出用户满意的可行系统。
主题词:仓库管理;数据库;VB6;ADOABSTRACTWarehouse manage system is a typical MIS. It mostly includes the foundation and maintenance of the database and the development of the client application program. For the former we must establish a better database, which has well data consistency and data security. For the latter we must make the program has self-contained function and easy to be use.By analyzing the situation, we use the VB6 of the Microsoft Company as client tool. VB6 is very easy to be use and it has many useful tools, especially ADO object, which can easily conveniently manipulate the database. We use it can develop a satisfactory system in short timeKey Words:Warehouse management;Database;Visual Basic 6;ADO第一章绪论1.1 选题背景随着计算机技术的发展,计算机管理已越来越多地运用到了各个领域。