ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:365.04KB ,
资源ID:26297327      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26297327.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库原理与应用课程设计指导书ACCESS.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库原理与应用课程设计指导书ACCESS.docx

1、数据库原理与应用课程设计指导书ACCESS数据库原理与应用实训指导书交通信息学院2011.09 库存管理系统传统的库存管理,一批产品从入库到出库,要经过多个环节,而且具有如下几个弊端:手工处理入库、出库造成产品供应效率低,影响企业发展;手工完成大量的入库、出库和库存统计,造成库存产品汇总困难,使库存结构难以掌握;仓库与管理部门之间信息交流少,造成库存积压,使资金周转缓慢。建立计算机化的库存管理系统可以对解决这些问题提供有效地帮助。一、数据库设计根据库存管理系统分析,库存管理系统处理的数据涉及的表有入库表、出库表、库存表以及商品信息等。要使所有表既无数据冗余,又无传递依赖,可将库存管理系统数据库

2、定义为5张表,分别为商品入库表、商品出库表、库存表、商品信息表和仓库表。各表结构如下:表1 商品入库表字段名称字段类型长度允许空值备注入库ID数字长整型必填主键入库日期日期/时间长日期商品代码文本20必填入库数量数字长整型必填单位文本4组合框仓库文本10组合框标志文本1入库数量修改差数字长整型表2 商品出库表字 段 名 称字 段 类 型长 度允 许 空 值备 注出库ID数字长整型必填主键出库日期日期/时间长日期商品代码文本20必填出库数量数字长整型必填单位文本4组合框仓库文本10组合框标志文本1出库数量修改差数字长整型表3 库存表字 段 名 称字 段 类 型长 度必填备 注商品代码数字长整型主

3、键商品名称文本50仓库文本10组合框单位文本4必填组合框库存数量数字长整型必填默认值:0最高储备数字长整型必填最低储备数字长整型表4 商品信息表字 段 名 称字 段 类 型长 度允 许 空 值备 注商品代码文本20必填主键商品名称文本50必填条形码文本20必填商品拼音编码文本10必填单位文本4必填规格文本10必填产地文本20必填类别文本10必填进货价数字单精度必填仓库文本10必填表5 仓库表字 段 名 称字 段 类 型长 度允 许 空 值备 注仓库ID数字长整型必填主键仓库名称文本10仓库位置文本50仓库类型文本50安全等级文本50仓库用途文本50仓库容量数字长整型默认值:0二、模块设计根据前

4、面的分析,并依据系统设计,对整个系统进行模块设计,得到如图1所示功能模块。图1 库存管理系统功能模块三、 库存管理系统设计过程1创建新数据库启动Access 2003 创建“库存管理系统.mdb”空数据库。 2.创建表根据表1-表5的结构在“库存管理系统.mdb”中创建表。3设置各表间的关系按图2所示的关系创建表间关系。4填写入库/出库单入库/出库处理最基本的工作内容是填写入库/出库单,修改库存。根据仓库管理的要求,应在填写完入库/出库单后立即修改库存,将入库数量加到库存量中,将出库数量从库存量中减去。要完成这样的计算操作可以使用更新查询。因此,在实现这个功能模块时,首先建立更新查询,然后创建

5、填写入库/出库单窗体,并将更新查询与窗体连接起来,在关闭窗体时运行该查询,完成“库存表”的修改操作。(1)创建更新库存查询查询的功能是使用入库信息更新库存量和使用出库信息更新库存量。查询名称分别为“更新库存量(入库)”和“更新库存量(出库)”。创建“更新库存量(入库)”的步骤如下。 图2 表间关系在数据库窗口中单击“查询”容器,然后双击“在设计视图中创建查询”,调出“查询设计视图”窗口,并显示一个“显示表”对话框,在“显示表”对话框中,单击“表”选项卡,然后分别双击“商品入库表”和 “库存表”,单击【关闭】按钮,关闭“显示表”对话框。如图3所示。图3 显示表对话框选择“查询”“更新查询”菜单命

6、令,在查询“设计网格”中显示一个“更新到”行。将“库存表”中的“库存数量”字段拖动到“设计网格”的“字段”行的第1列中,将“商品入库表”中的“标志”字段拖动到“设计网格”的“字段”行的第2列中,再在“库存数量”字段的“更新到”单元格中输入更新表达式“库存表!库存数量+商品入库表!入库数量”。在“标志”字段的“更新到”单元格中输入“1”,在“条件”单元格中输入条件“0”,如图4所示。图4入库更新查询窗口为了能够区分已经处理的入库单,在“商品入库表”中设置了一个“标志”字段,当该字段值为“0”时,表示该入库单的“入库数量”还未加到“库存表”中。所以,在建立更新查询时,应只对“标志”字段值为“0”的

