库存管理 课程设计报告.docx
- 文档编号:24723483
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:33
- 大小:198.55KB
库存管理 课程设计报告.docx
《库存管理 课程设计报告.docx》由会员分享,可在线阅读,更多相关《库存管理 课程设计报告.docx(33页珍藏版)》请在冰豆网上搜索。
库存管理课程设计报告
数据库原理及应用
课程设计论文
题目:
库存管理系统
作者:
电力英1202许梦娇201201320229
电力英1202杨艺宁201201320230
一、课题描述
利用VisualBasic开发出一个小型的库存管理系统。
通过本系统可完成货品信息、入库出库记录以及盘存备份数据信息的增、删、改、查询功能。
二、概念模型设计
三、数据库设计
本库存管理系统是应用在单机系统上的,所以只需建立起一个数据库,在此数据库基础上建立起表格,现将部分数据结构表描述如下:
货品信息表
字段名
数据类型
字段长度
是否为空
货品编码
文本
5
货品名称
文本
10
类别
文本
8
型号
文本
4
单位
文本
2
仓库编码
文本
5
存放仓库
文本
12
入库计划单价
货币
出库计划单价
货币
原始库存
数字
长整型
默认货位
文本
5
警戒底线库存
数字
长整型
警戒高线库存
数字
长整型
表1货品信息表
入库登记表
字段名
数据类型
字段长度
是否为空
入库日期
日期/时间
入库单号
文本
10
货物编码
文本
5
数量
数字
长整型
进货价
货币
总额
货币
已付货款
货币
供货单位编码
文本
5
供货单位
文本
20
经办人编码
文本
5
经办人
文本
8
增值税率
数字
单精度型
备注
备注
表2入库登记表
出库登记表
字段名
数据类型
字段长度
是否为空
出库日期
日期/时间
出库单号
文本
10
货物编码
文本
5
货物名称
文本
10
数量
数字
长整型
单价
货币
出货价
货币
总额
货币
已收获款
货币
收货单位编码
文本
5
收货单位
文本
20
经办人编码
文本
5
经办人
文本
8
增值税率
数字
单精度型
备注
备注
表3货品出库表
仓库信息表
字段名
数据类型
字段长度
是否为空
仓库编号
文本
5
仓库名称
文本
12
存货种类
文本
2
存货价值
货币
表4仓库信息表
供货单位信息表(收货单位表)
字段名
数据类型
字段长度
是否为空
单位编号
文本
5
单位名称
文本
50
单位地址
文本
50
电话
文本
15
联系人
文本
8
表5供货单位信息表
经办人员表
字段名
数据类型
字段长度
是否为空
编号
文本
5
姓名
文本
8
家庭住址
文本
50
办公电话
文本
15
家庭电话
文本
15
表6经办人员表
用户表
字段名
数据类型
字段长度
是否为空
UserID
文本
10
userPWD
文本
6
表7用户表
另外,我们还建立了几张查询表,用以存放部分用于计算的统计信息,以便查询。
●入库登记统计表入库登记_合计
●货品入库年度统计表入库登记_n
●供货单位年度供货金额统计表入库登记_w
●库存汇总表库存
●出库登记统计表出库登记_合计
●货品出库年度统计表出库登记_h
●收货单位年度收货金额统计表出库登记_d
入库登记_合计表与出库登记_合计分别是以入库登记表和出库登记表为基础的,所以此处不再描述;库存汇总表主要由出库表和入库表建立关系获得。
入库登记_n
字段名
数据类型
字段长度
是否为空
货物名称
文本
10
入库日期
日期/时间
年度数量
数字
长整型
表8入库登记_n
入库登记_w
字段名
数据类型
字段长度
是否为空
供货单位
文本
50
入库日期
日期/时间
年度供货总额
数字
长整型
表9入库登记_w
库存汇总
字段名
数据类型
字段长度
是否为空
货物编码
文本
5
入库日期
日期/时间
货物名称
文本
10
数量(入库)
数字
长整型
进货价
货币
数量(出库)
数字
长整型
库存数量
数字
长整型
表10库存汇总表
出库登记_h
字段名
数据类型
字段长度
是否为空
货物名称
文本
10
出库日期
日期/时间
年度数量
数字
长整型
表11出库登记_h
出库登记_d
字段名
数据类型
字段长度
是否为空
收货单位
文本
50
出库日期
日期/时间
年度金额总额
数字
长整型
表12出库登记_d
四、程序代码
程序实现的部分代码如下:
●公共模块
Publicdate1AsString
Publicdate2AsString
PublicgUserNameAsString'保存用户名
'添加执行SQL语句的函数
PublicFunctiontransactSQL(ByValsqlAsString)AsADODB.Recordset
DimconAsADODB.Connection
DimrsAsADODB.Recordset
DimstrConnectionAsString
DimstrArray()AsString
Setcon=NewADODB.Connection'创建连接
Setrs=NewADODB.Recordset'创建记录集
OnErrorGoToTransactSQL_Error
strConnection="Provider=Microsoft.jet.oledb.4.0;DataSource=E:
\库存管理\kucun.mdb"
strArray=Split(sql)
con.OpenstrConnection'打开连接
IfStrComp(UCase$(strArray(0)),"select",vbTextCompare)=0Then
rs.OpenTrim$(sql),con,adOpenKeyset,adLockOptimistic
SettransactSQL=rs'返回记录集
iflag=1
Else
con.Executesql'执行命令
iflag=1
EndIf
TransactSQL_Exit:
Setrs=Nothing
Setcon=Nothing
ExitFunction
TransactSQL_Error:
MsgBox"查询错误:
"&Err.Description
iflag=2
ResumeTransactSQL_Exit
EndFunction
●主窗体的程序代码
PrivateSuba1_Click()
Form1.Show
EndSub
PrivateSuba2_Click()
DimfAddAsNewfrmAddUser
fAdd.Show
fAdd.ZOrder0
EndSub
PrivateSuba3_Click()
DimfChangePWDAsNewfrmChangePWD
fChangePWD.Show
EndSub
PrivateSuba4_Click()
frmAbout.Show
EndSub
PrivateSuba5_Click()'调入数据备份
Loadmain_sjbf
main_sjbf.Show
main.Enabled=False
EndSub
PrivateSuba6_Click()'调入数据恢复
Loadmain_sjhf
main_sjhf.Show
main.Hide
EndSub
PrivateSubb1_Click()
frm货品信息.Show
EndSub
PrivateSubb12_Click()
sql="select*from货品信息orderby货品编码"
frmProInfo.createList(sql)
frmProInfo.Show
EndSub
PrivateSubb2_Click()
frm货品库存.Show
EndSub
PrivateSubB3_Click()
frm超储货品.Show
EndSub
PrivateSubb4_Click()
frm短线货品.Show
EndSub
PrivateSubc1_Click()
frm入库登记.Show
EndSub
PrivateSubc2_Click()
frm货品入库年度统计.Show
EndSub
PrivateSubc3_Click()
frm供货单位供货分类金额统计.Show
EndSub
PrivateSubc4_Click()
frm供货单位年度供货金额统计.Show
EndSub
PrivateSubCommand1_Click()
date1=Text1.Text&"/"&Text3.Text&"/"&Text2.Text
date2=Text6.Text&"/"&Text4.Text&"/"&Text5.Text
Text7.Text=date1
EndSub
PrivateSubd1_Click()
frm出库登记.Show
EndSub
PrivateSubd2_Click()
frm货品出库年度统计.Show
EndSub
PrivateSubd3_Click()
frm收货单位期间收货统计.Show
EndSub
PrivateSubd4_Click()
frm收货单位年度收货金额统计.Show
EndSub
PrivateSube1_Click()
frm盘存录入.Show
EndSub
PrivateSube2_Click()
frm盘存表.Show
EndSub
PrivateSubf1_Click()
frm货品出入汇总表.Show
EndSub
PrivateSubg1_Click()
frm经办人员.Show
EndSub
PrivateSubg2_Click()
frm供货单位.Show
EndSub
PrivateSubg3_Click()
frm仓库信息.Show
EndSub
PrivateSubg5_Click()
Form6.Show
EndSub
PrivateSubh1_Click()
frm历史库存.Show
EndSub
PrivateSubh2_Click()
frm历史入库.Show
EndSub
PrivateSubh3_Click()
frm历史出库.Show
EndSub
PrivateSubi1_Click()
DataReport1.Show
EndSub
PrivateSubi2_Click()
DataReport2.Show
EndSub
PrivateSubi3_Click()
DataReport3.Show
EndSub
PrivateSubj1_Click()
Form2.Show
EndSub
PrivateSubj2_Click()
Form3.Show
EndSub
PrivateSubj3_Click()
Form4.Show
EndSub
PrivateSubj4_Click()
Form5.Show
EndSub
PrivateSubToolbar1_ButtonClick(ByValButtonAsComctlLib.Button)
SelectCaseButton.Key
CaseIs="rk"'调入入库登记
c1_Click
CaseIs="ck"'调入出库登记
d1_Click
CaseIs="kchz"'调入库存汇总
f1_Click
CaseIs="zhcx"'调入组合查询
j4_Click
CaseIs="sjbf"'调入数据备份
a5_Click
EndSelect
EndSub
PrivateSubx_Click()
End
EndSub
●登陆模块的实现
PrivateSubcmdLogin_Click()
denlu_name=txtUserName.Text
denlu_pass=txtPassword.Text
DimmycnAsNewADODB.Connection
DimmyrsAsNewADODB.Recordset
Setmyrs=NewADODB.Recordset
mycn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=kucun.mdb;"
myrs.Open"SELECT*FROM[用户]whereuserID='"+denlu_name+"';",mycn,adOpenKeyset,adLockOptimistic
Ifmyrs.BOF=TrueAndmyrs.EOF=TrueThen
MsgBox"查无此人",,"登陆信息"
Else
Ifmyrs("userPWD")=denlu_passThen
''''''''''''''''''''''''''''''''''''''''''
MsgBox"身份正确",,"登陆信息"
main.Show
UnloadMe
'''''''''''''''''''''''''''''''''''''''''''''''''''
Else
MsgBox"密码不正确",,"登陆信息"
EndIf
EndIf
EndSub
●添加用户模块的实现
OptionExplicit
PrivateSubCommand1_Click()
DimsqlAsString
DimrsAsADODB.Recordset
IfTrim(UserName.Text)=""Then'判断用户名称是否为空
MsgBox"请输入用户名称!
",vbOKOnly+vbExclamation,"警告"
ExitSub
UserName.SetFocus
Else
sql="select*from用户whereUserID='"&UserName&"'"
Setrs=transactSQL(sql)
Ifrs.EOF=FalseThen'判断是否已经存在用户
MsgBox"这个用户已经存在!
请重新输入用户名称!
",vbOKOnly+vbExclamation,"警告"
UserName.SetFocus
UserName.Text=""
PassWord.Text=""
ConfirmPWD.Text=""
ExitSub
Else
IfTrim(PassWord.Text)<>Trim(ConfirmPWD.Text)Then'判断两次密码是否相同
MsgBox"两次输入的密码不一致,请重新输入密码!
",vbOKOnly+vbExclamation,"警告"
PassWord.Text=""
ConfirmPWD.Text=""
PassWord.SetFocus
ExitSub
ElseIfTrim(PassWord.Text)=""Then'判断密码是否为空
MsgBox"密码不能为空!
",vbOKOnly+vbExclamation,"警告"
PassWord.Text=""
ConfirmPWD=""
PassWord.SetFocus
Else'添加用户
sql="insertinto用户(UserID,UserPWD)values('"&UserName
sql=sql&"','"&PassWord&"')"
transactSQL(sql)
MsgBox"添加成功!
",vbOKOnly+vbExclamation,"添加结果"
'重新设置初始化为空
UserName.Text=""
PassWord.Text=""
ConfirmPWD.Text=""
UserName.SetFocus
EndIf
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
UserName.Text=""
PassWord.Text=""
ConfirmPWD.Text=""
EndSub
●修改用户密码的实现
OptionExplicit
PublicgUserNameAsString
PrivateSubCommand1_Click()
DimsqlAsString
DimrsAsADODB.Recordset
IfTrim(OldPWD.Text)=""Then'判断是否输入旧密码
MsgBox"请输入旧密码!
",vbOKOnly+vbExclamation,"警告"
OldPWD.SetFocus
ExitSub
Else
IfTrim(NewPWD.Text)=""Then'判断是否输入新密码
MsgBox"请输入新密码!
",vbOKOnly+vbExclamation,"警告"
NewPWD.SetFocus
ExitSub
ElseIfTrim(NewPWD.Text)<>Trim(ConfirmPWD.Text)Then'判断两次密码是否相同
MsgBox"两次密码不同!
",vbOKOnly+vbExclamation,"警告"
NewPWD.Text=""
ConfirmPWD.Text=""
NewPWD.SetFocus
Else
'修改密码
sql="update用户setUserPWD='"&NewPWD&"'whereUserID='"
sql=sql&gUserName&"'"
transactSQL(sql)
MsgBox"密码已经修改!
",vbOKOnly+vbExclamation,"修改结果"
UnloadMe
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
OldPWD.Text=""
NewPWD.Text=""
ConfirmPWD.Text=""
EndSub
●数据备份模块的实现
PrivateSubForm_Activate()
'赋值给text1
Text1.Text="A"
EndSub
PrivateSubCommand1_Click()'确认数据备份
Me.MousePointer=11
YesNo=MsgBox("准备好了吗?
",vbNo+vbQuestion)
IfYesNo=vbNoThen
ExitSub
EndIf
OnErrorGoToerrprompt
Me.MousePointer=11
MkDir(Text1.Text&":
\数据备份")
FileCopyApp.Path&"\kucun.mdb",Text1.Text&":
\数据备份\kucun"&Date&".mdb"
Me.MousePointer=0
MsgBox"数据已备份完毕。
"
errprompt:
Me.MousePointer=0
SelectCaseErr.Number
Case57
MsgBox"磁盘已满!
",vbCritical
Case70
MsgBox"磁盘写保护!
",vbCritical
EndSelect
EndSub
PrivateSubCommand2_Click()
Loadmain
main.Show
main.Enabled=True
UnloadMe
EndSub
PrivateSubForm_Unload(CancelAsInteger)
main.Enabled=True
EndSub
●数据恢复模块的实现
PrivateSubForm_Unload(CancelAsInteger)
main.Enabled=True
EndSub
PrivateSubDir1_Change()
File1.Path=Dir1.Path
EndSub
PrivateSubDrive1_Change()
Dir1.Path=Drive1.Drive
EndSub
PrivateSubFile1_Click()
Text1.Text=Dir1.Path&"\"&File1.FileName
EndSub
PrivateSubCommand1_Click()
'恢复指定路径下的数据库
IfText1.Text=""Then
MsgBox"请选择要恢复的数据!
"
Else
Me.MousePointer=11
FileCopyDir1.Path
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 库存管理 课程设计报告 库存 管理 课程设计 报告