1、VB课程设计报告VB课程设计报告班级:10410111学号:1041011142姓名:王金榕指导老师:吴志强老师题目:小型超市仓库管理系统一、课程设计目的: 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的VB理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高用VB编程实现具体问题的能力。二、课程设计的题目:仓库管理系统要求:实现注册登陆功能,对仓库信息的添加、删除和修改,入库和出库的登记和查询操作等。三、设计说明; 本仓库管理系统是在以Visual Basic为编程语言,以ACCESS作为后台数据库而开发的一个数据库管理系统。3.1、课程设计思想仓库管理主要
2、是企业、超市对各种商品的管理。进货时经检查合同确认为有效托收后,进行验收入库,填写入库单,进行入库登记。企业各个部门根据需要提出产品请求,计划员根据整个企业的需求开出产品出库单,仓库管理人员根据出库单核对发放产品。根据需要按进行统计分析,产生相应报表。仓库管理的特点是信息处理量比较大,所管理的产品种类繁多,而且由于入库单、出库单、等单据发生量特别大,关联信息多,查询和统计的方式各不相同。因此在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递;单据、报表种类繁多,各个部门管理规格不统一等问题。 在本系统的设计过程中,为了克服这些困难,满足计算机管理工作的需要,我们采取了下面的一
3、些原则。统一各种原始单据的格式,统一报表的格式。删除不必要的管理冗余,实现管理规范化、科学化。程序代码标准化,软件统一化,确保软件的可维护性和实用性。界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。建立操作日志,系统自动记录所进行和各种操作。3.2 系统功能需求分析系统功能分析是在系统开发的总体任务的基础上完成。本仓库管理系统需要完成功能主要有: 仓库管理各种信息的输入,包括货物管理、仓库入库、出库、用户管理信息的输入等。仓库管理各种信息的添加、删除、修改和入库和出库的登记和查询操作等。 打印报表的生成。3.3、Access的应用利用Access创建货物管理、入库表、出库表以
4、及用户表。 货物管理信息包括的数据项有商品编号、类别、名称、单位、单价、库存量出库单信息包括的数据项有出库单号、商品编号、名称、类别、总数量、总金额、出库日期、出库时间以及操作员。入库单信息包括的数据项有采购单号、采购日期、供应商、到货时间、结算方式、商品编号、商品名称、总数量、总金额、商品类别、操作员。用户管理信息包括的数据项有用户名、密码。4、源代码:4.1货物管理:Public msg 定义过程级的变量Private Sub cmd_del_Click() 货物删除Dim a As Integera = MsgBox(你确定要删除记录吗?, vbYesNo)If a = vbYes Th
5、enData1.Recordset.DeleteData1.Recordset.MoveNext 使记录指针下移一条记录If Data1.Recordset.EOF Then EOF判断是否在末记录之后 Data1.Recordset.MoveLast 指针下移到最后一条记录 End IfEnd IfEnd SubPrivate Sub cmd_end_Click() 退出EndEnd SubPrivate Sub cmd_find_Click() 查找商品msg = InputBox(请输入准确的商品编号, 查询记录) msg为商品编号Data1.Recordset.FindFirst 商品
6、编号 = & msg & 查找满足条件的第一条记录If Data1.Recordset.NoMatch Then 没找到相匹配的记录 MsgBox 没有该商品!Else MsgBox 符合条件的商品为: & Data1.Recordset.Fields(1) End IfEnd SubPrivate Sub cmd_ins_Click() 添加vb_msg = MsgBox(请输入, vbOKCancel) If vb_msg = vbCancel ThenExit SubEnd IfData1.Recordset.AddNew addnew 将一条空记录添加到记录集的末尾Data1.Reco
7、rdset.Fields(商品编号) = Text1.TextData1.Recordset.Fields(商品类别) = Text2.TextData1.Recordset.Fields(商品名称) = Text3.TextData1.Recordset.Fields(单位) = Text4.TextData1.Recordset.Fields(单价) = Val(Text5.Text)End SubPrivate Sub Cmd_nxt_Click() 下一个Data1.Recordset.MoveNext 指针指向下一条If Data1.Recordset.EOF Then Data1.
8、Recordset.MoveLast MsgBox (已经是最后一件商品!)End IfEnd SubPrivate Sub cmd_pre_Click() 上一条记录Data1.Recordset.MovePrevious 使指针指向上一条记录If Data1.Recordset.BOF Then BOF判断是否在首记录 Data1.Recordset.MoveFirst MsgBox (已经是第一件商品!)End IfEnd SubPrivate Sub cmd_prn_Click() 打印DataReport1.Show 1End SubPrivate Sub cmd_upd_Click
9、() 修改Dim a As Integera = MsgBox(你确定要修改记录吗?, vbYesNo)If a = vbYes ThenData1.Recordset.Edit 对当前记录进行修改Data1.Recordset.Fields(商品编号) = Text1.TextData1.Recordset.Fields(商品类别) = Text2.TextData1.Recordset.Fields(商品名称) = Text3.TextData1.Recordset.Fields(单位) = Text4.TextData1.Recordset.Fields(单价) = Val(Text5.
10、Text)Data1.Recordset.Update 保存End IfEnd Sub4.2出库单Public msg 定义过程级的变量Private Sub cmd_end2_Click() 退出EndEnd SubPrivate Sub cmd_find2_Click() 查找msg = InputBox(请输入准确的商品编号, 查询记录)Data2.Recordset.FindFirst 商品编号 = & msg & 满足条件的第一条记录If Data2.Recordset.NoMatch Then 没找到与之相匹配的记录 MsgBox 没有该商品!Else MsgBox 符合条件的商品
11、为: & Data2.Recordset.Fields(1)End IfEnd SubPrivate Sub cmd_ins2_Click() 添加vb_msg = MsgBox(请输入, vbOKCancel)If vb_msg = vbCancel ThenExit SubEnd IfData2.Recordset.AddNew将空记录添加到记录集的末尾Data2.Recordset.Fields(出库单号) = Text1.TextData2.Recordset.Fields(商品编号) = Text2.TextData2.Recordset.Fields(商品名称) = Text3.T
12、extData2.Recordset.Fields(商品类别) = Text4.TextData2.Recordset.Fields(总数量) = Text5.TextData2.Recordset.Fields(总金额) = Val(Text6.Text)Data2.Recordset.Fields(出库日期) = Text7.TextData2.Recordset.Fields(出库时间) = Text8.TextData2.Recordset.Fields(操作员) = Text9.TextEnd SubPrivate Sub Cmd_nxt2_Click() 下一个Data2.Reco
13、rdset.MoveNext 使指针下移一条记录If Data2.Recordset.EOF Then 判定是否在末尾之后 Data2.Recordset.MoveLast 使指针下移到最后一条记录 MsgBox (已经是最后一件商品!)End IfEnd SubPrivate Sub cmd_pre2_Click() 上一个Data2.Recordset.MovePrevious 使指针上移一条记录If Data2.Recordset.BOF Then 判定是否在首记录之前 Data2.Recordset.MoveFirst 使指针上移到第一条记录 MsgBox (已经是第一件商品!)End
14、 If End SubPrivate Sub cmd_prn2_Click() 打印DataReport2.Show 1End SubPrivate Sub cmd_upd2_Click() 修改Dim a As Integera = MsgBox(你确定要修改记录吗?, vbYesNo)If a = vbYes ThenData2.Recordset.Edit edit 对当前记录进行修改Data2.Recordset.Fields(出库单号) = Text1.TextData2.Recordset.Fields(商品编号) = Text2.TextData2.Recordset.Field
15、s(商品名称) = Text3.TextData2.Recordset.Fields(商品类别) = Text4.TextData2.Recordset.Fields(总数量) = Text5.TextData2.Recordset.Fields(总金额) = Val(Text6.Text)Data2.Recordset.Fields(出库日期) = Text7.TextData2.Recordset.Fields(出库时间) = Text8.TextData2.Recordset.Fields(操作员) = Text9.TextData2.Recordset.UpdateEnd IfEnd
16、SubPrivate Sub com_del2_Click() 删除Dim a As Integera = MsgBox(你确定要删除记录吗?, vbYesNo)If a = vbYes ThenData2.Recordset.DeleteData2.Recordset.MoveNextIf Data2.Recordset.EOF Then Data2.Recordset.MoveLast End IfEnd IfEnd Sub4.4入库单Public msg 定义过程变量Private Sub cmd_del3_Click() 删除Dim a As Integera = MsgBox(你确定
17、要删除记录吗?, vbYesNo)If a = vbYes ThenData3.Recordset.DeleteData3.Recordset.MoveNextIf Data3.Recordset.EOF Then Data3.Recordset.MoveLast End IfEnd IfEnd SubPrivate Sub cmd_end3_Click() 退出EndEnd SubPrivate Sub cmd_find3_Click() 查找msg = InputBox(请输入准确的商品编号, 查询记录)Data3.Recordset.FindFirst 商品编号 = & msg & 满足
18、条件的第一条记录If Data3.Recordset.NoMatch Then MsgBox 没有该商品!Else MsgBox 符合条件的商品为: & Data3.Recordset.Fields(1)End IfEnd SubPrivate Sub cmd_ins3_Click() 添加vb_msg = MsgBox(请输入, vbOKCancel)If vb_msg = vbCancel ThenExit SubEnd IfData3.Recordset.AddNewData3.Recordset.Fields(采购单号) = Text1.TextData3.Recordset.Fiel
19、ds(采购日期) = Text2.TextData3.Recordset.Fields(供应商) = Text3.TextData3.Recordset.Fields(到货时间) = Text4.TextData3.Recordset.Fields(结算方式) = Text5.TextData3.Recordset.Fields(商品编号) = Text6.TextData3.Recordset.Fields(商品名称) = Text7.TextData3.Recordset.Fields(总数量) = Text8.TextData3.Recordset.Fields(总金额) = Val(T
20、ext9.Text)Data3.Recordset.Fields(商品类别) = Text10.TextData3.Recordset.Fields(操作员) = Text11.TextEnd SubPrivate Sub cmd_prn3_Click() 打印DataReport3.ShowEnd SubPrivate Sub cmd_upd3_Click() 修改Dim a As Integera = MsgBox(你确定要修改记录吗?, vbYesNo)If a = vbYes ThenData3.Recordset.Edit 修改当前记录Data3.Recordset.Fields(采
21、购单号) = Text1.TextData3.Recordset.Fields(采购日期) = Text2.TextData3.Recordset.Fields(供应商) = Text3.TextData3.Recordset.Fields(到货时间) = Text4.TextData3.Recordset.Fields(结算方式) = Text5.TextData3.Recordset.Fields(商品编号) = Text6.TextData3.Recordset.Fields(商品名称) = Text7.TextData3.Recordset.Fields(总数量) = Text8.Te
22、xtData3.Recordset.Fields(总金额) = Val(Text9.Text)Data3.Recordset.Fields(商品类别) = Text10.TextData3.Recordset.Fields(操作员) = Text11.TextData3.Recordset.UpdateEnd IfEnd Sub4.4库存查看Private Sub cmd_ck_Click() 查看msg = InputBox(请输入商品名称, 查找记录)Data5.Recordset.FindFirst 商品名称= & msg & 满足条件的一条记录If Data5.Recordset.No
23、Match Then 没找到相匹配的记录MsgBox 没有此商品, vbOKCancel, 按商品名称查找ElseMsgBox 商品编号: + Data5.Recordset.Fields(商品编号) + Space(10) + 商品类别 + Data5.Recordset.Fields(商品类别) + Space(10) + _商品名称 + Data5.Recordset.Fields(商品名称) + Space(20) + 库存量 + Data5.Recordset.Fields(库存量) + Chr(10) + Chr(13), vbOKOnly, _按商品名称查找End IfEnd S
24、ub4.5用户修改Public msg 定义过程级的变量Private Sub cmd_del4_Click() 删除Dim a As Integera = MsgBox(你确定要删除该用户吗?, vbYesNo)If a = vbYes Then Data4.Recordset.Delete Data4.Recordset.MoveNext If Data4.Recordset.EOF Then Data4.Recordset.MoveLast End IfEnd IfEnd SubPrivate Sub cmd_end4_Click() 退出EndEnd SubPrivate Sub cm
25、d_ins4_Click() 添加vb_msg = MsgBox(请输入, vbOKCancel)If vb_msg = vbCancel Then Exit SubEnd IfData4.Recordset.AddNewData4.Recordset.Fields(用户名) = Text1.TextData4.Recordset.Fields(密码) = Text2.TextEnd SubPrivate Sub cmd_mm_Click() 修改密码Dim a As Integera = MsgBox(你确定要修改密码吗?, vbYesNo)If a = vbYes Then Data4.R
26、ecordset.Edit 修改当前记录 Data4.Recordset.Fields(密码) = Text2.Text Data4.Recordset.Update 保存记录End IfEnd Sub4.6主窗口Private Sub ckd_Click() form2.Show 1 End SubPrivate Sub hwgl_Click()form1.Show 1End SubPrivate Sub kcck_Click()Form5.Show 1End SubPrivate Sub rkd_Click()form3.Show 1End SubPrivate Sub tcxt_Clic
27、k()EndEnd SubPrivate Sub yhgl_Click()form4.Show 1End Sub4.7登录Private Sub cmd_cc_Click() 注释:退出系统 Dim i As single i = MsgBox(你确定要退出仓库管理系统吗?, vbYesNo, 退出系统) If i = vbYes Then End End IfEnd SubPrivate Sub cmd_ok_Click() 注释:登录仓库系统 If Text1.Text = Then 当用户名为空时,则弹出警告 MsgBox 请输入用户名, vbOKOnly, 警告 Text1.SetFo
28、cus 再次输入用户名,及text1.text为焦点 End If If Text2.Text = Then 当密码为空时,则弹出警告 MsgBox 请输入密码, vbOKOnly, 警告 Text2.SetFocus 同上 End If If Text1.Text = 王薇 And Text2.Text = wangwei Then MDIForm1.Show (modal) 主窗体显示 form_login.Hide 登录界面隐藏 End IfEnd Sub5、部分运行结果与accsee数据表:六、课程设计体会:在这次VB课程设计过程中,我最大的收获就是深刻地认识到,做事情一定要有耐心,无
29、论遇到什么困难,都不能心烦,否则就很难把事情好。在这次课程设计中,我花了多数时间去找思路。刚开始时真的不知道该怎么做,仓库管理系统到底要创建哪些表,我到底要做哪类仓库管理系统,是企业型的还是超市型的,一点一点琢磨,最后决定做超市类的,这个问题解决了,新的问题又来了,要做超市仓库管理系统,要哪些表、表中要哪些个数据,为了这些个表和数据,我向同学请教过,为此还闹过不少的笑话呢。表和数据都有了,编程的问题又来了,到处找资料、查询、翻书、最后一点点把程序编好,并在自己努力下以及向同学请教下,将我的VB与Access数据表连接起来,并试着运行所编写的代码,刚开始运行时好多问题都接二连三的出现,最大的问题就是打印方面,我要打印四张表,其他三张都没问题,但就是第一张打印有问题,单击打印命令时虽会出现打印表,到不能随着添加、删除、修改而改变,为此我和同学找了老师多遍,可老师老说让我们自己XX去,自己去找答案,我们XX的结果是还要有个ado与data相配合,但是VB编程软件中并未找到此控件,这个问题还有待我去解决。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2