7、“库存量”字段值进行更新。更新后,应将“标志”字段值改为“1”,表示已经处理完毕。 单击工具栏的【保存】按钮或选择“文件”“保存”菜单命令保存该查询,并命名为“更新库存量(入库)”。“更新库存量(出库)”查询的创建步骤与上述步骤相同,结果如图5所示。图5 出库更新查询窗口(2)创建填写入库/出库单窗体 建立如图6所示的入库单窗体。方便输入操作,设置“日期”字段的“输入掩码”为“0000-99-99;0;_;”,“默认值”设置为“=date()”。图6入库单窗体设置窗体的“格式”属性和“数据”属性,如图7所示。图7 设置窗体属性(3)入库单号查重:在“商品入库表”中,每个入库记录对应一个入库单号

8、,即“入库ID”值。为了避免输入重复的入库单号,系统提供入库单号查重功能。将输入的入库单号与表中的“入库ID”进行比较,如果两值相同,则显示提示信息。在“入库单输入”窗体的设计视图中,单击选中“入库单号”文本框,右击调出快捷菜单,选择“属性”命令,在调出的“入库单号”文本框属性对话框中,选择“事件”选项卡,在“更新后”文本框中选中“事件过程”,如图8所示。 图8 创建“更新后”事件然后再单击其后的“”按钮,调出“Microsoft Visual编辑器”窗口,在光标处插入下列代码。 Private sub 入库单号_afterupdate() With CodeContextObject rrr

9、=商品入库表!入库ID=&Me!入库单号 DoCmd.ApplyFilter uuu,rrr If(.RecordestClone.RecordCount0) Then MsgBox入库单号已存在,请重新输入!,vbOKOnly,提示框“ 入库单号.SetFocus End If End With End sub(4)入库单保存:输入入库单信息后,单击【保存】按钮即可将输入的数据添加到“商品入库表”中。“保存”命令按钮的“单击”事件的代码如下。Private sub 保存r_click()DoCmd.GoToRecord , , acNewRecMe!入库ID=Me!入库单号Me!日期=Me!

10、日期rMe!商品代码=Me!商品代码rMe!入库数量=Me!入库数量rMe!标志=0DoCmd.DoMenuItem acFromBar,acRecordsMenu,acSaveRecord, ,acMenuVer70Me!入库单号= Me!日期r=DateMe!商品代码r= Me!入库数量r=0Me.RefreshExit_保存r_click()(5)入库单重填:如果数据输入有误或希望放弃此次输入,可单击【重填】按钮。该命令按钮的“单击”事件代码如下。 Private sub重填r_click() Me!入库单号 = Me!日期r = Date Me!商品代码r = Me!入库数量r = 0

11、 End sub(6)入库单取消:这里的取消操作实质上是退出输入操作,即关闭输入窗口。该命令按钮上的“单击”事件代码为: Private sub取消r_click()DoCmd.Close End sub(7)库存量修改:本系统在输入完成所有入库单后,对“库存表”中的“库存数量”进行修改,即在关闭输入窗口时完成修改操作。因此,可设置窗口的“关闭”事件,当发生该事件时运行已建立的“更新库存量(入库)”更新查询。更新库存量代码如下:Private sub form_close() DoCmd.OpenQuery 更新库存量(入库),acViewNormal,acEdit End sub 出库单输入

12、窗体的建立内容和方法与入库单输入相似。 5维护入库/出库单信息有时,输入的入库单或出库单数据在存盘后才发现错误,就需要对其进行修改。修改数据与输入数据相似,修改完成后,应对“库存表”中“库存数量”作相应更新。为了方便更新,在“商品入库表”和“商品出库表”中增加了一个记忆修改前和修改后差值的字段,分别是“入库数量修改差”和“出库数量修改差”,应用该字段来更新“库存数量”。要完成这样的操作,需要建立更新查询。(1)创建更新库存查询建立更新库存查询的方法与上述相同。当“商品入库表”或“商品出库表”中的“标志”字段值为“0”时,表示还未对“库存数量”进行修改,因此要用这些数量值更新“库存数量”值。但应

