VBA+函数制作仓库管理系统
- 格式:xls
- 大小:131.00 KB
- 文档页数:6


【摘要】进入二十一世纪以来,随着社会的不断进步和科学技术的飞速发展,信息技术进入了爆炸式的年代,信息技术与人们的生活工作已息息相关、密不可分。
计算机局域网、办公自动化已成为各大小企事业单位提高工作效率、简化工作流程、创造更大经济效益的重要手段。
随着计算机在企业管理中应用的普及,利用计算机实现企业的各种管理工作势在必行。
而企业生产制造的关键在于如何规划和计划各种资源在时间、地点、产品之间的合理配备,如何按计划监督责任方对资源的使用情况,如何根据预测和历史情况为决策者提供更有效地利用资源的分析数据。
本系统结合工业企业的生产中的特点经过实际的需求分析,采用功能强大的Visual Basic6.0和SQL Server 2000 作为开发工具而开发出来的企业进销存管理系统。
本系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
该系统的数据库使用了 SQL Server 2000。
程序的设计使用了具有一系列崭新功能的传统数据库开发工具Visual Basic 6.0。
系统的主要功能是制定采购计划、物料需求计算、材料供求分析。
并设计了几个小模块,以实现数据的处理、查询、统计及维护等功能。
Visual Basic的强大功能中数据窗口技术由于其简单、直观、功能强大等特点成为本系统使用最多的技术。
由于Visual Basic采用的是Client/Server 的体系结构,所以本系统可以在局域网上运行以适应需求。
因时间关系以及自身水平的限制,本系统的制作并不完善,所以难免有错误之处,请老师批评指正。
论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。
重点的说明了系统设计的重点、设计思想、难点技术和解决方案。
关键词:SQL Server 2000数据库,Visual Basic6.0,基本信息管理前言进入二十一世纪以来,随着社会的不断进步和科学技术的飞速发展,信息技术进入了爆炸式的年代,信息技术与人们的生活工作已息息相关、密不可分。
1.请购作业程序PrivateSubComCX_Click()’查询'在"编号"文本框中输入编号,连接数据库,查询编号,并将"编号","品名","规格","单位","单价"的数据分别导入到相应文本框。
SetCN=NewADODB.ConnectionSetRs=NewADODB.RecordsetistSecurityInfo=False"'打开数据库Rs.CursorType=adOpenStatic'制定一个静态游标Rs.LockType=adLockOptimistic'设置锁定模式为开放式Rs.Open"select*fromJLBHwhereFtextBHSJLike'"&"%"&Trim(textBHSJ.Text)&"%"&"'",CN DoEventsDoUntilRs.EOF=TrueIfRs.EOF=FalseThenlistBHSJ1.AddItem(Rs.Fields(0))listPMSJ1.AddItem(Rs.Fields(1))listGGSJ1.AddItem(Rs.Fields(2))listDWSJ1.AddItem(Rs.Fields(3))listDJSJ1.AddItem(Rs.Fields(4))Rs.MoveNextEndIfLoopEndSubPrivateSubcomFHZY_Click()’返回上页frmQGZY.HidefrmCKGLXT.ShowEndSubPrivateSubcomQD_Click()’录入数据IftextBHSJ.Text=""OrtextPMSJ.Text=""OrtextGGSJ.Text=""OrtextDWSJ.Text=""Ortext DJSJ.Text=""OrtextQGSLSJ.Text=""ThenMsgBox"请将数据补充完整!"textBHSJ.Text=""textPMSJ.Text=""textGGSJ.Text=""textDWSJ.Text=""textDJSJ.Text=""textQGSLSJ.Text=""ElseDimcnnAsNewConnection,rstAsNewRecordset,fidAsFieldDimstrSqlAsString,strconnAsStringstrSql="SelecttextBHSJFromqgzywheretextBHSJ='"&Trim(textBHSJ.Text)&"'"strconn=strconn&"F:\VB设计专用\仓库数据资料\仓库数据资料.mdb'"cnn.ConnectionString=strconncnn.OpenSetrst=cnn.Execute(strSql)str1="InsertIntoqgzy(textBHSJ,textPMSJ,textGGSJ,textDWSJ,textDJSJ,textQGSJ)" str1=str1+"Values('"&Trim(textBHSJ.Text)&"','"&Trim(textPMSJ.Text)&"','"&Trim( textGGSJ.Text)&"','"&Trim(textDWSJ.Text)&"','"&Trim(textDJSJ.Text)&"','"&Trim( textQGSLSJ.Text)&"')"cnn.Executestr1listBHSJ1.AddItem(Trim(textBHSJ.Text)) listPMSJ1.AddItem(Trim(textPMSJ.Text)) listGGSJ1.AddItem(Trim(textGGSJ.Text)) listDWSJ1.AddItem(Trim(textDWSJ.Text)) listDJSJ1.AddItem(Trim(textDJSJ.Text)) listQGSLSJ1.AddItem(Trim(textQGSLSJ.Text)) MsgBox"数据输入成功!"rst.Closecnn.CloseSetRs=NothingSetCN=NothingtextBHSJ.Text=""textPMSJ.Text=""textGGSJ.Text=""textDWSJ.Text=""textDJSJ.Text=""textQGSLSJ.Text=""EndIfEndSubPrivateSubcomsc_Click()’删除IflistBHSJ1.SelCount>0ThenFori=listBHSJ1.ListCount-1To0Step-1 IflistBHSJ1.Selected(i)Then textBHSJ.Text=listBHSJ1.List(i) textPMSJ.Text=listPMSJ1.List(i) textGGSJ.Text=listGGSJ1.List(i) textDWSJ.Text=listDWSJ1.List(i) textDJSJ.Text=listDJSJ1.List(i) textQGSLSJ.Text=listQGSLSJ1.List(i) EndIfNextEndIfDimcnnAsNewConnection,rstAsNewRecordset,fidAsFieldDimstrSqlAsString,strconnAsStringstrSql="SelectFtextBHSJFromjlbhwhereFtextBHSJ='"&Trim(textBHSJ.Text)&"'" strconn=strconn&"F:\VB设计专用\仓库数据资料\仓库数据资料.mdb'"cnn.ConnectionString=strconncnn.OpenSetrst=cnn.Execute(strSql)Ifrst.EOF=FalseThenstr1="DeletefromqgzywhereFtextBHSJ='"&Trim(textBHSJ.Text)&"'"cnn.Executestr1textBHSJ.Text=""textPMSJ.Text=""textGGSJ.Text=""textDWSJ.Text=""textDJSJ.Text=""IflistBHSJ1.SelCount>0ThenFori=listBHSJ1.ListCount-1To0Step-1 IflistBHSJ1.Selected(i)Then listBHSJ1.RemoveItem(i)listPMSJ1.RemoveItem(i)listGGSJ1.RemoveItem(i)listDWSJ1.RemoveItem(i)listDJSJ1.RemoveItem(i)listQGSLSJ1.RemoveItem(i)EndIfNextEndIfMsgBox"数据已删除!"ElseMsgBox"无此数据!"textPMSJ.Text=""textGGSJ.Text=""textDWSJ.Text=""textDJSJ.Text=""textQGSLSJ.Text=""EndIfrst.Closecnn.CloseSetRs=NothingSetCN=NothingEndSub‘以下是listbox串连显示PrivateSublistBHSJ1_Click() IflistBHSJ1.SelCount>0ThenFori=listBHSJ1.ListCount-1To0Step-1listPMSJ1.Selected(i)=TrueEndIfNextEndIfEndSubPrivateSublistDJSJ1_Click() IflistDJSJ1.SelCount>0ThenFori=listDJSJ1.ListCount-1To0Step-1 IflistDJSJ1.Selected(i)Then listQGSLSJ1.Selected(i)=TrueEndIfNextEndIfEndSubPrivateSublistDWSJ1_Click()Fori=listDWSJ1.ListCount-1To0Step-1 IflistDWSJ1.Selected(i)Then listDJSJ1.Selected(i)=TrueEndIfNextEndIfEndSubPrivateSublistGGSJ1_Click() IflistGGSJ1.SelCount>0ThenFori=listGGSJ1.ListCount-1To0Step-1 IflistGGSJ1.Selected(i)Then listDWSJ1.Selected(i)=TrueEndIfNextEndIfPrivateSublistPMSJ1_Click() IflistPMSJ1.SelCount>0ThenFori=listPMSJ1.ListCount-1To0Step-1 IflistPMSJ1.Selected(i)ThenlistGGSJ1.Selected(i)=TrueEndIfNextEndIfEndSubPrivateSublistQGSLSJ1_Click() IflistQGSLSJ1.SelCount>0ThenFori=listQGSLSJ1.ListCount-1To0Step-1 IflistQGSLSJ1.Selected(i)Then listBHSJ1.Selected(i)=TrueEndIfEndIfEndSub2.增加料号程序PrivateSubcomFHZY_Click()’返回上页frmJLBH.HidefrmCKGLXT.ShowEndSubPrivateSubcomSCBH_Click()’删除IflistBHSJ1.SelCount>0ThenFori=listBHSJ1.ListCount-1To0Step-1 IflistBHSJ1.Selected(i)Then textBHSJ.Text=listBHSJ1.List(i) textPMSJ.Text=listPMSJ1.List(i) textGGSJ.Text=listGGSJ1.List(i) textDWSJ.Text=listDWSJ1.List(i)textDJSJ.Text=listDJSJ1.List(i)EndIfNextEndIfDimcnnAsNewConnection,rstAsNewRecordset,fidAsFieldDimstrSqlAsString,strconnAsStringstrSql="SelectFtextBHSJFromjlbhwhereFtextBHSJ='"&Trim(textBHSJ.Text)&"'" strconn=strconn&"F:\VB设计专用\仓库数据资料\仓库数据资料.mdb'"cnn.ConnectionString=strconncnn.OpenSetrst=cnn.Execute(strSql)Ifrst.EOF=FalseThenstr1="Delete*fromjlbhwhereFtextBHSJ='"&Trim(textBHSJ.Text)&"'"cnn.Executestr1textBHSJ.Text=""textPMSJ.Text=""textGGSJ.Text=""textDWSJ.Text=""textDJSJ.Text=""IflistBHSJ1.SelCount>0ThenFori=listBHSJ1.ListCount-1To0Step-1 IflistBHSJ1.Selected(i)Then listBHSJ1.RemoveItem(i)listPMSJ1.RemoveItem(i)listGGSJ1.RemoveItem(i)listDWSJ1.RemoveItem(i)listDJSJ1.RemoveItem(i)EndIfNextEndIfMsgBox"编号已删除!"ElseMsgBox"无此编号!请确认后重新输入"textBHSJ.Text=""textPMSJ.Text=""textGGSJ.Text=""textDWSJ.Text=""textDJSJ.Text=""EndIfrst.Closecnn.CloseSetRs=NothingSetCN=NothingEndSubPrivateSubcomZJBH_Click()’新增料号IftextBHSJ.Text=""OrtextPMSJ.Text=""OrtextGGSJ.Text=""OrtextDWSJ.Text=""Ortext DJSJ.Text=""ThenMsgBox"请将数据补充完整!"textBHSJ.Text=""textPMSJ.Text=""textGGSJ.Text=""textDWSJ.Text=""textDJSJ.Text=""ElseDimcnnAsNewConnection,rstAsNewRecordset,fidAsFieldDimstrSqlAsString,strconnAsStringstrSql="SelectFtextBHSJFromjlbhwhereFtextBHSJ='"&Trim(textBHSJ.Text)&"'" strconn=strconn&"F:\VB设计专用\仓库数据资料\仓库数据资料.mdb'"cnn.ConnectionString=strconncnn.OpenSetrst=cnn.Execute(strSql)Ifrst.EOF=FalseThenMsgBox"该编号已存在,不能追加!"Elsestr1="InsertIntojlbh(FtextBHSJ,FtextPMSJ,FtextGGSJ,FtextDWSJ,FtextDJSJ)"str1=str1+"Values('"&Trim(textBHSJ.Text)&"','"&Trim(textPMSJ.Text)&"','"&Trim( textGGSJ.Text)&"','"&Trim(textDWSJ.Text)&"','"&Trim(textDJSJ.Text)&"')"cnn.Executestr1listBHSJ1.AddItem(Trim(textBHSJ.Text))listPMSJ1.AddItem(Trim(textPMSJ.Text))listGGSJ1.AddItem(Trim(textGGSJ.Text))listDWSJ1.AddItem(Trim(textDWSJ.Text))listDJSJ1.AddItem(Trim(textDJSJ.Text))MsgBox"恭喜您,添加成功!"EndIfrst.Closecnn.CloseSetRs=NothingSetCN=NothingtextBHSJ.Text=""textPMSJ.Text=""textGGSJ.Text=""textDWSJ.Text=""textDJSJ.Text=""EndIfEndSub‘以下是listbox循环选中程序PrivateSublistBHSJ1_Click() IflistBHSJ1.SelCount>0ThenFori=listBHSJ1.ListCount-1To0Step-1 IflistBHSJ1.Selected(i)Then listPMSJ1.Selected(i)=TrueEndIfNextEndIfEndSubPrivateSublistDJSJ1_Click() IflistDJSJ1.SelCount>0ThenFori=listDJSJ1.ListCount-1To0Step-1 IflistDJSJ1.Selected(i)Then listBHSJ1.Selected(i)=TrueEndIfNextEndIfEndSubPrivateSublistDWSJ1_Click() IflistDWSJ1.SelCount>0ThenFori=listDWSJ1.ListCount-1To0Step-1 IflistDWSJ1.Selected(i)Then listDJSJ1.Selected(i)=TrueEndIfNextEndIfEndSubPrivateSublistGGSJ1_Click() IflistGGSJ1.SelCount>0ThenFori=listGGSJ1.ListCount-1To0Step-1 IflistGGSJ1.Selected(i)Then listDWSJ1.Selected(i)=TrueEndIfNextEndIfEndSubPrivateSublistPMSJ1_Click() IflistPMSJ1.SelCount>0ThenFori=listPMSJ1.ListCount-1To0Step-1 IflistPMSJ1.Selected(i)Then listGGSJ1.Selected(i)=TrueEndIf Next EndIf EndSub。
第一章公司介绍与系统的需求分析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应用程序不同于其他语言开发的单一性程序。
通用Excel库存管理系统,最好用的Excel出入库管理表格库管易网站的表格版块有很多实用出入库管理表格,得到广大仓库管理同行的支持,经过分析与提取各个表格中的实用功能,专门制作了本套《通用Excel库存管理系统》表格。
包含仓库货物做账用到的入库、出库、汇总、报表等全部功能,适合绝大部分的仓库、商铺、网店的出入库管理。
使用前提:本表格使用VBA编程完成出入库的自动化处理,在使用前,请在Excel软件中启用宏,具体的方法可以参考Excel启用宏的方法这篇贴子,正确启用宏功能以后,关闭Excel软件,重新打开表格就可以正常使用了。
本贴子简要介绍Excel库存管理系统,让大家可以快速了解各个功能模板的使用方法,强烈建议您阅读本贴的使用教程,然后再开始使用Excel库存管理系统,这样可以少走很多弯路。
一、系统登录与主界面1、打开库存管理系统,首先看到的是登录界面,要求登录才可以进入系统管理。
系统内置了一个管理员账号:admin,初始密码:123。
在登陆界面点击'修改密码”可以改为您自己想用的密码。
如果想增加账号,请登陆系统后,在主界面中点击'用户申请〃,在弹出窗口中填写好用户名、密码等资料后确认就可以了。
2、成功登录库存管理系统,首先显示操作主界面,这里列出了所有的功能模块。
主界面“功能导航”区域共有12个按钮,对应着不同的管理功能,点击按钮就可以进入相应的功能界面进行操作。
二、货物信息与基础资料在开始做账前,需要完善货物信息与基础资料,在主界面点击'系统设置”按钮,进入设置工作表,界面分为左右两部分。
1、左面是货物(商品)的列表,里面已经输入了一些示例货物信息(1)编号:就是货物编码,就像人的身份证一样,编号是货物的唯一标识,每个货物必须有一个编号并且不能重复。
在制定编号时也可以根据企业的编码规则制定,也可以像示例数据那样直接使用顺序编号。
(2)货物名称、规格型号、单位、库别(分类):请根据实际情况填写。