《SQL_server2000数据库课程设计:物资管理信息系统.doc》由会员分享,可在线阅读,更多相关《SQL_server2000数据库课程设计:物资管理信息系统.doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、物资管理信息系统数据库设计报告题 目: 物资管理信息系统 指导老师: 程志军 专 业: 物流工程技术 组长: 崔庆迪(1000008313) 组号: 第六组 组员: 吴绍宏(1000008330)郑建(1000008311)蒋元航(1000008342)李啟云(1000008306)一、课程设计目的数据库课程设计作为一个重要的的教学环节,是物流工程技术专业集中实践性环节系列之一,是学习完数据库原理与应用课程后进行的一次全面的综合练习。其目的在于加深对关系数据库理论和基本知识的理解,初步掌握使用关系数据库SQLSERVER为后台数据库设计一个信息管理系统,综合训练学生的分析问题、设计的基本内容和
2、方法,提高解决实际管理问题的能力,以培养学生的专项技能和职业能力。 二、数据库课程设计内容简介物资管理是一般工业、商业企业生产管理环节中重要的一环,需要对物资基本信息管理、物资调配信息等内容进行完整的监控,这样才能更有效的里用物资。物资入库的时候首先需要登记物资的基本信息,包括物资的种类、名称、型号、单位、单价等,然后登记入库信息,包括物资基本信息,入库地点,入库人、经办人、物资数量等;出库时,需要等级出库信息;根据物资的出入库信息的综合,得到各种物资的余额信息。三、需求分析1、有关物资基本信息的输入,包括物资编号、物资名称、规格型号、种类和计量单位等。2、物资基本信息的查询。3、物资基本信息
3、的修改。4、添加入库基本信息。5、删除入库基本信息。6、添加出库基本信息。7、修改出库基本信息。8、删除出库基本信息。9、查询出库基本信息。10、剩余物资查询。四、系统结构分析1、物理结构物资管理信息系统物资余额信息管理物资基本信息管理物资入库信息管理物资出库信息管理物资余额信息浏览物资余额信息查询出库物资信息查询入库物资信息查询物资基本信息查询出库物资信息添加出库物资信息修改入库物资信息添加入库物资信息修改物资基本信息添加物资基本信息修改2、 逻辑结构(E-R图)物资基本信息实体物资基本信息实体E-R图:物资编号计量单位物资规格物资名称物资入库信息实体E-R图:物资入库信息实体物资基本信息保
4、管人物资出库信息实体出库时间物资基本信息经办人领用人入库时间经办人物资出库信息实体E-R图:物资余额信息实体E-R图:物资余额信息实体物资基本信息仓库数量金 额物资调配物 资物资余额信息出库物资信息入库物资信息物资基本信息物资登记实体之间关系的E-R图:五、表格设计1、物资基本信息表:列名数据类型可否为空物资编号varcharNOT NULL物资名称varcharNOT NULL物资规格varcharNOT NULL类别varcharNULL计量单位varcharNULL2、入库物资信息表格:列名列名数据类型可否为空入库编号rknovarcharNOT NULL入库物资编号rkidVarcha
5、rNOT NULL物资名称rknameVarcharNULL规格型号rkspecVarcharNULL种类rkkindVarcharNULL单位rkunitvarcharNULL数量rkaccountfloatNOT NULL单价rkpriceFloatNOT NULL金额rkvalueFloatNOT NULL入库时间rkdatedatetimeNOT NULL经办人rkdeal_personvarcharNOT NULL保管人rksave_personvarcharNOT NULL仓库rkbasevarcharNULL备注rkmemotextNULL3、出库物资信息表格:列名列名数据类型可
6、否为空出库编号lynovarcharNOT NULL出库物资编号lyidVarcharNOT NULL物资名称lynameVarcharNULL规格型号lyspecVarcharNULL种类lykindVarcharNULL单位lyunitvarcharNULL数量lyaccoutfloatNOT NULL单价lypricefloatNULL金额lyvalueFloatNULL入库时间lydatedatetimeNOT NULL领用人lyuse_personvarcharNOT NULL经办人lydeal_personvarcharNOT NULL仓库lybasevarcharNULL备注ly
7、memotextNULL4、物资余额信息表格:列名列名数据类型可否为空物资编号yeidvarcharNOT NULL物资名称yenamevarcharNOT NULL物资型号yespecvarcharNULL类别yekindvarcharNULL计量单位YeunitfloatNULL数量yeaccountfloatNOT NULL金额 Yevalue floatNOT NULL仓库YebasevarcharNOT NULL备注yememotextNULL六、数据库构建与代码撰写(分工完成)1、开发环境OS: Windows XP SP3 DataBase: SQL Server 20002、框
8、架构建(1)登陆界面:(2)添加物资基本信息:(3)查询物资基本信息:(4)添加入库基本信息:(5)查询入库物资信息:(6)添加出库基本信息:(7)查询剩余物资信息:(8)菜单栏主框架:3、运行结果(1)登陆:(2)添加基本信息:(3)添加入库信息:(4)查询出库信息:七、课程设计心得体会在将近两个星期的课程设计中,我们以小组的形式,通过合理的分工,完成了数据库的设计。也使我们回顾了很多以前的东西,也发现了很多的问题,以前都没遇见过的,收获很大,在对不同的功能代码是不一定可以完整的执行的,不过大概都是一样的,只有一些小的细节。看着自己做的系统,自己就会又欣慰又难过,欣慰的是自己终于把它做出来了
9、,而且,做的还好,难过的是自己知道还有很多的不足,但是,由于认识的有限,无法去完善,才知道“书到用时方恨少”! 此次物资管理信息系统的设计让我们对数据库的了解更深入,可以把它同实际相结合,同时,又让我们学会了一个新的应用软件。 在整个设计过程中,通过怎样对把各个管理信息连接起来的分析,锻炼了我们对事情的分析能力,通过怎样解决过程中出现的问题,提高了我们查找文献的能力、对网络资源的利用能力和和其他同学的交流沟通能力。而且,经历这次的课程设计,我们也学会了自学和分工协作。我们觉得每一次的课程设计,都是让我们对原有的知识从了解表面到深入本质,从个体学习到整体把握的跳跃,对新知识的汲取,更是让我们把课
10、本的知识应用到实际中,让我们了解了我们的学习有什么用,能够解决什么样的问题,增加我们的自信和学习的动力。总之,通过这次的课程设计,我们收获匪浅。 附录:工程模块设计代码Public Mycon As New ADODB.Connection Mycon用于数据库连接Public MyRs As New ADODB.Recordset MyRS用于保存记录集Public MyRs1 As New ADODB.Recordset MyRS1用于保存记录集Public MyRs2 As New ADODB.Recordset MyRS2用于保存记录集登录界面设计代码Dim i As Integer
11、变量i用于累计连接的错误次数Private Sub Command1_Click() 确定 If Trim(Text1.Text) = Then 如果用户名为空,则给出提示 MsgBox 请输入用户名, vbExclamation, 注意 Text1.SetFocus 将焦点定位在用户名文本框中 Else On Error GoTo ErrorHandler 出错则转向ErrorHandler处执行 Mycon.ConnectionString = Driver=SQL Server;Server=PC-201006022034;Database=MMS Mycon.Open 按Connect
12、ionString的设置打开指定的连接 Unload Me 关闭当前窗口 Form3.Show 显示系统的主菜单窗口Form3 End If Exit SubErrorHandler: 错误处理程序入口 i = i + 1 连接错误,变量i累加1 If i = 2 Then 如果连接错误次数不超过2两次 MsgBox 连接失败,请重试用户名或密码, vbExclamation, 注意 Else 如果连接错误次数超过2两次 MsgBox 连接失败次数过多,你不能使用本系统, vbExclamation, 注意 End 结束系统的运行 End IfEnd SubPrivate Sub Comman
13、d2_Click() 退出按钮 Unload Me 回到主封面End SubPrivate Sub Image1_Click()End SubPrivate Sub Form_Load()End SubPrivate Sub Text1_GotFocus() 用户名框获得焦点时 选中Text1中的文本 Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text)End SubPrivate Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then 如果在用户名
14、框中输入了回车键,则 Text2.SetFocus 将焦点切换到密码框 End IfEnd SubPrivate Sub Text2_GotFocus() 密码框获得焦点时 选中Text2中的文本 Text2.SelStart = 0 Text2.SelLength = Len(Text2.Text)End SubPrivate Sub Text2_KeyUp(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then 在密码框输入完密码并按下了回车键 If Trim(Text1.Text) = Then 如果用户名为空,则给出提示 M
15、sgBox 请输入用户名, vbExclamation, 注意 Text1.SetFocus 将焦点定位在用户名文本框中 Else On Error GoTo ErrorHandler 出错则转向ErrorHandler处执行 Mycon.ConnectionString = Driver=SQL Server;Server=PC-201006022034;Database=MMS Unload Me Form3.Show 显示系统的主菜单窗口Form3 End If Exit SubErrorHandler: 错误处理程序入口 i = i + 1 连接错误,变量i累加1 If i = 2 T
16、hen MsgBox 连接失败,请重试用户名或密码, vbExclamation, 注意 Else MsgBox 连接失败次数过多,你不能使用本系统, vbExclamation, 注意 End End If End IfEnd Sub主界面设计部分代码Private Sub about_Click()frmAbout.Show 1End SubPrivate Sub cx111_Click() If MyRs.State = adStateOpen Then End If MyRs.Open material, Mycon, adOpenStatic, adLockOptimistic, a
17、dCmdTableDirect 打开物资基本信息表 Form7.Caption = 按表格浏览物资表 Form7.Show 1 用Form7实现对物资基本信息表按表格浏览End SubPrivate Sub cx112_Click() 按行浏览物资表 If MyRs.State = adStateOpen Then End If MyRs.Open material, Mycon, adOpenStatic, adLockOptimistic, adCmdTableDirect Form4.Caption = 按行浏览物资表 Form4.Show 1 用Form4实现对物资基本信息表按行浏览E
18、nd SubPrivate Sub sc11_Click() Dim strSql As String strSql用于保存查询字符串 Form18.DataCombo1.Enabled = True 设置显示物资编号的组合框有效 Form18.Label1.Enabled = True 设置显示物资编号的文字提示有效 Form18.DataCombo2.Enabled = False 设置显示物资名称的组合框有效 Form18.Label2.Enabled = False 设置显示物资名称的文字提示无效 strSql = SELECT DISTINCT wzid FROM material
19、If MyRs1.State = adStateOpen Then 如果记录集MyRS1处于打开状态 MyRs1.Close 关闭记录集MyRS1 End If MyRs1.Open strSql, Mycon, adOpenStatic, adLockReadOnly 按查询字符串strSql指定的查询产生记录集 Set Form18.DataCombo1.RowSource = MyRs1 设置Form16的显示物资编号的组合框的数据源为MyRS1 Form18.DataCombo1.ListField = wzid 设置Form16的显示物资编号的组合框与记录集MyRS1的学号字段绑定
20、Form18.DataCombo1.Text = Form18.DataCombo2.Text = Form18.Show 1End SubPrivate Sub sc12_Click() Dim strSql As String strSql用于保存查询字符串 Form18.DataCombo1.Enabled = False 设置显示物资编号的组合框有效 Form18.Label1.Enabled = False 设置显示物资编号的文字提示有效 Form18.DataCombo2.Enabled = True 设置显示物资名称的组合框有效 Form18.Label2.Enabled = T
21、rue 设置显示物资名称的文字提示无效 strSql = SELECT DISTINCT wzname FROM material 产生查询字符串,用于从物资表中选择物资名称。 If MyRs1.State = adStateOpen Then 如果记录集MyRS1处于打开状态 MyRs1.Close 关闭记录集MyRS1 End If MyRs1.Open strSql, Mycon, adOpenStatic, adLockReadOnly 按查询字符串strSql指定的查询产生记录集 Set Form18.DataCombo2.RowSource = MyRs1 设置Form16的显示物
22、资名称的组合框的数据源为MyRS1 Form18.DataCombo2.ListField = wzname 设置Form16的显示物资名称的组合框与记录集MyRS1的物资名称字段绑定 Form18.DataCombo1.Text = Form18.DataCombo2.Text = Form18.Show 1End SubPrivate Sub tc_Click() If MyRs.State = adStateOpen Then End If If MyRs1.State = adStateOpen Then End If If MyRs2.State = adStateOpen Then
23、 End If Set MyRs = Nothing Set MyRs1 = Nothing Set MyRs2 = Nothing Set Mycon = Nothing Unload MeEnd SubPrivate Sub sg2_Click()End SubPrivate Sub tij1_Click() 添加物资基本信息 Form9.Show 1End SubPrivate Sub xg1_Click() If MyRs.State = adStateOpen Then 如果记录集MyRS处于打开状态 MyRs.Close 关闭记录集MyRS End If MyRs.Open mat
24、erial, Mycon, adOpenKeyset, adLockBatchOptimistic, adCmdTable Form12.Show 1End Sub添加物资基本信息代码Private Sub Command1_Click() Dim strInsert As String strInsert = INSERT INTO material VALUES( & Text1.Text & , & Text2.Text & , & Text5.Text & , & Text3.Text & , & Text4.Text & ) On Error GoTo errhandle 如果出错则
25、转向errhandler处执行 Mycon.BeginTrans 开始事务 Mycon.Execute (strInsert) 执行添加 Mycon.CommitTrans 提交事务 MsgBox 添加成功 显示添加操作完成的提示消息 Text1.Text = : Text2.Text = : Text5.Text = : Text3.Text = : Text4.Text = 清空在界面上录入的信息 Exit Suberrhandle: 错误处理程序入口,当添加操作出现错误时执行 MsgBox 添加失败 Mycon.RollbackTrans 撤销事务End SubPrivate Sub C
26、ommand2_Click() Unload MeEnd SubPrivate Sub Form_Load()End Sub删除物资基本信息代码Private Sub Command1_Click() Dim strDelete As String, StudName As String If Trim(DataCombo1.Text) And Trim(DataCombo2.Text) = Then strDelete = DELETE material WHERE wzid LIKE & Trim(DataCombo1.Text) & % ElseIf Trim(DataCombo1.Te
27、xt) = And Trim(DataCombo2.Text) Then strDelete = DELETE material WHERE wzname LIKE & Trim(DataCombo2.Text) & % Else Exit Sub End If Mycon.Execute strDelete a = MsgBox(确定要删除指定的物资基本信息吗?, vbOKCancel + vbExclamation, 注意) If a = vbOK Then MsgBox 指定的物资基本信息已经从数据库中删除, vbInformation, 注意 Else MsgBox 删除被撤消, vb
28、Exclamation, 注意 End IfEnd SubPrivate Sub Command2_Click() Unload MeEnd SubPrivate Sub Form_Load()End Sub修改物资基本信息代码Private Sub Command1_Click() MyRs.UpdateBatch 按确定按钮,进行批更新End SubPrivate Sub Command2_Click() MyRs.CancelBatch 按取消按钮,取消批更新End SubPrivate Sub Command3_Click() Unload MeEnd SubPrivate Sub D
29、ataGrid1_Click()End SubPrivate Sub Form_Activate() Set DataGrid1.DataSource = MyRsEnd SubPrivate Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSource = NothingEnd Sub余额统计代码Private Sub Command1_Click() Dim total As Integer, strSql As String 生成查询字符串 strSql = SELECT count(*) FROM msurplus WHERE
30、yename like% & Trim(DataCombo1.Text) & % If MyRs.State = adStateOpen Then End If 执行统计 Set MyRs = Mycon.Execute(strSql) 取出统计结果 total = MyRs.Fields(0) MsgBox Trim(DataCombo1.Text) & 该物资的余额总数为: & Str(total), , 统计结果End SubPrivate Sub Command2_Click() Unload MeEnd SubPrivate Sub Form_Unload(Cancel As Integer) If MyRs.State = adStateOpen Then End If Set DataCombo1.RowSource = NothingEnd Sub