13、注意,更新完成后应将相应的“标志”字段值由“0”改为“1”。“更新修改后的库存数量(入库)”的设计视图如图9所示。图9 更新修改后的库存数量(入库)”的设计视图(2)创建维护入库/出库窗体 商品入库单维护窗体如图10所示。该窗体分为3个部分:上半部分为入库单信息显示区;中间部分为修改区,该区放置了3个文本框控件,用来修改制定的入库单;下半部分为查询区,该区有3个文本框和一个组合框,用来查找需要修改的入库单。窗体最下方有3个命令按钮,实现查询、保存和退出等功能。图10 商品入库单维护窗体1 入库单保存:修改数据时,即可以在修改区直接输入要修改的数据,也可以先查找要修改的入库单,然后在显示区修改。

14、当修改区输入了要修改的内容后,直接单击“保存”命令按钮,即可保存已输入的修改信息。“保存”命令按钮的“单击”事件代码如下。 Private sub命令1_click()Me!入库ID.SetFocus DoCmd.FindRecord Me!文本1, , True, , True Me!入库ID=Me!文本1 Me!入库日期=Me!文本2 Me!入库数量修改差=Me!文本3-Me!入库数量 Me!入库数量=Me!文本3 Me!标志=0 Me!文本1= Me!文本2=Date Me!文本3=0 Me.Refresh End sub入库单查询:在查询区输入查询内容,然后单击【查询】按钮查找相应的内

15、容,如果找到,信息显示区指针定位到该记录,此时可对该记录进行修改。为了实现这样的查询,需要对每一输入框的“失去焦点”事件进行记录定位设置,然后通过“查询”命令按钮的“单击”事件完成实际定位。4个输入控件的“失去焦点”事件的代码如下。入库单号“失去焦点”事件代码:Me!入库ID.SetFocusDoCmd.FindRecord Me!文本4, , True, , TrueMe!命令5.Visible=True入库日期“失去焦点”事件代码:Me!入库日期.SetFocusDoCmd.FindRecord Me!文本5, , True, , TrueMe!命令5.Visible=True入库数量“失

16、去焦点”事件代码:Me!入库数量.SetFocusDoCmd.FindRecord Me!文本6, , True, , TrueMe!命令5.Visible=True商品代码“失去焦点”事件代码:Me!商品代码.SetFocusDoCmd.FindRecord Me!组合1, , True, , TrueMe!命令5.Visible=True【查询】按钮的“单击”事件VBA代码:Screen.PreviousControl.SetFocusDoCmd.FindNext【退出】按钮的功能是关闭窗体(3)修改库存量:与入库输入设计一样,修改入库单后对“库存数量”的修改也是在关闭输入窗口时完成,即设

17、置窗口的“关闭”事件,当发生该事件时运行已建立的“更新修改后的库存数量(入库)”更新查询。所设代码如下:DoCmd.OpenQuery 更新修改后的库存数量(入库), acViewNormal, acEdit6.查询入库/出库单信息对入库/出库信息的查询可按入库/出库单中的任意内容查询。无论是查询入库信息,还是查询出库信息,其设计方法相同,只是窗体所用数据源不同。因此,只介绍入库信息查询。入库信息查询控制窗体如图11所示。图11 入库信息查询窗体(1)高级查询单击【高级查询】按钮,调出“入库信息高级查询”窗体,如图12所示。在窗体中相应的文本框内输入要查询的内容,然后单击【查找记录】按钮,这时

18、系统将在“商品入库表”中查找记录并显示在窗体中。使用向导创建以“商品入库表”为数据源的“表格”式窗体。调整窗体页眉区大小,并在页眉区上方放置1个标签、1个组合框和3个文本框。3个文本框用来输入“入库单号”、“入库日期”、“入库数量”等内容,组合框用来选择“商品代码”。在窗体页脚区放置2个命令按钮,“查找记录”和“退出”。保存查询窗体,并命名为“入库信息高级查询”。图12 高级查询窗口编写查询代码,对每个文本框的“失去焦点”事件进行记录定位设置,然后通过“查找记录”命令按钮的“单击”事件完成实际定位。4个输入控件的“失去焦点”事件的代码如下。入库单号“失去焦点”事件代码: Private Sub

