内容摘要........................................................................................................................................... 1
1.系统概述........................................................................................................................................ 2
1.1引言 ..................................................................................................................................... 2
1.2 系统功能简介 .................................................................................................................... 3
2. 系统开发工具介绍 ...................................................................................................................... 5
2.1 ACCESS程序简介 .......................................................................................................... 5
2.2系统开发环境简介 ............................................................................................................. 6
2.2.1支持软件 .................................................................................................................. 6
2.2.2 支持硬件 ............................................................................................................. 6
3.系统的分析与设计 ........................................................................................................................ 7
3.1仓库管理系统的用户需求简介 ......................................................................................... 7
3.2 对系统的综合要求 .......................................................................................................... 7
3.3 系统功能模块图 .............................................................................................................. 7
3.4 数据库结构设计 .............................................................................................................. 10
3.4.1 数据库需求分析 ................................................................................................. 10
3.4.2 数据库介绍 ......................................................................................................... 10
4 仓库管理系统的功能实现 ..................................................................................................... 12
4.1 登陆界面编码设计 .......................................................................................................... 12
4.2 物资入库管理模块编码设计 .......................................................................................... 13
4.2.1物资入库界面编码设计 ........................................................................................ 13
4.2.2 物资信息查询界面编码设计 ............................................................................... 17
4.2.3 物资信息修改界面编码设计 ............................................................................... 19
4.3 物资出库管理模块编码设计 .......................................................................................... 23
4.3.1物资出库界面编码设计 ........................................................................................ 24
4.3.2物资出库查询界面编码设计 ................................................................................ 28
4.3.3物资出库修改界面编码设计 ................................................................................ 31
4.4 物资统计管理模块编码设计 .......................................................................................... 36
4.4.1物资统计界面编码设计 ........................................................................................ 36
4.4.2月报表预览设计 .................................................................................................... 39
5 结论与体会 ............................................................................................................................. 41
致谢 ................................................................................................................................................ 42
参考文献:..................................................................................................................................... 43
内容摘要 企业的物资管理是仓库管理的一个重要内容。随着企业仓库材料种类的增加,仓
库的材料管理工作也变得越来越复杂。材料管理既涉及到企业支出成本管理,同
时也是企业节约成本的重要手段。早期的材料统计和收发都是使用人工方式处理
纸质材料,不仅花费库管人员大量的时间且工作效率低,往往由于材料种类的众
多和个人的因素抄写不慎或计算疏忽,出现材料收发数量出错的现象。
早期物资管理多采取手工记录很难有个统一的标准并且不利于保存,企业工
资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、
规范化、自动化。仓库管理系统是典型的信息管理系统,本系统是基于ACCESS
数据库应用系统开发的仓库管理系统,Access是一个可视化工具,是风格与
Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,开
发非常直观方便,是基于Windows操作系统下的集成开发环境,该环境集成了
各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、
创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。支持
ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE
(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌
入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。
能将数据库与系统融为一体,这样能使做出来的系统运行更快,结果证明,本仓
库理系统极大提高了工作效率,节省了人力和物力,最终满足企业物资管理的需
要,同时也成为现代化企业管理的标志。
关键词:仓库管理 信息管理 数据查询 数据库 ACCESS
1.系统概述
1.1引言
随着我国世博会的举办,现代化建设也将以前所未有的步伐向前迈进。在这
种形势下,大中小型企业蓬勃发展,不断进入世界舞台,显示自己的独有特色。
随着业务人员的不断壮大,大量的信息数据就不仅仅限于人工的简单记忆,这是
就需要有更合适的工具来进行系统管理,去处理公司每天大量的数据,人事,财
务等等一些繁琐的事情。随着科学技术的不断提高,计算机科学日渐成熟,其强大
的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的
作用。作为计算机应用的一部分,使用计算机对资源信息进行查询管理,具有着手
工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保
密性好、寿命长、成本低等。这些优点能够极大地提高信息查询管理的效率,也
是企业、学校的科学化、正规化管理,与世界接轨的重要条件。在有计算机的数
据处理优势上,人们便充分应用计算机来满足工作生活中的各种需求。
计算机以及相关开发的各种软件的出现,使开发一套管理软件成为有可能而
实用的事情,在下面的各章中我们将以开发一套仓库管理系统为例,谈谈其开发过
程和所涉及到的问题及解决方法。
1.2 系统功能简介
本系统是仓库管理系统,该系统主要可以实现以下的功能:用户登陆管理,添
加物资信息,删除物资信息,修改物资信息,查询物资信息,统计物资信息等。
公司管理系统是一个数据库应用程序,有用户管理,物资管理、物资查询、
物资统计模块组成。
(1)用户管理模块
该模块主要任务是对使用该管理系统的人员进行添加、删除、修改,要求
具有相应用户名和密码的人才能使用本系统,根据用户名和密码进行登录。
(2)物资管理模块
本模块主要任务是进行仓库物资出入库信息的浏览,添加等功能。
(3)物资查询模块
本模块主要任务是对仓库出入库信息查询,导出功能。
(4)物资统计模块
该模块主要任务是对仓库出入库和库存信息进行统计
2.系统开发工具介绍
2.1 ACCESS程序简介 Microsoft Office Access(前名 Microsoft Access)是由微软发布的关联式数据库管理系统。它结合了 Microsoft Jet Database Engine 和 图型用户界面两项特点,是 Microsoft Office的成员之一。其实Access 也是微软公司另一个通讯程序的名字,想与 ProComm 以及其他类似程序来竞争。可是事后微软证实这是个失败计划,并且将它中止。数年后他们把名字重新命名于数据库软件。另外,Access还是c语言的一个函数名和一种交换机的主干道模式。
Microsoft Access在很多地方得到广泛使用,例如小型企业,大公司的部门,和喜爱编程的开发人员专门利用它来制作处理数据的桌面系统。它也常被用来开发简单的WEB应用程序.这些应用程序都利用ASP技术在Internet Information Services运行.比较复杂的WEB应用程序则使用PHP/MYSQL或者ASP/Microsoft SQL Server它的使用方便程度和强大的设计工具为初级程序员提供许多功能。 Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。 Access支持ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。Access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。 支持广泛,易于扩展,弹性较大能够将通过链接表的方式来打开EXCEL文件、格式化文本文件等,这样就可以利用数据库的高效率对其中的数据进行查询、处理。还可以通过以Access作为前台客户端,以SQL Server作为后台数据库的方式(如ADP)开发大型数据库应用系统。 总之,Access是一个既可以只用来存放数据的数据库,也可以作为一个客户端开发工具来进行数据库应用系统开发;即可以开发方便易用的小型软件,也可以用来开发大型的应用系统。
2.2系统开发环境简介
2.2.1支持软件
语言: VBA
数据库:ACCESS
运行环境:ACCESS
操作系统:Microsoft Windows XP
2.2.2 支持硬件
主机类型:IBM兼容机。Pentium3 800MB以上CPU,512MB内存
网络类型:TCP/IP网络
存储器容量:2GB
3.系统的分析与设计
3.1仓库管理系统的用户需求简介
根据现代社会发展情况,以及公司仓库的实际发展情况和需求分析,不同的公司的仓库
有各自的不同之处,但是就大众公司仓库的实际参考情况,无论各公司之间存在多大的差异之处,其日常仓库管理无外乎以下几点共同之处:
1. 物资信息的管理,对于所有的大中小型公司,仓库的正常运转都必需有详细的物资信息的加入,这样才能物资流动信息的准确性,它包括物资的名称、规格型号、计量单位,新旧程度等基本信息
物资进出库信息管理,对物资的进出信息进行登记包括物资的基本信息、出入单位、出库单位、领料人等信息
3. 统计信息的管理,仓库物资周转一段时间后,要对仓库的物资进行统计,以便知道仓库里进库多少,出库多少,现有库存多少,以便安排调拨,策划。
3.2 对系统的综合要求
第一,系统应建立友好的界面,既要操作简单、直观、灵活,又要易于学习和掌握。开
发仓库理系统的目的是为了方便管理员对物资信息进行添加、修改、查询和删除。 第二,系统在管理人员输入用户名、密码时,应具有自动识别的功能,若用户名或密码错误,应给出相应的提示,系统在确定用户名和密码后,应具有自动连接数据库的功能。 第三,进入系统后,可以添加、修改、查询、删除物资信息,生成导出报表
3.3 系统功能模块图
在这一阶段中,我们将根据系统调查与分析阶段的结果,进行系统的设计。系统设计包
括两个方面的工作:首先是系统总体结构的设计,即把系统的功能分解成许多基本的功能模块,确定它们之间的联系,规定它们的功能和处理流程;其次是具体的物理设计,即对实现系统的各项功能,选择具体的技术手段和处理方式。因此,如果说系统研制人员在系统调查与分析阶段的任务是在逻辑上弄清楚系统“作什么”的话,在系统设计阶段的任务则是在物
理上确定系统“如何去做”。
从仓库管理系统的整体出发,根据系统的目标将其分解成一系列子系统,各个子系统既相互配合,又各自具有一定的独立功能,共同实现整个系统的目标。上层的子系统其功能越笼统、越抽象,越下层的子系统其功能越简单、越优越,越具体。对于每一个子系统或系统模块,都应该尽量使其相对独立,要尽可能减少各个子系统之间的联系。
系统划分的结果最终为一张分层的树型结构图——仓库管理系统的数据流程图如图3-1所示:
图3-1 仓库管理系统功能结构图
3.4 数据库结构设计
数据库是仓库管理系统的基础,起结构直接关系到各种功能的实现和程序运行的效率。
3.4.1 数据库需求分析
数据库是一种存储数据并对数据进行操作的工具。数据库在一个仓库管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。同时,合理的数据库结构也将有利于程序的实现。设计数据库时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。
3.4.2 数据库介绍
Access 2003就是数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发,具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。
图3-2为系统用户表,用于存放用户名和密码,登录时和登录框中的数据进行比对,从而判断能否进入系统
图3-2 系统用户表
图3-3为入库表,用于存放入库物资的信息。
图3-3 为入库表 图3-4
为出库表,用于存放,出库物资的基本信息和出库物资的去向。
4 仓库管理系统的功能实现
4.1 登陆界面编码设计
在系统加载时,先启动”登录”模块的登录窗体,只有当用户输入了正确的用户名和密码,进入到系统主界面。
“登录”窗体运行界面,如图4-1所示:
图4.1登陆界面
如图所示“仓库管理系统”登录界面上有登陆和取消两个按扭,单击登陆进行用户名和密码的判断,如果密码正确则进入系统,否则提示错误,清空登陆框以便进行重新输入,单击取消则退出系统。
(1)登陆代码如下:
If IsNull(Me.yhm) = True Then
MsgBox "请输入“用户名”!", vbInformation, "输入用户名"
ElseIf IsNull(Me.mm) = True Then
MsgBox "请输入“密码”!", vbInformation, "输入密码"
Else
If DLookup("[密码]", "用户", "[用户名]=""" & yhm & """") = Me.mm Then
DoCmd.Close
Else
MsgBox "密码或用户名不正确,请重新输入!", vbInformation, "重新输入"
Me.yhm = Null
Me.mm = Null
取消的代码如下:
DoCmd.Quit acQuitSaveNone
4.2 物资入库管理模块编码设计
物资入库管理包括物资基本信息的添加,删除,修改,保存,以及按条件查找等功能。
4.2.1物资入库界面编码设计
“入库”窗体运行界面,如图4-2所示:
图4-2 入库界面
入库窗体包括,一个添加按钮,一个保存按钮和一个入库子窗体,运行加载入库子窗体并锁定。并且将所有的录入文本框锁定,并将保存按钮锁定,进行物资入库的时候,单击添加按钮,输入文本框解除锁定,使之可以录入信息,保存按钮解除锁定,并获得焦点,添加按钮失去焦点并锁定,信息输入完毕后,单击保存按钮,信息进入入库表,并弹出信息已保存消息框,同时刷新入库子窗体,使之达到录入信息即时显示的目的。同时弹出信息框,并询问是否继续添加数据,如果选择是则录入框不锁定,保存按钮锁定,以便继续输入数据。否则恢复到加载状态。
(1)加载代码如下:
Function textgb()
For Each ct1 In Controls
Select Case ct1.ControlType
Case acTextBox
ct1.Enabled = False
End Select
Next
End Function
Call textgb
Me.rkbc.Enabled = False
Me.入库子窗体.Locked = True
(2)添加按钮代码如下:
On Error GoTo err_rktj
Call textkf
Me.rkbc.Enabled = True
Me.rkbc.SetFocus
Me.rktj.Enabled = False
Exit Sub
err_rktj:
MsgBox Err.Description
(3)保存按钮代码如下:
Function textqc()
For Each ct1 In Controls
Select Case ct1.ControlType
Case acTextBox
ct1.Value = ""
End Select
Next
End Function
On Error GoTo err_rkbc
Dim sql As String, rsrk As ADODB.Recordset
Set rsrk = New ADODB.Recordset
sql = "select * from 入库表"
rsrk.Open sql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rsrk.MoveLast
rsrk.AddNew
rsrk("编号") = Me.编号
rsrk("入库编号") = Me.入库编号
rsrk("日期") = Me.日期
rsrk("材料名称") = Me.材料名称
rsrk("型号规格") = Me.型号规格
rsrk("入库数量") = Me.入库数量
rsrk("计量单位") = Me.计量单位
rsrk("调入单位") = Me.调入单位
rsrk("备注") = Me.备注
rsrk.Update
Set rsrk = Nothing
MsgBox "添加成功"
Me.入库子窗体.Requery
If MsgBox("是否继续输入数据?", vbYesNo + vbQuestion, "请选择...") = vbYes Then Call textkf
Call textqc
Me.rktj.Enabled = False
Me.rkbc.Enabled = True
Else
Call textgb
Me.rktj.Enabled = True
Me.rktj.SetFocus
Me.rkbc.Enabled = False
Call textqc
End If
Exit Sub
err_rkbc:
MsgBox Err.Description
End Sub
4.2.2 物资信息查询界面编码设计
“入库查询”窗体运行界面,如图4-3所示
图4-3入库查询界面
入库查询窗体包括入库窗体包括,一个查询按钮,一个导出按钮和一个入库查询子窗体,运行加载入库子窗体并锁定。在文本中输入编号、入库编号等信息后,单击查询,入库子窗体进行筛选,出即时显示查询结果,按导出能够将筛选的查询数据导出为Excel表
(1)入库查询窗体加载代码:
On Error GoTo err_rkcxload
Me.入库查询子窗体.Locked = True
Exit Sub
err_rkcxload:
MsgBox Err.Description
(2)查询按钮代码:
On Error GoTo err_rkcx
Dim sql As String
sql = ""
If Not IsNull(Me.编号) Then
sql = sql & "([编号] like '*" & Me.编号 & "*') AND "
End If
If Not IsNull(Me.入库编号) Then
sql = sql & "([入库编号] like '*" & Me.入库编号 & "*') AND "
End If
If Not IsNull(Me.材料名称) Then
sql = sql & "([材料名称] like '*" & Me.材料名称 & "*') AND "
End If
If Not IsNull(Me.开始日期) Then
sql = sql & "([日期] >= #" & Format(Me.开始日期, "yyyy-mm-dd") & "#) AND " End If
If Not IsNull(Me.结束日期) Then
sql = sql & "([日期]
If Len(sql) > 0 Then
sql = Left(sql, Len(sql) - 5)
End If
Me.入库查询子窗体.Form.Filter = sql
Me.入库查询子窗体.Form.FilterOn = True
Exit Sub
err_rkcx:
MsgBox Err.Description
(3)导出按钮代码:
On Error GoTo err_rkdc
Dim qdf As DAO.QueryDef
Dim sql, strSQL As String
sql = Me.入库查询子窗体.Form.Filter
If sql = "" Then
strSQL = "SELECT * FROM 入库表"
Else
strSQL = "SELECT * FROM 入库表 WHERE " & sql
End If
Set qdf = CurrentDb.QueryDefs("查询结果")
qdf.sql = strSQL
qdf.Close
Set qdf = Nothing
stroutputfilename = CurrentProject.Path & "\查询结果.xls"
DoCmd.OutputTo acOutputQuery, "查询结果", acFormatXLS, strouputfilename, True Exit Sub
err_rkdc:
MsgBox Err.Description
4.2.3 物资信息修改界面编码设计
“入库修改”窗体运行界面,如图4-4所示
图4-4入库修改窗体
入库修改窗体包括信息修改文本框,入库修改子窗体和查询、删除、修改、保存按钮,入库修改窗体加载时将入库修改子窗体锁定,将修改文本框除 编号、入库编号、材料名称 之外的隐藏。单击查询将要修改或删除的数据查询出来,然后单击删除的话就进行数据的删除,单击修改的话,将查询、删除、修改、保存按钮变为不可用,将所有信息输入文本框显示,便于修改,后单击保存将修改的数据保存到入库表。
入库修改窗体加载代码:
On Error GoTo err_rkcxload
Me.入库查询子窗体.Locked = True
Exit Sub
err_rkcxload:
MsgBox Err.Description
(2)入库修改查询代码如下:
On Error GoTo err_rkcx
Dim sql As String
sql = ""
If Not IsNull(Me.编号) Then
sql = sql & "([编号] like '*" & Me.编号 & "*') AND "
End If
If Not IsNull(Me.入库编号) Then
sql = sql & "([入库编号] like '*" & Me.入库编号 & "*') AND "
End If
If Not IsNull(Me.材料名称) Then
sql = sql & "([材料名称] like '*" & Me.材料名称 & "*') AND "
End If
If Len(sql) > 0 Then
sql = Left(sql, Len(sql) - 5)
End If
Me.入库修改子窗体.Form.Filter = sql
Me.入库修改子窗体.Form.FilterOn = True
Exit Sub
err_rkcx:
MsgBox Err.Description
(3)入库修改删除代码如下:
On Error GoTo err_rksc
Dim sql As String
sql = ""
sql = "delete * from 入库表 where"
21
If Not IsNull(Me.编号) Then
sql = sql & "([编号] like '*" & Me.编号 & "*') AND "
End If
If Not IsNull(Me.入库编号) Then
sql = sql & "([入库编号] like '*" & Me.入库编号 & "*') AND "
End If
If Not IsNull(Me.材料名称) Then
sql = sql & "([材料名称] like '*" & Me.材料名称 & "*') AND "
End If
If Not IsNull(Me.日期) Then
sql = sql & "([日期] = #" & Format(Me.日期, "yyyy-mm-dd") & "#) AND " End If
If Len(sql) > 0 Then
sql = Left(sql, Len(sql) - 5)
End If
DoCmd.RunSQL sql
Exit Sub
err_rksc:
MsgBox Err.Description
(4)入库修改代码如下:
On Error GoTo err_rkxg
Call textxs
Me.rkxgcx.Enabled = False
22
Me.rksc.Enabled = False
Me.rkxgbc.SetFocus
Me.rkxg.Enabled = False
Exit Sub
err_rkxg:
MsgBox Err.Description
(5)入库修改保存代码如下:
On Error GoTo err_rkxgbc
Me!入库修改子窗体!编号 = Me.编号
Me!入库修改子窗体!入库编号 = Me.入库编号
Me!入库修改子窗体!日期 = Me.日期
Me!入库修改子窗体!材料名称 = Me.材料名称
Me!入库修改子窗体!型号规格 = Me.型号规格
Me!入库修改子窗体!入库数量 = Me.入库数量
Me!入库修改子窗体!计量单位 = Me.计量单位
Me!入库修改子窗体!调入单位 = Me.调入单位
Me!入库修改子窗体!备注 = Me.备注
Me.入库修改子窗体.Requery
Exit Sub
err_rkcx:
MsgBox Err.Description
4.3 物资出库管理模块编码设计
23
物资出库管理包括物资基本信息的添加,删除,修改,保存,以及按条件查找等功能。
4.3.1物资出库界面编码设计
“出库”窗体运行界面,如图4-5所示:
图4-5出库窗体
界面与操作方法同入库窗体基本相同,此处不在赘述
(1)出库加载代码如下:
Function textgb()
For Each ct1 In Controls
Select Case ct1.ControlType
Case acTextBox
ct1.Enabled = False
End Select
Next
End Function
24
On Error GoTo err_ckload
Call textgb
Me.ckbc.Enabled = False
Me.出库子窗体.Locked = True
Exit Sub
err_ckload:
MsgBox Err.Description
(2)添加按钮代码如下:
On Error GoTo err_cktj
Call textkf
Me.ckbc.Enabled = True
Me.ckbc.SetFocus
Me.cktj.Enabled = False
Exit Sub
err_cktj:
MsgBox Err.Description
(3)保存按钮代码如下:
Function textkf()
For Each ct1 In Controls
Select Case ct1.ControlType
Case acTextBox
ct1.Enabled = True
End Select
25
Next
End Function
Function textqc()
For Each ct1 In Controls
Select Case ct1.ControlType
Case acTextBox
ct1.Value = ""
End Select
Next
End Function
Dim sql As String, rsck As ADODB.Recordset
Set rsck = New ADODB.Recordset
sql = "select * from 出库表"
rsck.Open sql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rsck.MoveLast
rsck.AddNew
rsck("编号") = Me.编号
rsck("出库编号") = Me.出库编号
rsck("日期") = Me.日期
rsck("材料名称") = Me.材料名称
rsck("型号规格") = Me.型号规格
rsck("出库数量") = Me.出库数量
rsck("计量单位") = Me.计量单位
26
rsck("调出单位") = Me.调出单位
rsck("领料人") = Me.领料人
rsck("备注") = Me.备注
rsck("调入单位") = Me.调入单位
rsck.Update
Set rsck = Nothing
MsgBox "添加成功"
Me.出库子窗体.Requery
If MsgBox("是否继续输入数据?", vbYesNo + vbQuestion, "请选择...") = vbYes Then Call textkf
Me.cktj.Enabled = False
Me.ckbc.Enabled = True
Call textqc
Else
Call textgb
Me.cktj.Enabled = True
Me.cktj.SetFocus
Me.ckbc.Enabled = False
Call textqc
End If
Exit Sub
err_rkbc:
MsgBox Err.Description
27
4.3.2物资出库查询界面编码设计
“出库查询”窗体运行界面,如图4-6所示:
图4-6出库查询窗体
界面与操作方法同入库查询窗体基本相同,此处不在赘述
(1)出库查询加载代码如下:
On Error GoTo err_ckcxload
Me.出库查询子窗体.Locked = True
Exit Sub
err_ckckload:
MsgBox Err.Description
(2)出库查询代码如下:
On Error GoTo err_ckcx
Dim sql As String
sql = ""
28
If Not IsNull(Me.编号) Then
sql = sql & "([编号] like '*" & Me.编号 & "*') AND "
End If
If Not IsNull(Me.出库编号) Then
sql = sql & "([出库编号] like '*" & Me.出库编号 & "*') AND "
End If
If Not IsNull(Me.材料名称) Then
sql = sql & "([材料名称] like '*" & Me.材料名称 & "*') AND "
End If
If Not IsNull(Me.调出单位) Then
sql = sql & "([调出单位] like '*" & Me.调出单位 & "*') AND "
End If
If Not IsNull(Me.开始日期) Then
sql = sql & "([日期] >= #" & Format(Me.开始日期, "yyyy-mm-dd") & "#) AND " End If
If Not IsNull(Me.结束日期) Then
sql = sql & "([日期]
If Len(sql) > 0 Then
sql = Left(sql, Len(sql) - 5)
End If
Me.出库查询子窗体.Form.Filter = sql
Me.出库查询子窗体.Form.FilterOn = True
29
Exit Sub
err_ckcx:
MsgBox Err.Description
(3)出库导出代码如下:
On Error GoTo err_ckdc
Dim qdf As DAO.QueryDef
Dim sql, strSQL As String
sql = Me.出库查询子窗体.Form.Filter
If sql = "" Then
strSQL = "SELECT * FROM 出库表"
Else
strSQL = "SELECT * FROM 出库表 WHERE " & sql
End If
Set qdf = CurrentDb.QueryDefs("查询结果")
qdf.sql = strSQL
qdf.Close
Set qdf = Nothing
stroutputfilename = CurrentProject.Path & "\查询结果.xls"
DoCmd.OutputTo acOutputQuery, "查询结果", acFormatXLS, strouputfilename, True Exit Sub
err_ckdc:
MsgBox Err.Description
30
4.3.3物资出库修改界面编码设计
“出库修改”窗体运行界面,如图4-7所示
图4-7出库修改修改窗体
界面与操作方法同入库修改窗体基本相同,此处不在赘述
(1)出库修改窗体加载代码如下:
On Error GoTo err_ckload
Call textyc
Me.ckxgbc.Enabled = False
Me.出库修改子窗体.Locked = True
Me.编号.Visible = True
Me.出库编号.Visible = True
Me.材料名称.Visible = True
31
err_ckload:
MsgBox Err.Description
(2)出库修改查询代码如下:
On Error GoTo err_ckxgcx
Dim sql As String
sql = ""
If Not IsNull(Me.编号) Then
sql = sql & "([编号] like '*" & Me.编号 & "*') AND "
End If
If Not IsNull(Me.出库编号) Then
sql = sql & "([出库编号] like '*" & Me.出库编号 & "*') AND "
End If
If Not IsNull(Me.材料名称) Then
sql = sql & "([材料名称] like '*" & Me.材料名称 & "*') AND "
End If
If Len(sql) > 0 Then
sql = Left(sql, Len(sql) - 5)
End If
Me.出库修改子窗体.Form.Filter = sql
Me.出库修改子窗体.Form.FilterOn = True
Exit Sub
32
MsgBox Err.Description
(3)出库修改删除代码如下:
On Error GoTo err_ckxgsc
Dim sql As String
sql = ""
sql = "delete * from 出库表 where"
If Not IsNull(Me.编号) Then
sql = sql & "([编号] like '*" & Me.编号 & "*') AND "
End If
If Not IsNull(Me.出库编号) Then
sql = sql & "([出库编号] like '*" & Me.出库编号 & "*') AND "
End If
If Not IsNull(Me.材料名称) Then
sql = sql & "([材料名称] like '*" & Me.材料名称 & "*') AND "
End If
If Not IsNull(Me.日期) Then
sql = sql & "([日期] = #" & Format(Me.日期, "yyyy-mm-dd") & "#) AND " End If
If Len(sql) > 0 Then
sql = Left(sql, Len(sql) - 5)
End If
DoCmd.RunSQL sql
33
err_ckxgsc:
MsgBox Err.Description
(4)出库修改代码如下:
On Error GoTo err_ckxg
Call textxs
Me.ckxgbc.Enabled = True
Me.ckxgcx.Enabled = False
Me.ckxgsc.Enabled = False
Me.ckxgbc.SetFocus
Me.ckxg.Enabled = False
Exit Sub
err_ckxg:
MsgBox Err.Description
(5)出库修改保存代码如下:
On Error GoTo err_ckxgbc
Me!出库修改子窗体!编号 = Me.编号
Me!出库修改子窗体!出库编号 = Me.出库编号
Me!出库修改子窗体!日期 = Me.日期
Me!出库修改子窗体!材料名称 = Me.材料名称
Me!出库修改子窗体!型号规格 = Me.型号规格
Me!出库修改子窗体!出库数量 = Me.出库数量
Me!出库修改子窗体!计量单位 = Me.计量单位
34
Me!出库修改子窗体!调出单位 = Me.调出单位
Me!出库修改子窗体!领料人 = Me.领料人
Me!出库修改子窗体!备注 = Me.备注
Me!出库修改子窗体!调入单位 = Me.调入单位
Me.出库修改子窗体.Requery
Exit Sub
err_ckxgbc:
MsgBox Err.Description
35
4.4 物资统计管理模块编码设计
物资出库管理包括物资信息的统计、库存的统计、报表的生成与导出。
4.4.1物资统计界面编码设计
“统计”窗体运行界面,如图4-8所示:
图4-8统计窗体
统计窗体能根据用户所输入的日期对出入库数据进行统计,并最终生成月报表,并在月报表子窗体中即时显示,又能够导出为excel表。
(1)生成月统计代码如下:
On Error GoTo err_ytj
36
If MsgBox("进行入库统计?", vbYesNo + vbQuestion, "请选择...") = vbYes Then
Dim rkjc, rkyjc, ckjc, ckyjc, sql As String
rkjc = "select 编号,材料名称,型号规格,sum(入库数量)as 入库总数,计量单位 "
rkjc = rkjc & "INTO 入库结存 FROM 入库表 where"
rkjc = rkjc & "([日期]>=#2010-01-01#)AND"
rkjc = rkjc & "([日期]
rkjc = rkjc & "Group by 编号,材料名称,型号规格,计量单位"
DoCmd.RunSQL rkjc
rkyjc = "select 编号,材料名称,型号规格,sum(入库数量)as 月入库总数,计量单位 " rkyjc = rkyjc & "INTO 入库月结存 FROM 入库表 where"
rkyjc = rkyjc & "([日期] >= #" & Format(Me.开始日期, "yyyy-mm-dd") & "#) AND " rkyjc = rkyjc & "([日期]
rkyjc = rkyjc & "Group by 编号,材料名称,型号规格,计量单位"
DoCmd.RunSQL rkyjc
Else
Exit Sub
End If
If MsgBox("进行出库统计?", vbYesNo + vbQuestion, "请选择...") = vbYes Then
ckjc = "select 编号,材料名称,型号规格,sum(出库数量)as 出库总数,计量单位 "
ckjc = ckjc & "INTO 出库结存 FROM 出库表 where"
ckjc = ckjc & "([日期]>=#2010-01-01#)AND"
ckjc = ckjc & "([日期]
ckjc = ckjc & "Group by 编号,材料名称,型号规格,计量单位"
37
DoCmd.RunSQL ckjc
ckyjc = "select 编号,材料名称,型号规格,sum(出库数量)as 月出库总数,计量单位 " ckyjc = ckyjc & "INTO 出库月结存 FROM 出库表 where"
ckyjc = ckyjc & "([日期] >= #" & Format(Me.开始日期, "yyyy-mm-dd") & "#) AND " ckyjc = ckyjc & "([日期]
ckyjc = ckyjc & "Group by 编号,材料名称,型号规格,计量单位"
DoCmd.RunSQL ckyjc
Else
Exit Sub
End If
If MsgBox("进行月统计?", vbYesNo + vbQuestion, "请选择...") = vbYes Then
sql = "SELECT 材料名称,型号规格,计量单位,sum(入库总数)as 入库,sum(出库总数)as 出库,sum(月入库总数)as 本月入库,sum(月出库总数)as 本月出库 into 月统计 from 统计联合 GROUP BY 材料名称,型号规格,计量单位"
DoCmd.RunSQL sql
Else
Exit Sub
End If
Exit Sub
err_ytj:
Err.Description
(2)生成月报表代码如下:
On Error GoTo err_ybb
Dim sql As String
38
sql = "SELECT 材料名称,型号规格,计量单位,[入库]-[出库]as 上月结存,本月入库,本月出库,[入库]-[出库]+[本月入库]-[本月出库]as 本月库存 into 月报表 from 月统计" DoCmd.RunSQL sql
Me.月报表子窗体.Requery
Exit Sub
err_ybb:
Err.Description
(3)月报表导出代码:
On Error GoTo err_tjdc
Dim qdf As DAO.QueryDef
Dim sql, strSQL As String
strSQL = "SELECT * FROM 月报表"
Set qdf = CurrentDb.QueryDefs("查询结果")
qdf.sql = strSQL
qdf.Close
Set qdf = Nothing
stroutputfilename = CurrentProject.Path & "\查询结果.xls"
DoCmd.OutputTo acOutputQuery, "查询结果", acFormatXLS, strouputfilename, True Exit Sub
err_tjdc:
MsgBox Err.Description
4.4.2月报表预览设计
“月报表预览”运行界面,如图4-9所示:
39
图4-9报表预览
在设计视图中用向导做的,没有代码
40
5 结论与体会
经过2个月的努力,我的仓库管理系统终于完成了。此次做系统给我最大的感触就是有了一个利用本专业所学到的知识,来练习、实践的机会。以前我也学了VB语言等编程语言,但那时我做的仅是用一些零零碎碎的知识,简简单单的语句来解决一些小问题而已。此次做系统却给了我一个机会,将自己所学到的有关数据库、ACCESS编程方面的所有的知识结合起来,用自己的辛勤努力,并最终结出甜美的果实。
通过进行仓库管理系统的开发,进一步明确了研制一个管理信息系统的方法和思路,将系统开发的各阶段的基本活动贯穿起来,使我更加形象、具体的了解了管理信息系统。系统开发的过程是一个巩固以前所学的计算机软件开发知识,掌握新技能的过程。我从这一阶段工作中受益非浅,通过前段时间的毕业设计,我能够融会贯通这几年所学的专业基础知识和专业理论知识,对当前计算机软、硬件技术的发展有了进一步地了解和认识,培养我们综合运用专业知识分析问题、解决问题的能力及运用工具软件的能力。不仅弄清了以前对系统开发的一些模糊的认识,而且提高了软件开发的水平,培养了严谨的工作作风,为今后在工作岗位上更好的使用计算机打下了坚实的基础。
我的系统规模比较小,同时由于我的时间和能力等多方面的因素影响,这个系统也存在一定的缺陷。比如系统的界面不够美观、有的功能不够完善等。对此还请老师给与批评指教,使我能够了解到我系统中所存在的缺陷与不足。
致谢
几个月的埋头苦干,由我研究的毕业设计-公司管理系统顺利完成。回首在这一段时间的学习和努力,我深深的感到,没有周围老师同学的帮助和关怀,就不可能有我今天作品的顺利完成。
首先,要感谢我的指导老师-陈芳,在设计进行的过程中遇到了种种困难,是老师一遍一遍的讲解,说明,是我对所学知识有了更深一步的了解,作品调试阶段是最困难的时间,老师亲身受教帮我克服设计过程中的种种难题。很是感激,在此深深的感谢李冬老师的指导,受教,帮助我顺利完成设计。
其次,设计过程中遇到困难要放弃时是同学朋友的帮助鼓励,让我有继续完成下去的动力和决心,非常感谢我的朋友同学们!
此外,对那些在学习工作生活中给过我帮助支持的其他老师和同学,我也要在此向他们表示真诚的谢意。
参考文献:
[1]新编Visual Basic 程序设计教程 张东亮主编 航空工业出版社
[2]数据库系统与Access教程 申莉莉主编 清华大学出版社
[3]Access项目案例导航 郑小玲、王学军编著 科学出版社
[4]张东亮,张鑫等.新编visual basic程序设计教程 航空工业出版社
[5]张勇等.visal basic 课程设计 中国水利水电出版社
[6]VB6.0 程序设计视频教程 高等教育出版社(第2版)
[7]Visual Basic6.0入门与提高 张树兵、戴红、陈哲编著 清华大学出社
[8]Access项目案例导航 郑小玲、王学军编著 科学出版社
[9]数据库系统与Access教程 申莉莉主编 清华大学出版社
[10]ACCESS编程网 www.accesssoft.com
内容摘要........................................................................................................................................... 1
1.系统概述........................................................................................................................................ 2
1.1引言 ..................................................................................................................................... 2
1.2 系统功能简介 .................................................................................................................... 3
2. 系统开发工具介绍 ...................................................................................................................... 5
2.1 ACCESS程序简介 .......................................................................................................... 5
2.2系统开发环境简介 ............................................................................................................. 6
2.2.1支持软件 .................................................................................................................. 6
2.2.2 支持硬件 ............................................................................................................. 6
3.系统的分析与设计 ........................................................................................................................ 7
3.1仓库管理系统的用户需求简介 ......................................................................................... 7
3.2 对系统的综合要求 .......................................................................................................... 7
3.3 系统功能模块图 .............................................................................................................. 7
3.4 数据库结构设计 .............................................................................................................. 10
3.4.1 数据库需求分析 ................................................................................................. 10
3.4.2 数据库介绍 ......................................................................................................... 10
4 仓库管理系统的功能实现 ..................................................................................................... 12
4.1 登陆界面编码设计 .......................................................................................................... 12
4.2 物资入库管理模块编码设计 .......................................................................................... 13
4.2.1物资入库界面编码设计 ........................................................................................ 13
4.2.2 物资信息查询界面编码设计 ............................................................................... 17
4.2.3 物资信息修改界面编码设计 ............................................................................... 19
4.3 物资出库管理模块编码设计 .......................................................................................... 23
4.3.1物资出库界面编码设计 ........................................................................................ 24
4.3.2物资出库查询界面编码设计 ................................................................................ 28
4.3.3物资出库修改界面编码设计 ................................................................................ 31
4.4 物资统计管理模块编码设计 .......................................................................................... 36
4.4.1物资统计界面编码设计 ........................................................................................ 36
4.4.2月报表预览设计 .................................................................................................... 39
5 结论与体会 ............................................................................................................................. 41
致谢 ................................................................................................................................................ 42
参考文献:..................................................................................................................................... 43
内容摘要 企业的物资管理是仓库管理的一个重要内容。随着企业仓库材料种类的增加,仓
库的材料管理工作也变得越来越复杂。材料管理既涉及到企业支出成本管理,同
时也是企业节约成本的重要手段。早期的材料统计和收发都是使用人工方式处理
纸质材料,不仅花费库管人员大量的时间且工作效率低,往往由于材料种类的众
多和个人的因素抄写不慎或计算疏忽,出现材料收发数量出错的现象。
早期物资管理多采取手工记录很难有个统一的标准并且不利于保存,企业工
资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、
规范化、自动化。仓库管理系统是典型的信息管理系统,本系统是基于ACCESS
数据库应用系统开发的仓库管理系统,Access是一个可视化工具,是风格与
Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,开
发非常直观方便,是基于Windows操作系统下的集成开发环境,该环境集成了
各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、
创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。支持
ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE
(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌
入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。
能将数据库与系统融为一体,这样能使做出来的系统运行更快,结果证明,本仓
库理系统极大提高了工作效率,节省了人力和物力,最终满足企业物资管理的需
要,同时也成为现代化企业管理的标志。
关键词:仓库管理 信息管理 数据查询 数据库 ACCESS
1.系统概述
1.1引言
随着我国世博会的举办,现代化建设也将以前所未有的步伐向前迈进。在这
种形势下,大中小型企业蓬勃发展,不断进入世界舞台,显示自己的独有特色。
随着业务人员的不断壮大,大量的信息数据就不仅仅限于人工的简单记忆,这是
就需要有更合适的工具来进行系统管理,去处理公司每天大量的数据,人事,财
务等等一些繁琐的事情。随着科学技术的不断提高,计算机科学日渐成熟,其强大
的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的
作用。作为计算机应用的一部分,使用计算机对资源信息进行查询管理,具有着手
工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保
密性好、寿命长、成本低等。这些优点能够极大地提高信息查询管理的效率,也
是企业、学校的科学化、正规化管理,与世界接轨的重要条件。在有计算机的数
据处理优势上,人们便充分应用计算机来满足工作生活中的各种需求。
计算机以及相关开发的各种软件的出现,使开发一套管理软件成为有可能而
实用的事情,在下面的各章中我们将以开发一套仓库管理系统为例,谈谈其开发过
程和所涉及到的问题及解决方法。
1.2 系统功能简介
本系统是仓库管理系统,该系统主要可以实现以下的功能:用户登陆管理,添
加物资信息,删除物资信息,修改物资信息,查询物资信息,统计物资信息等。
公司管理系统是一个数据库应用程序,有用户管理,物资管理、物资查询、
物资统计模块组成。
(1)用户管理模块
该模块主要任务是对使用该管理系统的人员进行添加、删除、修改,要求
具有相应用户名和密码的人才能使用本系统,根据用户名和密码进行登录。
(2)物资管理模块
本模块主要任务是进行仓库物资出入库信息的浏览,添加等功能。
(3)物资查询模块
本模块主要任务是对仓库出入库信息查询,导出功能。
(4)物资统计模块
该模块主要任务是对仓库出入库和库存信息进行统计
2.系统开发工具介绍
2.1 ACCESS程序简介 Microsoft Office Access(前名 Microsoft Access)是由微软发布的关联式数据库管理系统。它结合了 Microsoft Jet Database Engine 和 图型用户界面两项特点,是 Microsoft Office的成员之一。其实Access 也是微软公司另一个通讯程序的名字,想与 ProComm 以及其他类似程序来竞争。可是事后微软证实这是个失败计划,并且将它中止。数年后他们把名字重新命名于数据库软件。另外,Access还是c语言的一个函数名和一种交换机的主干道模式。
Microsoft Access在很多地方得到广泛使用,例如小型企业,大公司的部门,和喜爱编程的开发人员专门利用它来制作处理数据的桌面系统。它也常被用来开发简单的WEB应用程序.这些应用程序都利用ASP技术在Internet Information Services运行.比较复杂的WEB应用程序则使用PHP/MYSQL或者ASP/Microsoft SQL Server它的使用方便程度和强大的设计工具为初级程序员提供许多功能。 Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。 Access支持ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。Access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。 支持广泛,易于扩展,弹性较大能够将通过链接表的方式来打开EXCEL文件、格式化文本文件等,这样就可以利用数据库的高效率对其中的数据进行查询、处理。还可以通过以Access作为前台客户端,以SQL Server作为后台数据库的方式(如ADP)开发大型数据库应用系统。 总之,Access是一个既可以只用来存放数据的数据库,也可以作为一个客户端开发工具来进行数据库应用系统开发;即可以开发方便易用的小型软件,也可以用来开发大型的应用系统。
2.2系统开发环境简介
2.2.1支持软件
语言: VBA
数据库:ACCESS
运行环境:ACCESS
操作系统:Microsoft Windows XP
2.2.2 支持硬件
主机类型:IBM兼容机。Pentium3 800MB以上CPU,512MB内存
网络类型:TCP/IP网络
存储器容量:2GB
3.系统的分析与设计
3.1仓库管理系统的用户需求简介
根据现代社会发展情况,以及公司仓库的实际发展情况和需求分析,不同的公司的仓库
有各自的不同之处,但是就大众公司仓库的实际参考情况,无论各公司之间存在多大的差异之处,其日常仓库管理无外乎以下几点共同之处:
1. 物资信息的管理,对于所有的大中小型公司,仓库的正常运转都必需有详细的物资信息的加入,这样才能物资流动信息的准确性,它包括物资的名称、规格型号、计量单位,新旧程度等基本信息
物资进出库信息管理,对物资的进出信息进行登记包括物资的基本信息、出入单位、出库单位、领料人等信息
3. 统计信息的管理,仓库物资周转一段时间后,要对仓库的物资进行统计,以便知道仓库里进库多少,出库多少,现有库存多少,以便安排调拨,策划。
3.2 对系统的综合要求
第一,系统应建立友好的界面,既要操作简单、直观、灵活,又要易于学习和掌握。开
发仓库理系统的目的是为了方便管理员对物资信息进行添加、修改、查询和删除。 第二,系统在管理人员输入用户名、密码时,应具有自动识别的功能,若用户名或密码错误,应给出相应的提示,系统在确定用户名和密码后,应具有自动连接数据库的功能。 第三,进入系统后,可以添加、修改、查询、删除物资信息,生成导出报表
3.3 系统功能模块图
在这一阶段中,我们将根据系统调查与分析阶段的结果,进行系统的设计。系统设计包
括两个方面的工作:首先是系统总体结构的设计,即把系统的功能分解成许多基本的功能模块,确定它们之间的联系,规定它们的功能和处理流程;其次是具体的物理设计,即对实现系统的各项功能,选择具体的技术手段和处理方式。因此,如果说系统研制人员在系统调查与分析阶段的任务是在逻辑上弄清楚系统“作什么”的话,在系统设计阶段的任务则是在物
理上确定系统“如何去做”。
从仓库管理系统的整体出发,根据系统的目标将其分解成一系列子系统,各个子系统既相互配合,又各自具有一定的独立功能,共同实现整个系统的目标。上层的子系统其功能越笼统、越抽象,越下层的子系统其功能越简单、越优越,越具体。对于每一个子系统或系统模块,都应该尽量使其相对独立,要尽可能减少各个子系统之间的联系。
系统划分的结果最终为一张分层的树型结构图——仓库管理系统的数据流程图如图3-1所示:
图3-1 仓库管理系统功能结构图
3.4 数据库结构设计
数据库是仓库管理系统的基础,起结构直接关系到各种功能的实现和程序运行的效率。
3.4.1 数据库需求分析
数据库是一种存储数据并对数据进行操作的工具。数据库在一个仓库管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。同时,合理的数据库结构也将有利于程序的实现。设计数据库时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。
3.4.2 数据库介绍
Access 2003就是数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发,具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。
图3-2为系统用户表,用于存放用户名和密码,登录时和登录框中的数据进行比对,从而判断能否进入系统
图3-2 系统用户表
图3-3为入库表,用于存放入库物资的信息。
图3-3 为入库表 图3-4
为出库表,用于存放,出库物资的基本信息和出库物资的去向。
4 仓库管理系统的功能实现
4.1 登陆界面编码设计
在系统加载时,先启动”登录”模块的登录窗体,只有当用户输入了正确的用户名和密码,进入到系统主界面。
“登录”窗体运行界面,如图4-1所示:
图4.1登陆界面
如图所示“仓库管理系统”登录界面上有登陆和取消两个按扭,单击登陆进行用户名和密码的判断,如果密码正确则进入系统,否则提示错误,清空登陆框以便进行重新输入,单击取消则退出系统。
(1)登陆代码如下:
If IsNull(Me.yhm) = True Then
MsgBox "请输入“用户名”!", vbInformation, "输入用户名"
ElseIf IsNull(Me.mm) = True Then
MsgBox "请输入“密码”!", vbInformation, "输入密码"
Else
If DLookup("[密码]", "用户", "[用户名]=""" & yhm & """") = Me.mm Then
DoCmd.Close
Else
MsgBox "密码或用户名不正确,请重新输入!", vbInformation, "重新输入"
Me.yhm = Null
Me.mm = Null
取消的代码如下:
DoCmd.Quit acQuitSaveNone
4.2 物资入库管理模块编码设计
物资入库管理包括物资基本信息的添加,删除,修改,保存,以及按条件查找等功能。
4.2.1物资入库界面编码设计
“入库”窗体运行界面,如图4-2所示:
图4-2 入库界面
入库窗体包括,一个添加按钮,一个保存按钮和一个入库子窗体,运行加载入库子窗体并锁定。并且将所有的录入文本框锁定,并将保存按钮锁定,进行物资入库的时候,单击添加按钮,输入文本框解除锁定,使之可以录入信息,保存按钮解除锁定,并获得焦点,添加按钮失去焦点并锁定,信息输入完毕后,单击保存按钮,信息进入入库表,并弹出信息已保存消息框,同时刷新入库子窗体,使之达到录入信息即时显示的目的。同时弹出信息框,并询问是否继续添加数据,如果选择是则录入框不锁定,保存按钮锁定,以便继续输入数据。否则恢复到加载状态。
(1)加载代码如下:
Function textgb()
For Each ct1 In Controls
Select Case ct1.ControlType
Case acTextBox
ct1.Enabled = False
End Select
Next
End Function
Call textgb
Me.rkbc.Enabled = False
Me.入库子窗体.Locked = True
(2)添加按钮代码如下:
On Error GoTo err_rktj
Call textkf
Me.rkbc.Enabled = True
Me.rkbc.SetFocus
Me.rktj.Enabled = False
Exit Sub
err_rktj:
MsgBox Err.Description
(3)保存按钮代码如下:
Function textqc()
For Each ct1 In Controls
Select Case ct1.ControlType
Case acTextBox
ct1.Value = ""
End Select
Next
End Function
On Error GoTo err_rkbc
Dim sql As String, rsrk As ADODB.Recordset
Set rsrk = New ADODB.Recordset
sql = "select * from 入库表"
rsrk.Open sql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rsrk.MoveLast
rsrk.AddNew
rsrk("编号") = Me.编号
rsrk("入库编号") = Me.入库编号
rsrk("日期") = Me.日期
rsrk("材料名称") = Me.材料名称
rsrk("型号规格") = Me.型号规格
rsrk("入库数量") = Me.入库数量
rsrk("计量单位") = Me.计量单位
rsrk("调入单位") = Me.调入单位
rsrk("备注") = Me.备注
rsrk.Update
Set rsrk = Nothing
MsgBox "添加成功"
Me.入库子窗体.Requery
If MsgBox("是否继续输入数据?", vbYesNo + vbQuestion, "请选择...") = vbYes Then Call textkf
Call textqc
Me.rktj.Enabled = False
Me.rkbc.Enabled = True
Else
Call textgb
Me.rktj.Enabled = True
Me.rktj.SetFocus
Me.rkbc.Enabled = False
Call textqc
End If
Exit Sub
err_rkbc:
MsgBox Err.Description
End Sub
4.2.2 物资信息查询界面编码设计
“入库查询”窗体运行界面,如图4-3所示
图4-3入库查询界面
入库查询窗体包括入库窗体包括,一个查询按钮,一个导出按钮和一个入库查询子窗体,运行加载入库子窗体并锁定。在文本中输入编号、入库编号等信息后,单击查询,入库子窗体进行筛选,出即时显示查询结果,按导出能够将筛选的查询数据导出为Excel表
(1)入库查询窗体加载代码:
On Error GoTo err_rkcxload
Me.入库查询子窗体.Locked = True
Exit Sub
err_rkcxload:
MsgBox Err.Description
(2)查询按钮代码:
On Error GoTo err_rkcx
Dim sql As String
sql = ""
If Not IsNull(Me.编号) Then
sql = sql & "([编号] like '*" & Me.编号 & "*') AND "
End If
If Not IsNull(Me.入库编号) Then
sql = sql & "([入库编号] like '*" & Me.入库编号 & "*') AND "
End If
If Not IsNull(Me.材料名称) Then
sql = sql & "([材料名称] like '*" & Me.材料名称 & "*') AND "
End If
If Not IsNull(Me.开始日期) Then
sql = sql & "([日期] >= #" & Format(Me.开始日期, "yyyy-mm-dd") & "#) AND " End If
If Not IsNull(Me.结束日期) Then
sql = sql & "([日期]
If Len(sql) > 0 Then
sql = Left(sql, Len(sql) - 5)
End If
Me.入库查询子窗体.Form.Filter = sql
Me.入库查询子窗体.Form.FilterOn = True
Exit Sub
err_rkcx:
MsgBox Err.Description
(3)导出按钮代码:
On Error GoTo err_rkdc
Dim qdf As DAO.QueryDef
Dim sql, strSQL As String
sql = Me.入库查询子窗体.Form.Filter
If sql = "" Then
strSQL = "SELECT * FROM 入库表"
Else
strSQL = "SELECT * FROM 入库表 WHERE " & sql
End If
Set qdf = CurrentDb.QueryDefs("查询结果")
qdf.sql = strSQL
qdf.Close
Set qdf = Nothing
stroutputfilename = CurrentProject.Path & "\查询结果.xls"
DoCmd.OutputTo acOutputQuery, "查询结果", acFormatXLS, strouputfilename, True Exit Sub
err_rkdc:
MsgBox Err.Description
4.2.3 物资信息修改界面编码设计
“入库修改”窗体运行界面,如图4-4所示
图4-4入库修改窗体
入库修改窗体包括信息修改文本框,入库修改子窗体和查询、删除、修改、保存按钮,入库修改窗体加载时将入库修改子窗体锁定,将修改文本框除 编号、入库编号、材料名称 之外的隐藏。单击查询将要修改或删除的数据查询出来,然后单击删除的话就进行数据的删除,单击修改的话,将查询、删除、修改、保存按钮变为不可用,将所有信息输入文本框显示,便于修改,后单击保存将修改的数据保存到入库表。
入库修改窗体加载代码:
On Error GoTo err_rkcxload
Me.入库查询子窗体.Locked = True
Exit Sub
err_rkcxload:
MsgBox Err.Description
(2)入库修改查询代码如下:
On Error GoTo err_rkcx
Dim sql As String
sql = ""
If Not IsNull(Me.编号) Then
sql = sql & "([编号] like '*" & Me.编号 & "*') AND "
End If
If Not IsNull(Me.入库编号) Then
sql = sql & "([入库编号] like '*" & Me.入库编号 & "*') AND "
End If
If Not IsNull(Me.材料名称) Then
sql = sql & "([材料名称] like '*" & Me.材料名称 & "*') AND "
End If
If Len(sql) > 0 Then
sql = Left(sql, Len(sql) - 5)
End If
Me.入库修改子窗体.Form.Filter = sql
Me.入库修改子窗体.Form.FilterOn = True
Exit Sub
err_rkcx:
MsgBox Err.Description
(3)入库修改删除代码如下:
On Error GoTo err_rksc
Dim sql As String
sql = ""
sql = "delete * from 入库表 where"
21
If Not IsNull(Me.编号) Then
sql = sql & "([编号] like '*" & Me.编号 & "*') AND "
End If
If Not IsNull(Me.入库编号) Then
sql = sql & "([入库编号] like '*" & Me.入库编号 & "*') AND "
End If
If Not IsNull(Me.材料名称) Then
sql = sql & "([材料名称] like '*" & Me.材料名称 & "*') AND "
End If
If Not IsNull(Me.日期) Then
sql = sql & "([日期] = #" & Format(Me.日期, "yyyy-mm-dd") & "#) AND " End If
If Len(sql) > 0 Then
sql = Left(sql, Len(sql) - 5)
End If
DoCmd.RunSQL sql
Exit Sub
err_rksc:
MsgBox Err.Description
(4)入库修改代码如下:
On Error GoTo err_rkxg
Call textxs
Me.rkxgcx.Enabled = False
22
Me.rksc.Enabled = False
Me.rkxgbc.SetFocus
Me.rkxg.Enabled = False
Exit Sub
err_rkxg:
MsgBox Err.Description
(5)入库修改保存代码如下:
On Error GoTo err_rkxgbc
Me!入库修改子窗体!编号 = Me.编号
Me!入库修改子窗体!入库编号 = Me.入库编号
Me!入库修改子窗体!日期 = Me.日期
Me!入库修改子窗体!材料名称 = Me.材料名称
Me!入库修改子窗体!型号规格 = Me.型号规格
Me!入库修改子窗体!入库数量 = Me.入库数量
Me!入库修改子窗体!计量单位 = Me.计量单位
Me!入库修改子窗体!调入单位 = Me.调入单位
Me!入库修改子窗体!备注 = Me.备注
Me.入库修改子窗体.Requery
Exit Sub
err_rkcx:
MsgBox Err.Description
4.3 物资出库管理模块编码设计
23
物资出库管理包括物资基本信息的添加,删除,修改,保存,以及按条件查找等功能。
4.3.1物资出库界面编码设计
“出库”窗体运行界面,如图4-5所示:
图4-5出库窗体
界面与操作方法同入库窗体基本相同,此处不在赘述
(1)出库加载代码如下:
Function textgb()
For Each ct1 In Controls
Select Case ct1.ControlType
Case acTextBox
ct1.Enabled = False
End Select
Next
End Function
24
On Error GoTo err_ckload
Call textgb
Me.ckbc.Enabled = False
Me.出库子窗体.Locked = True
Exit Sub
err_ckload:
MsgBox Err.Description
(2)添加按钮代码如下:
On Error GoTo err_cktj
Call textkf
Me.ckbc.Enabled = True
Me.ckbc.SetFocus
Me.cktj.Enabled = False
Exit Sub
err_cktj:
MsgBox Err.Description
(3)保存按钮代码如下:
Function textkf()
For Each ct1 In Controls
Select Case ct1.ControlType
Case acTextBox
ct1.Enabled = True
End Select
25
Next
End Function
Function textqc()
For Each ct1 In Controls
Select Case ct1.ControlType
Case acTextBox
ct1.Value = ""
End Select
Next
End Function
Dim sql As String, rsck As ADODB.Recordset
Set rsck = New ADODB.Recordset
sql = "select * from 出库表"
rsck.Open sql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rsck.MoveLast
rsck.AddNew
rsck("编号") = Me.编号
rsck("出库编号") = Me.出库编号
rsck("日期") = Me.日期
rsck("材料名称") = Me.材料名称
rsck("型号规格") = Me.型号规格
rsck("出库数量") = Me.出库数量
rsck("计量单位") = Me.计量单位
26
rsck("调出单位") = Me.调出单位
rsck("领料人") = Me.领料人
rsck("备注") = Me.备注
rsck("调入单位") = Me.调入单位
rsck.Update
Set rsck = Nothing
MsgBox "添加成功"
Me.出库子窗体.Requery
If MsgBox("是否继续输入数据?", vbYesNo + vbQuestion, "请选择...") = vbYes Then Call textkf
Me.cktj.Enabled = False
Me.ckbc.Enabled = True
Call textqc
Else
Call textgb
Me.cktj.Enabled = True
Me.cktj.SetFocus
Me.ckbc.Enabled = False
Call textqc
End If
Exit Sub
err_rkbc:
MsgBox Err.Description
27
4.3.2物资出库查询界面编码设计
“出库查询”窗体运行界面,如图4-6所示:
图4-6出库查询窗体
界面与操作方法同入库查询窗体基本相同,此处不在赘述
(1)出库查询加载代码如下:
On Error GoTo err_ckcxload
Me.出库查询子窗体.Locked = True
Exit Sub
err_ckckload:
MsgBox Err.Description
(2)出库查询代码如下:
On Error GoTo err_ckcx
Dim sql As String
sql = ""
28
If Not IsNull(Me.编号) Then
sql = sql & "([编号] like '*" & Me.编号 & "*') AND "
End If
If Not IsNull(Me.出库编号) Then
sql = sql & "([出库编号] like '*" & Me.出库编号 & "*') AND "
End If
If Not IsNull(Me.材料名称) Then
sql = sql & "([材料名称] like '*" & Me.材料名称 & "*') AND "
End If
If Not IsNull(Me.调出单位) Then
sql = sql & "([调出单位] like '*" & Me.调出单位 & "*') AND "
End If
If Not IsNull(Me.开始日期) Then
sql = sql & "([日期] >= #" & Format(Me.开始日期, "yyyy-mm-dd") & "#) AND " End If
If Not IsNull(Me.结束日期) Then
sql = sql & "([日期]
If Len(sql) > 0 Then
sql = Left(sql, Len(sql) - 5)
End If
Me.出库查询子窗体.Form.Filter = sql
Me.出库查询子窗体.Form.FilterOn = True
29
Exit Sub
err_ckcx:
MsgBox Err.Description
(3)出库导出代码如下:
On Error GoTo err_ckdc
Dim qdf As DAO.QueryDef
Dim sql, strSQL As String
sql = Me.出库查询子窗体.Form.Filter
If sql = "" Then
strSQL = "SELECT * FROM 出库表"
Else
strSQL = "SELECT * FROM 出库表 WHERE " & sql
End If
Set qdf = CurrentDb.QueryDefs("查询结果")
qdf.sql = strSQL
qdf.Close
Set qdf = Nothing
stroutputfilename = CurrentProject.Path & "\查询结果.xls"
DoCmd.OutputTo acOutputQuery, "查询结果", acFormatXLS, strouputfilename, True Exit Sub
err_ckdc:
MsgBox Err.Description
30
4.3.3物资出库修改界面编码设计
“出库修改”窗体运行界面,如图4-7所示
图4-7出库修改修改窗体
界面与操作方法同入库修改窗体基本相同,此处不在赘述
(1)出库修改窗体加载代码如下:
On Error GoTo err_ckload
Call textyc
Me.ckxgbc.Enabled = False
Me.出库修改子窗体.Locked = True
Me.编号.Visible = True
Me.出库编号.Visible = True
Me.材料名称.Visible = True
31
err_ckload:
MsgBox Err.Description
(2)出库修改查询代码如下:
On Error GoTo err_ckxgcx
Dim sql As String
sql = ""
If Not IsNull(Me.编号) Then
sql = sql & "([编号] like '*" & Me.编号 & "*') AND "
End If
If Not IsNull(Me.出库编号) Then
sql = sql & "([出库编号] like '*" & Me.出库编号 & "*') AND "
End If
If Not IsNull(Me.材料名称) Then
sql = sql & "([材料名称] like '*" & Me.材料名称 & "*') AND "
End If
If Len(sql) > 0 Then
sql = Left(sql, Len(sql) - 5)
End If
Me.出库修改子窗体.Form.Filter = sql
Me.出库修改子窗体.Form.FilterOn = True
Exit Sub
32
MsgBox Err.Description
(3)出库修改删除代码如下:
On Error GoTo err_ckxgsc
Dim sql As String
sql = ""
sql = "delete * from 出库表 where"
If Not IsNull(Me.编号) Then
sql = sql & "([编号] like '*" & Me.编号 & "*') AND "
End If
If Not IsNull(Me.出库编号) Then
sql = sql & "([出库编号] like '*" & Me.出库编号 & "*') AND "
End If
If Not IsNull(Me.材料名称) Then
sql = sql & "([材料名称] like '*" & Me.材料名称 & "*') AND "
End If
If Not IsNull(Me.日期) Then
sql = sql & "([日期] = #" & Format(Me.日期, "yyyy-mm-dd") & "#) AND " End If
If Len(sql) > 0 Then
sql = Left(sql, Len(sql) - 5)
End If
DoCmd.RunSQL sql
33
err_ckxgsc:
MsgBox Err.Description
(4)出库修改代码如下:
On Error GoTo err_ckxg
Call textxs
Me.ckxgbc.Enabled = True
Me.ckxgcx.Enabled = False
Me.ckxgsc.Enabled = False
Me.ckxgbc.SetFocus
Me.ckxg.Enabled = False
Exit Sub
err_ckxg:
MsgBox Err.Description
(5)出库修改保存代码如下:
On Error GoTo err_ckxgbc
Me!出库修改子窗体!编号 = Me.编号
Me!出库修改子窗体!出库编号 = Me.出库编号
Me!出库修改子窗体!日期 = Me.日期
Me!出库修改子窗体!材料名称 = Me.材料名称
Me!出库修改子窗体!型号规格 = Me.型号规格
Me!出库修改子窗体!出库数量 = Me.出库数量
Me!出库修改子窗体!计量单位 = Me.计量单位
34
Me!出库修改子窗体!调出单位 = Me.调出单位
Me!出库修改子窗体!领料人 = Me.领料人
Me!出库修改子窗体!备注 = Me.备注
Me!出库修改子窗体!调入单位 = Me.调入单位
Me.出库修改子窗体.Requery
Exit Sub
err_ckxgbc:
MsgBox Err.Description
35
4.4 物资统计管理模块编码设计
物资出库管理包括物资信息的统计、库存的统计、报表的生成与导出。
4.4.1物资统计界面编码设计
“统计”窗体运行界面,如图4-8所示:
图4-8统计窗体
统计窗体能根据用户所输入的日期对出入库数据进行统计,并最终生成月报表,并在月报表子窗体中即时显示,又能够导出为excel表。
(1)生成月统计代码如下:
On Error GoTo err_ytj
36
If MsgBox("进行入库统计?", vbYesNo + vbQuestion, "请选择...") = vbYes Then
Dim rkjc, rkyjc, ckjc, ckyjc, sql As String
rkjc = "select 编号,材料名称,型号规格,sum(入库数量)as 入库总数,计量单位 "
rkjc = rkjc & "INTO 入库结存 FROM 入库表 where"
rkjc = rkjc & "([日期]>=#2010-01-01#)AND"
rkjc = rkjc & "([日期]
rkjc = rkjc & "Group by 编号,材料名称,型号规格,计量单位"
DoCmd.RunSQL rkjc
rkyjc = "select 编号,材料名称,型号规格,sum(入库数量)as 月入库总数,计量单位 " rkyjc = rkyjc & "INTO 入库月结存 FROM 入库表 where"
rkyjc = rkyjc & "([日期] >= #" & Format(Me.开始日期, "yyyy-mm-dd") & "#) AND " rkyjc = rkyjc & "([日期]
rkyjc = rkyjc & "Group by 编号,材料名称,型号规格,计量单位"
DoCmd.RunSQL rkyjc
Else
Exit Sub
End If
If MsgBox("进行出库统计?", vbYesNo + vbQuestion, "请选择...") = vbYes Then
ckjc = "select 编号,材料名称,型号规格,sum(出库数量)as 出库总数,计量单位 "
ckjc = ckjc & "INTO 出库结存 FROM 出库表 where"
ckjc = ckjc & "([日期]>=#2010-01-01#)AND"
ckjc = ckjc & "([日期]
ckjc = ckjc & "Group by 编号,材料名称,型号规格,计量单位"
37
DoCmd.RunSQL ckjc
ckyjc = "select 编号,材料名称,型号规格,sum(出库数量)as 月出库总数,计量单位 " ckyjc = ckyjc & "INTO 出库月结存 FROM 出库表 where"
ckyjc = ckyjc & "([日期] >= #" & Format(Me.开始日期, "yyyy-mm-dd") & "#) AND " ckyjc = ckyjc & "([日期]
ckyjc = ckyjc & "Group by 编号,材料名称,型号规格,计量单位"
DoCmd.RunSQL ckyjc
Else
Exit Sub
End If
If MsgBox("进行月统计?", vbYesNo + vbQuestion, "请选择...") = vbYes Then
sql = "SELECT 材料名称,型号规格,计量单位,sum(入库总数)as 入库,sum(出库总数)as 出库,sum(月入库总数)as 本月入库,sum(月出库总数)as 本月出库 into 月统计 from 统计联合 GROUP BY 材料名称,型号规格,计量单位"
DoCmd.RunSQL sql
Else
Exit Sub
End If
Exit Sub
err_ytj:
Err.Description
(2)生成月报表代码如下:
On Error GoTo err_ybb
Dim sql As String
38
sql = "SELECT 材料名称,型号规格,计量单位,[入库]-[出库]as 上月结存,本月入库,本月出库,[入库]-[出库]+[本月入库]-[本月出库]as 本月库存 into 月报表 from 月统计" DoCmd.RunSQL sql
Me.月报表子窗体.Requery
Exit Sub
err_ybb:
Err.Description
(3)月报表导出代码:
On Error GoTo err_tjdc
Dim qdf As DAO.QueryDef
Dim sql, strSQL As String
strSQL = "SELECT * FROM 月报表"
Set qdf = CurrentDb.QueryDefs("查询结果")
qdf.sql = strSQL
qdf.Close
Set qdf = Nothing
stroutputfilename = CurrentProject.Path & "\查询结果.xls"
DoCmd.OutputTo acOutputQuery, "查询结果", acFormatXLS, strouputfilename, True Exit Sub
err_tjdc:
MsgBox Err.Description
4.4.2月报表预览设计
“月报表预览”运行界面,如图4-9所示:
39
图4-9报表预览
在设计视图中用向导做的,没有代码
40
5 结论与体会
经过2个月的努力,我的仓库管理系统终于完成了。此次做系统给我最大的感触就是有了一个利用本专业所学到的知识,来练习、实践的机会。以前我也学了VB语言等编程语言,但那时我做的仅是用一些零零碎碎的知识,简简单单的语句来解决一些小问题而已。此次做系统却给了我一个机会,将自己所学到的有关数据库、ACCESS编程方面的所有的知识结合起来,用自己的辛勤努力,并最终结出甜美的果实。
通过进行仓库管理系统的开发,进一步明确了研制一个管理信息系统的方法和思路,将系统开发的各阶段的基本活动贯穿起来,使我更加形象、具体的了解了管理信息系统。系统开发的过程是一个巩固以前所学的计算机软件开发知识,掌握新技能的过程。我从这一阶段工作中受益非浅,通过前段时间的毕业设计,我能够融会贯通这几年所学的专业基础知识和专业理论知识,对当前计算机软、硬件技术的发展有了进一步地了解和认识,培养我们综合运用专业知识分析问题、解决问题的能力及运用工具软件的能力。不仅弄清了以前对系统开发的一些模糊的认识,而且提高了软件开发的水平,培养了严谨的工作作风,为今后在工作岗位上更好的使用计算机打下了坚实的基础。
我的系统规模比较小,同时由于我的时间和能力等多方面的因素影响,这个系统也存在一定的缺陷。比如系统的界面不够美观、有的功能不够完善等。对此还请老师给与批评指教,使我能够了解到我系统中所存在的缺陷与不足。
致谢
几个月的埋头苦干,由我研究的毕业设计-公司管理系统顺利完成。回首在这一段时间的学习和努力,我深深的感到,没有周围老师同学的帮助和关怀,就不可能有我今天作品的顺利完成。
首先,要感谢我的指导老师-陈芳,在设计进行的过程中遇到了种种困难,是老师一遍一遍的讲解,说明,是我对所学知识有了更深一步的了解,作品调试阶段是最困难的时间,老师亲身受教帮我克服设计过程中的种种难题。很是感激,在此深深的感谢李冬老师的指导,受教,帮助我顺利完成设计。
其次,设计过程中遇到困难要放弃时是同学朋友的帮助鼓励,让我有继续完成下去的动力和决心,非常感谢我的朋友同学们!
此外,对那些在学习工作生活中给过我帮助支持的其他老师和同学,我也要在此向他们表示真诚的谢意。
参考文献:
[1]新编Visual Basic 程序设计教程 张东亮主编 航空工业出版社
[2]数据库系统与Access教程 申莉莉主编 清华大学出版社
[3]Access项目案例导航 郑小玲、王学军编著 科学出版社
[4]张东亮,张鑫等.新编visual basic程序设计教程 航空工业出版社
[5]张勇等.visal basic 课程设计 中国水利水电出版社
[6]VB6.0 程序设计视频教程 高等教育出版社(第2版)
[7]Visual Basic6.0入门与提高 张树兵、戴红、陈哲编著 清华大学出社
[8]Access项目案例导航 郑小玲、王学军编著 科学出版社
[9]数据库系统与Access教程 申莉莉主编 清华大学出版社
[10]ACCESS编程网 www.accesssoft.com