VB课程设计报告.docx
《VB课程设计报告.docx》由会员分享,可在线阅读,更多相关《VB课程设计报告.docx(19页珍藏版)》请在冰点文库上搜索。
VB课程设计报告
VB课程设计报告
班级:
10410111
学号:
1041011142
姓名:
王金榕
指导老师:
吴志强老师
题目:
小型超市仓库管理系统
一、课程设计目的:
课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的VB理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高用VB编程实现具体问题的能力。
二、课程设计的题目:
仓库管理系统
要求:
实现注册登陆功能,对仓库信息的添加、删除和修改,入库和出库的登记和查询操作等。
三、设计说明;
本仓库管理系统是在以VisualBasic为编程语言,以ACCESS作为后台数据库而开发的一个数据库管理系统。
3.1、课程设计思想
仓库管理主要是企业、超市对各种商品的管理。
进货时经检查合同确认为有效托收后,进行验收入库,填写入库单,进行入库登记。
企业各个部门根据需要提出产品请求,计划员根据整个企业的需求开出产品出库单,仓库管理人员根据出库单核对发放产品。
根据需要按进行统计分析,产生相应报表。
仓库管理的特点是信息处理量比较大,所管理的产品种类繁多,而且由于入库单、出库单、等单据发生量特别大,关联信息多,查询和统计的方式各不相同。
因此在管理上实现起来有一定的困难。
在管理的过程中经常会出现信息的重复传递;单据、报表种类繁多,各个部门管理规格不统一等问题。
在本系统的设计过程中,为了克服这些困难,满足计算机管理工作的需要,我们采取了下面的一些原则。
●统一各种原始单据的格式,统一报表的格式。
●删除不必要的管理冗余,实现管理规范化、科学化。
●程序代码标准化,软件统一化,确保软件的可维护性和实用性。
●界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。
●建立操作日志,系统自动记录所进行和各种操作。
3.2系统功能需求分析
系统功能分析是在系统开发的总体任务的基础上完成。
本仓库管理系统需要完成功能主要有:
●仓库管理各种信息的输入,包括货物管理、、仓库入库、出库、用户管理信息的输入等。
●仓库管理各种信息的添加、删除、修改和入库和出库的登记和查询操作等。
●打印报表的生成。
3.3、Access的应用
利用Access创建货物管理、入库表、出库表以及用户表。
●货物管理信息包括的数据项有商品编号、类别、名称、单位、单价、库存量
●出库单信息包括的数据项有出库单号、商品编号、名称、类别、总数量、总金额、出库日期、出库时间以及操作员。
●入库单信息包括的数据项有采购单号、采购日期、供应商、到货时间、结算方式、商品编号、商品名称、总数量、总金额、商品类别、操作员。
●用户管理信息包括的数据项有用户名、密码。
4、源代码:
4.1货物管理:
Publicmsg'定义过程级的变量
PrivateSubcmd_del_Click()‘货物删除
DimaAsInteger
a=MsgBox("你确定要删除记录吗?
",vbYesNo)
Ifa=vbYesThen
Data1.Recordset.Delete
Data1.Recordset.MoveNext‘使记录指针下移一条记录
IfData1.Recordset.EOFThen‘EOF判断是否在末记录之后
Data1.Recordset.MoveLast‘指针下移到最后一条记录
EndIf
EndIf
EndSub
PrivateSubcmd_end_Click()‘退出
End
EndSub
PrivateSubcmd_find_Click()‘查找商品
msg=InputBox("请输入准确的商品编号","查询记录")‘msg为商品编号
Data1.Recordset.FindFirst"商品编号='"&msg&"'"‘查找满足条件的第一条记录
IfData1.Recordset.NoMatchThen‘没找到相匹配的记录
MsgBox"没有该商品!
"
Else
MsgBox"符合条件的商品为:
"&Data1.Recordset.Fields
(1)
EndIf
EndSub
PrivateSubcmd_ins_Click()‘添加
vb_msg=MsgBox("请输入",vbOKCancel)
Ifvb_msg=vbCancelThen
ExitSub
EndIf
Data1.Recordset.AddNew‘addnew将一条空记录添加到记录集的末尾
Data1.Recordset.Fields("商品编号")=Text1.Text
Data1.Recordset.Fields("商品类别")=Text2.Text
Data1.Recordset.Fields("商品名称")=Text3.Text
Data1.Recordset.Fields("单位")=Text4.Text
Data1.Recordset.Fields("单价")=Val(Text5.Text)
EndSub
PrivateSubCmd_nxt_Click()‘下一个
Data1.Recordset.MoveNext‘指针指向下一条
IfData1.Recordset.EOFThen
Data1.Recordset.MoveLast
MsgBox("已经是最后一件商品!
")
EndIf
EndSub
PrivateSubcmd_pre_Click()‘上一条记录
Data1.Recordset.MovePrevious‘使指针指向上一条记录
IfData1.Recordset.BOFThen‘BOF判断是否在首记录
Data1.Recordset.MoveFirst
MsgBox("已经是第一件商品!
")
EndIf
EndSub
PrivateSubcmd_prn_Click()‘打印
DataReport1.Show1
EndSub
PrivateSubcmd_upd_Click()‘修改
DimaAsInteger
a=MsgBox("你确定要修改记录吗?
",vbYesNo)
Ifa=vbYesThen
Data1.Recordset.Edit‘对当前记录进行修改
Data1.Recordset.Fields("商品编号")=Text1.Text
Data1.Recordset.Fields("商品类别")=Text2.Text
Data1.Recordset.Fields("商品名称")=Text3.Text
Data1.Recordset.Fields("单位")=Text4.Text
Data1.Recordset.Fields("单价")=Val(Text5.Text)
Data1.Recordset.Update‘保存
EndIf
EndSub
4.2出库单
Publicmsg'定义过程级的变量
PrivateSubcmd_end2_Click()‘退出
End
EndSub
PrivateSubcmd_find2_Click()‘查找
msg=InputBox("请输入准确的商品编号","查询记录")
Data2.Recordset.FindFirst"商品编号='"&msg&"'"‘满足条件的第一条记录
IfData2.Recordset.NoMatchThen‘没找到与之相匹配的记录
MsgBox"没有该商品!
"
Else
MsgBox"符合条件的商品为:
"&Data2.Recordset.Fields
(1)
EndIf
EndSub
PrivateSubcmd_ins2_Click()‘添加
vb_msg=MsgBox("请输入",vbOKCancel)
Ifvb_msg=vbCancelThen
ExitSub
EndIf
Data2.Recordset.AddNew‘将空记录添加到记录集的末尾
Data2.Recordset.Fields("出库单号")=Text1.Text
Data2.Recordset.Fields("商品编号")=Text2.Text
Data2.Recordset.Fields("商品名称")=Text3.Text
Data2.Recordset.Fields("商品类别")=Text4.Text
Data2.Recordset.Fields("总数量")=Text5.Text
Data2.Recordset.Fields("总金额")=Val(Text6.Text)
Data2.Recordset.Fields("出库日期")=Text7.Text
Data2.Recordset.Fields("出库时间")=Text8.Text
Data2.Recordset.Fields("操作员")=Text9.Text
EndSub
PrivateSubCmd_nxt2_Click()‘下一个
Data2.Recordset.MoveNext‘使指针下移一条记录
IfData2.Recordset.EOFThen‘判定是否在末尾之后
Data2.Recordset.MoveLast‘使指针下移到最后一条记录
MsgBox("已经是最后一件商品!
")
EndIf
EndSub
PrivateSubcmd_pre2_Click()‘上一个
Data2.Recordset.MovePrevious‘使指针上移一条记录
IfData2.Recordset.BOFThen‘判定是否在首记录之前
Data2.Recordset.MoveFirst‘使指针上移到第一条记录
MsgBox("已经是第一件商品!
")
EndIf
EndSub
PrivateSubcmd_prn2_Click()‘打印
DataReport2.Show1
EndSub
PrivateSubcmd_upd2_Click()‘修改
DimaAsInteger
a=MsgBox("你确定要修改记录吗?
",vbYesNo)
Ifa=vbYesThen
Data2.Recordset.Edit‘edit对当前记录进行修改
Data2.Recordset.Fields("出库单号")=Text1.Text
Data2.Recordset.Fields("商品编号")=Text2.Text
Data2.Recordset.Fields("商品名称")=Text3.Text
Data2.Recordset.Fields("商品类别")=Text4.Text
Data2.Recordset.Fields("总数量")=Text5.Text
Data2.Recordset.Fields("总金额")=Val(Text6.Text)
Data2.Recordset.Fields("出库日期")=Text7.Text
Data2.Recordset.Fields("出库时间")=Text8.Text
Data2.Recordset.Fields("操作员")=Text9.Text
Data2.Recordset.Update
EndIf
EndSub
PrivateSubcom_del2_Click()‘删除
DimaAsInteger
a=MsgBox("你确定要删除记录吗?
",vbYesNo)
Ifa=vbYesThen
Data2.Recordset.Delete
Data2.Recordset.MoveNext
IfData2.Recordset.EOFThen
Data2.Recordset.MoveLast
EndIf
EndIf
EndSub
4.4入库单
Publicmsg'定义过程变量
PrivateSubcmd_del3_Click()‘删除
DimaAsInteger
a=MsgBox("你确定要删除记录吗?
",vbYesNo)
Ifa=vbYesThen
Data3.Recordset.Delete
Data3.Recordset.MoveNext
IfData3.Recordset.EOFThen
Data3.Recordset.MoveLast
EndIf
EndIf
EndSub
PrivateSubcmd_end3_Click()‘退出
End
EndSub
PrivateSubcmd_find3_Click()‘查找
msg=InputBox("请输入准确的商品编号","查询记录")
Data3.Recordset.FindFirst"商品编号='"&msg&"'"‘满足条件的第一条记录
IfData3.Recordset.NoMatchThen
MsgBox"没有该商品!
"
Else
MsgBox"符合条件的商品为:
"&Data3.Recordset.Fields
(1)
EndIf
EndSub
PrivateSubcmd_ins3_Click()‘添加
vb_msg=MsgBox("请输入",vbOKCancel)
Ifvb_msg=vbCancelThen
ExitSub
EndIf
Data3.Recordset.AddNew
Data3.Recordset.Fields("采购单号")=Text1.Text
Data3.Recordset.Fields("采购日期")=Text2.Text
Data3.Recordset.Fields("供应商")=Text3.Text
Data3.Recordset.Fields("到货时间")=Text4.Text
Data3.Recordset.Fields("结算方式")=Text5.Text
Data3.Recordset.Fields("商品编号")=Text6.Text
Data3.Recordset.Fields("商品名称")=Text7.Text
Data3.Recordset.Fields("总数量")=Text8.Text
Data3.Recordset.Fields("总金额")=Val(Text9.Text)
Data3.Recordset.Fields("商品类别")=Text10.Text
Data3.Recordset.Fields("操作员")=Text11.Text
EndSub
PrivateSubcmd_prn3_Click()‘打印
DataReport3.Show
EndSub
PrivateSubcmd_upd3_Click()‘修改
DimaAsInteger
a=MsgBox("你确定要修改记录吗?
",vbYesNo)
Ifa=vbYesThen
Data3.Recordset.Edit‘修改当前记录
Data3.Recordset.Fields("采购单号")=Text1.Text
Data3.Recordset.Fields("采购日期")=Text2.Text
Data3.Recordset.Fields("供应商")=Text3.Text
Data3.Recordset.Fields("到货时间")=Text4.Text
Data3.Recordset.Fields("结算方式")=Text5.Text
Data3.Recordset.Fields("商品编号")=Text6.Text
Data3.Recordset.Fields("商品名称")=Text7.Text
Data3.Recordset.Fields("总数量")=Text8.Text
Data3.Recordset.Fields("总金额")=Val(Text9.Text)
Data3.Recordset.Fields("商品类别")=Text10.Text
Data3.Recordset.Fields("操作员")=Text11.Text
Data3.Recordset.Update
EndIf
EndSub
4.4库存查看
PrivateSubcmd_ck_Click()‘查看
msg=InputBox("请输入商品名称","查找记录")
Data5.Recordset.FindFirst"商品名称='"&msg&"'"‘满足条件的一条记录
IfData5.Recordset.NoMatchThen‘没找到相匹配的记录
MsgBox"没有此商品",vbOKCancel,"按商品名称查找"
Else
MsgBox"商品编号:
"+Data5.Recordset.Fields("商品编号")+Space(10)+"商品类别"+Data5.Recordset.Fields("商品类别")+Space(10)+_
"商品名称"+Data5.Recordset.Fields("商品名称")+Space(20)+"库存量"+Data5.Recordset.Fields("库存量")+Chr(10)+Chr(13),vbOKOnly,_
"按商品名称查找"
EndIf
EndSub
4.5用户修改
Publicmsg'定义过程级的变量
PrivateSubcmd_del4_Click()‘删除
DimaAsInteger
a=MsgBox("你确定要删除该用户吗?
",vbYesNo)
Ifa=vbYesThen
Data4.Recordset.Delete
Data4.Recordset.MoveNext
IfData4.Recordset.EOFThen
Data4.Recordset.MoveLast
EndIf
EndIf
EndSub
PrivateSubcmd_end4_Click()‘退出
End
EndSub
PrivateSubcmd_ins4_Click()‘添加
vb_msg=MsgBox("请输入",vbOKCancel)
Ifvb_msg=vbCancelThen
ExitSub
EndIf
Data4.Recordset.AddNew
Data4.Recordset.Fields("用户名")=Text1.Text
Data4.Recordset.Fields("密码")=Text2.Text
EndSub
PrivateSubcmd_mm_Click()‘修改密码
DimaAsInteger
a=MsgBox("你确定要修改密码吗?
",vbYesNo)
Ifa=vbYesThen
Data4.Recordset.Edit‘修改当前记录
Data4.Recordset.Fields("密码")=Text2.Text
Data4.Recordset.Update‘保存记录
EndIf
EndSub
4.6主窗口
PrivateSubckd_Click()
form2.Show1
EndSub
PrivateSubhwgl_Click()
form1.Show1
EndSub
PrivateSubkcck_Click()
Form5.Show1
EndSub
PrivateSubrkd_Click()
form3.Show1
EndSub
PrivateSubtcxt_Click()
End
EndSub
PrivateSubyhgl_Click()
form4.Show1
EndSub
4.7登录
PrivateSubcmd_cc_Click()注释:
退出系统
DimiAssingle
i=MsgBox("你确定要退出仓库管理系统吗?
",vbYesNo,"退出系统")
Ifi=vbYesThen
End
EndIf
EndSub
PrivateSubcmd_ok_Click()注释:
登录仓库系统
IfText1.Text=""Then‘当用户名为空时,则弹出警告
MsgBox"请输入用户名",vbOKOnly,"警告"
Text1.SetFocus再次输入用户名,及text1.text为焦点
EndIf
IfText2.Text=""Then‘当密码为空时,则弹出警告
MsgBox"请输入密码",vbOKOnly,"警告"
Text2.SetFocus同上
EndIf
IfText1.Text="王薇"AndText2.Text="wangwei"Then
MDIForm1.Show(modal)‘主窗体显示
form_login.Hide‘登录界面隐藏
EndIf
EndSub
5、部分运行结果与accsee数据表:
六、课程设计体会:
在这次VB课程设计过程中,我最大的收获就是深刻地认识到,做事情一定要有耐心,无论遇到什么困难,都不能心烦,否则就很难把事情好。
在这次课程设计中,我花了多数时间去找思路。
刚开始时真的不知道该怎么做,仓库管理系统到底要创建哪些表,我到底要做哪类仓库管理系统,是企业型的还是超市型的,一点一点琢磨,最后决定做超市类的,这个问题解决了,新的问题又来了,要做超市仓库管理系统,要哪些表、表中要哪些个数据,为了这些个表和数据,我向同学请教过,为此还闹过不少的笑话呢。
表和数据都有了,编程的问题又来了,到处找资料、查询、翻书、最后一点点把程序编好,并在自己努力下以及向同学请教下,将我的VB与Access数据表连接起来,并试着运行所编写的代码,刚开始运行时好多问题都接二连三的出现,最大的问题就是打印方面,我要打印四张表,其他三张都没问题,但就是第一张打印有问题,单击打印命令时虽会出现打印表,到不能随着添加、删除、修改而改变,为此我和同学找了老师多遍,可老师老说让我们自己XX去,自己去找答案,我们XX的结果是还要有个ado与data相配合,但是VB编程软件中并未找到此控件,这个问题还有待我去解决。