19、 文本21_LostFocus() On Error GoTo Err_文本21_LostFocus Me!入库ID.SetFocusDoCmd.FindRecord Me!文本21, , True, , True Me!命令5.Visible = TrueExit_文本21_LostFocus: Exit SubErr_文本21_LostFocus: MsgBox Err.Description Resume Exit_文本21_LostFocusEnd Sub入库日期“失去焦点”事件代码: Private Sub 文本2_LostFocus() On Error GoTo Err_文本2_

20、LostFocus Me!入库日期.SetFocusDoCmd.FindRecord Me!文本2, , True, , True Me!命令5.Visible = TrueExit_文本2_LostFocus: Exit SubErr_文本2_LostFocus: MsgBox Err.Description Resume Exit_文本2_LostFocusEnd Sub商品代码“失去焦点”事件代码: Private Sub 组合25_LostFocus()On Error GoTo Err_组合25_LostFocus Me!商品代码.SetFocusDoCmd.FindRecord M

21、e!组合25, , True, , True Me!命令5.Visible = TrueExit_组合25_LostFocus: Exit SubErr_组合25_LostFocus: MsgBox Err.Description Resume Exit_组合25_LostFocusEnd Sub入库数量“失去焦点”事件代码:Private Sub 文本27_LostFocus()On Error GoTo Err_文本27_LostFocus Me!入库数量.SetFocusDoCmd.FindRecord Me!文本27, , True, , True Me!命令5.Visible = T

22、rueExit_文本27_LostFocus: Exit SubErr_文本27_LostFocus: MsgBox Err.Description Resume Exit_文本27_LostFocusEnd Sub“查找记录”命令按钮的“单击”事件代码:Private Sub 命令5_Click()Screen.PreviousControl.SetFocus DoCmd.FindNextEnd Sub(2)按条件查询“按入库数量查询”和“按入库日期查询”,通过创建参数查询来实现查询。在建立这两个查询之前先建立“所有入库信息查询”。创建“所有入库信息查询”。可通过创建选择查询来完成该查询的创

23、建。创建结果如图13所示。图13 按所有入库信息查询创建“按入库数量查询”。以“所有入库信息查询”为数据源,在设计视图中创建该查询,如图14所示。图14 按入库数量查询在“入库数量”字段的“条件”行中输入: =请输入入库数量下限值 And =请输入日期上限值(*-*-*) And 0”,如图21 所示保存查询。图21 报警查询设计视图(2)创建报警报表创建了报警查询后,以此查询为数据源创建一个报警报表,使其显示需要报警的消息。使用向导创建报表,调出“报表向导”窗口。在“表/查询”下拉列表框中选择“报警查询”,选取全部字段。单击【下一步】按钮,确认是否添加分组级别,该报表不分组。单击【下一步】按

24、钮,以“库存数量”降序排序。单击【下一步】按钮,确定布局及方向为“表格”、“纵向”。单击【下一步】按钮,确定报表采用的样式为“组织”。单击【下一步】按钮,指定报表的名称,并选中“修改报表设计”单选按钮,单击【完成】按钮。 在“报警表”设计视图中,修改报表设计,如图22所示。图22 报警表设计视图(3)创建报警窗体报警处理只要打开报警表,显示相应的报警信息就可以了。在报警之前应判断查询结果是否有需要报警的商品。实现这一功能的代码如下:Private Sub Form_Open(Cancel As Integer)With CodeContextObject rrr = 报警查询!商品代码 Nul

25、l DoCmd.ApplyFilter uuu, rrr If (.RecordsetClone.RecordCount 0) Then MsgBox 有需要报警的产品!, vbOKOnly, 提示框 DoCmd.Close DoCmd.OpenReport 报警表, acViewPreview Else MsgBox 没有需要报警的产品!, vbOKOnly, 提示框 DoCmd.Close End IfEnd WithEnd Sub为了能够在打开报警表之前运行这一代码,建立一个报警临时窗体,将上述代码放到该窗体的“打开”事件中,如图23所示。这样当打开该窗体时,就可以运行这段代码。这里,报警临时窗体的作用就是运行该代码,窗体中无任何设置。(4)催货处理与报警处理相似,催货处理是将“库存表”中的“库存数量”与“最低储备”进行比较,当“库存数量”低于“最低储备”时,显示这些需要催货商品的相关信息。实现催货处理功能的步骤如下。建立一个催货查询,设计结果如图24所示。 图23 报警临时窗体图24 崔货查询使用向导创建一个催货报表,报表数据源为“催货查询”,如图25所

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1