计算机《数据库应用》案例教学教案.docx
- 文档编号:2316907
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:19
- 大小:267.03KB
计算机《数据库应用》案例教学教案.docx
《计算机《数据库应用》案例教学教案.docx》由会员分享,可在线阅读,更多相关《计算机《数据库应用》案例教学教案.docx(19页珍藏版)》请在冰点文库上搜索。
计算机《数据库应用》案例教学教案
《数据库应用》案例简易教案
本案例以商品的入库及销售为主要操作内容,旨在通过案例的制作,使学生对ACCESS的菜单功能有一个更深刻的理解并能系统掌握利用ACCESS开发应用小程序的目的。
案例名称《商品入库及销售管理系统》
一、所使用的数据表及其结构
1、表名:
“商品表”,用于存放商品的基本信息,结构如下要求:
字段名
数据类型
字段大小
小数
编号
文本
10
注:
设为主键
商品名
文本
60
规格
文本
20
单位
文本
10
零售价
数字
单精度
2
库存量
数字
长整型
自动
2、表名:
“入库表”,用于存放商品入库的基本信息,结构如下要求:
字段名
数据类型
字段大小
小数
输入法模式
入库单号
文本
10
注:
设为主键
编号
文本
10
注:
设为主键
入库日期
日期/时间
长日期
输入法关闭
数量
数字
整型
自动
进货价
数字
单精度
2
供应商
文本
50
操作员
文本
10
3、表名:
“销售表”,用于存放商品销售的基本信息,结构如下要求:
字段名
数据类型
字段大小
小数
输入法模式
编号
文本
10
销售日期
日期/时间
长日期
输入法关闭
数量
数字
整型
自动
零售价
数字
单精度
2
操作员
文本
10
4、表名:
“操作员表”,用以存放操作员的基本信息:
结构如下要求:
字段名
数据类型
字段大小
小数
输入法模式
操作员
文本
10
注:
设为主键
密码
文本
12
二、窗体的建立:
1、窗体名:
“商品管理”,用以商品基本信息的新增、编辑等功能。
具体实现后的窗体视图如下:
2、窗体名:
“商品浏览”,该窗体主要用于实现对整个商品信息的浏览作用,并不具备新增、编辑等功能,因此在其窗体属性中应设置“新增、删除、编辑”属性为“否”。
具体实现后的窗体视图如下:
3、窗体名:
“主窗体”,其作用是为实现整个系统中各个功能正常调用,在该主窗体中建立相关的调用按钮,以便用户通过点击主窗体中的相关按钮来实现相应功能的调用,由于该窗体是主窗体,是系统运行后出现的第一个人机交互界面,因此对该窗体进行一些修饰,如设置相关的字体、背景图、且不允许用户修改边框大小、不存在滚动条、记录定位器及浏览器等,这些相关属性应在窗体的属性窗口中进行设置。
具体实现后的窗体视图如下:
4、窗体名:
“商品名查询”,该窗体主要用于实现用户按商品名对商品信息的查询浏览作用。
为了实现按商品名查询,首先应充分利用ACCESS提供的参数查询功能,建立一个名为“按商品名查询”的查询。
由于按商品名查询后的信息只在查询窗体中显示,而对于ACCESS而言,可以先建立一个窗体,设置该窗体的数据来源于“按商品名查询”这一查询,因此,只要建立一名为“商品名查询”的窗体,设置该窗体的数据来源于“按商品名查询”这一查询,由于是查询,并不提供新增及、编辑功能,故应对该窗体的有关属性进行相应的设置,设置方法同“商品浏览”窗体的建立相似。
具体实现后的窗体视图如下:
5、窗体名:
“商品查询条件”,如下图所示:
若要利用查询条件的选择方式(如编号,或商品名),则可利用选项组方式来进行,在对选项组进行判断时,可以利用如下编码:
DimstDocNameAsString
IfMe!
[Frame3].Value=1Then
stDocName="商品编号查询浏览"
DoCmd.OpenFormstDocName
Else
stDocName="商品名查询浏览"
DoCmd.OpenFormstDocName
EndIf
同时,为了使查询中得到用户输入的查询内容,务必在查询设计窗口的准则中输入查询内容,若设计窗口及编码格式如:
“准则”中的代码如下:
[forms]!
[商品查询条件]!
[文本8]
6、窗体名:
“商品入库”,本窗体主要用于商品入库时的信息录入,其窗体视图如下:
说明一:
为了使用户在操作时可以通过点取商品编号来显示相应的商品名,因此在窗体中设计了一个下拉组合框,当用户点取该对象时,商品名应在对应的文本框中显示,因此应在下拉组合框对象的change事件中加上如下代码:
PrivateSub组合17_Change()
Setrs=NewADODB.Recordset
rs.Open"select*from商品表where编号='"+编号.Text+"'",CurrentProject.Connection,adOpenKeyset,adLockOptimistic
IfNotrs.EOFThen
商品名=rs("商品名")
EndIf
EndSub
说明二:
在窗体被加载到内存中时,对变量进行初始化、设置控件的一些初始属性,应在“窗体”中的“加载”事件中加代码如下:
PrivateSubForm_Load()
文本15=""
组合17=""
文本22=""
文本24=""
文本26=""
组合28=""
文本20=""
文本30=CStr(Date)
EndSub
入库单号=""
编号=""
进货价=""
供应商=""
操作员=""
商品名=""
数量=""
入库日期=CStr(Date)
说明三:
为了将用户输入的商品入库信息存放到入库表中,应在“保存”按钮中的“单击”事件中加如下代码:
PrivateSub命令33_Click()
If文本15=""Then
MsgBox("入库单号不能为空!
")
ExitSub
EndIf
If组合17=""Then
MsgBox("编号不能为空!
")
ExitSub
EndIf
If文本22=""Then
MsgBox("数量不能为空!
")
ExitSub
EndIf
If文本24=""Then
MsgBox("进货价不能为空!
")
ExitSub
EndIf
If文本26=""Then
MsgBox("供应商不能为空!
")
ExitSub
EndIf
If组合28=""Then
MsgBox("操作员不能为空!
")
ExitSub
EndIf
If文本30=""Then
MsgBox("入库日期不能为空!
")
ExitSub
EndIf
Setrs=NewADODB.Recordset
rs.Open"select*from入库表",CurrentProject.Connection,adOpenKeyset,adLockOptimistic(注:
也可以直接写成:
s.Open"select*from入库表",CurrentProject.Connection,3,3)
rs.AddNew
rs("入库单号")=文本15
rs("编号")=组合17
rs("数量")=CInt(文本22)
rs("进货价")=文本24
rs("供应商")=文本26
rs("操作员")=组合28
rs("入库日期")=文本30
rs.Update
Setcurdb=CurrentDb
curdb.Execute"update商品表set库存量=库存量+"+文本22+"where编号='"+组合17+"'"
MsgBox("商品已入库成功!
")
文本15=""
组合17=""
文本22=""
文本24=""
文本26=""
组合28=""
文本20=""
EndSub
说明四:
由于操作员一般为常用的几位数据选项,故利用下拉组合框,其设置过程可直接利用ACCESS的操作向导来完成,具体步骤本处略。
7、窗体名:
“查询入库商品的条件”,用于设置查询入库商品信息的条件设置,具体窗体视图如下所示:
说明一:
该窗体中的“查询”按钮的“单击”事件代码段如下:
DimstDocNameAsString
If框架4.Value=1Then
stDocName="按编号查询入库信息"
DoCmd.OpenFormstDocName
Else
stDocName="按时间段查询入库信息"
DoCmd.OpenFormstDocName
EndIf
说明二:
实现按编号查询入库商品的信息,其方法及代码参照第5小点说明。
若要实现按时间段进行查询,则在“查询”设计窗体中,对“按时间段查询入库商品表”的设计视图中,在“入库时间”字段的准则中加如下代码:
Between[forms]!
[查询入库商品的条件]!
[文本13]And[forms]!
[查询入库商品的条件]!
[文本17]
8、窗体名:
“商品销售”,本窗体主要用于商品销售后的记录情况,其窗体视图如下:
说明一:
为了使用户在操作时可以通过点取商品编号来显示相应的商品名及其它相关信息,因此在窗体中设计了一个下拉组合框,当用户点取该对象时,商品名应在对应的文本框中显示,因此应在下拉组合框对象的change事件中加上如下代码:
PrivateSub组合17_Change()
Setrs=NewADODB.Recordset
rs.Open"select*from商品表where编号='"+组合17+"'",CurrentProject.Connection,3,3
IfNotrs.EOFThen
文本19=rs("商品名")
文本21=rs("规格")
文本23=rs("单位")
文本25=rs("零售价")
文本27=rs("库存量")
kcl=rs("库存量")
EndIf
EndSub
说明二:
在窗体被加载到内存中时,对变量进行初始化、设置控件的一些初始属性,应在“窗体”中的“加载”事件中加代码如下:
PrivateSubForm_Load()
编号=""
商品名=""
规格=""
单位=""
零售价=""
数量=""
合计金额=""
操作员=""
销售日期=CStr(Date)
EndSub
【入库单号=""
编号=""
进货价=""
供应商=""
操作员=""
商品名=""
数量=""
入库日期=CStr(Date)
】
说明三:
在商品销售完毕后,应在“确定”按钮中的“单击”事件中加如下代码:
PrivateSub命令33_Click()
If组合17=""Then
MsgBox("编号不能为空!
")
ExitSub
EndIf
If文本19=""Then
MsgBox("商品名不能为空!
")
ExitSub
EndIf
If文本25=""Then
MsgBox("零售价不能为空!
")
ExitSub
EndIf
If文本27=""Then
MsgBox("数量不能为空!
")
ExitSub
EndIf
If组合29=""Then
MsgBox("操作员不能为空!
")
ExitSub
EndIf
Setrs=NewADODB.Recordset
rs.Open"select*from销售表",CurrentProject.Connection,3,3
rs.AddNew
rs("编号")=组合17
rs("销售日期")=文本31
rs("数量")=文本27
rs("零售价")=文本25
rs("操作员")=组合29
rs.Update
Setcurdb=CurrentDb
curdb.Execute"update商品表set库存量=库存量-"+文本27+"where编号='"+组合17+"'"
MsgBox("销售信息已保存")
Setrs=NewADODB.Recordset
rs.Open"select*from商品表where编号='"+组合17+"'",CurrentProject.Connection,3,3
Ifrs("库存量")<=5Then
MsgBox("友情提示,该商品库存量不多,应提前进货!
")
EndIf
组合17=""
文本19=""
文本21=""
文本23=""
文本25=""
文本27=""
组合29=""
文本31=CStr(Date)
标签41.Caption=CStr(0)
EndSub
总结
1、窗体“商品管理”涉及“商品表”,即数据源为“商品表”;
2、窗体“商品浏览”涉及“商品表”,即数据源为“商品表”;注意不可修改;
3、主窗体是“商品管理”、“商品浏览”、“商品查询”、“商品入库”、“入库商品查询”及“商品销售”的集合体;
4、窗体“商品查询”涉及的窗体及查询如下:
注:
(1)窗体“商品名查询浏览”的数据源来自查询“商品名查询”;
(2)窗体“商品编号查询浏览”的数据源来自查询“商品编号查询”;
(3)查询“商品名查询”的数据源来自“商品表”;
(4)查询“商品编号查询”的数据源来自“商品表”;
(5)本窗体难点在“查询”按钮的代码编写。
5、窗体“商品入库”没有直接来自数据源,但其涉及两个表“商品表”和“入库表”,字段分别是“入库单号、编号、商品名、数量、进货价、供应商、操作员、入库日期”,因为涉及两个表,所以“入库表”和“商品表”通过关键字“编号”进行关联,这是在建表初期要做的;
注:
本窗体中“编号”的下拉列表框及“保存”按钮的代码是一个难点;
6、窗体“入库商品查询”涉及的窗体及查询如下:
注:
(1)窗体“按编号查询入库信息”的数据源来自查询“按编号查询入库表”;
(2)窗体“按时间段查询入库信息”的数据源来自查询“按时间段查询入库表”;
(3)查询“商品名查询”的数据源来自“商品表”及“入库表”;
(4)查询“商品编号查询”的数据源来自“商品表”及“入库表”;
(5)本窗体难点在“查询”按钮的代码编写。
7、窗体“商品销售”有以下字段:
“入库单号、编号、商品名、数量、进货价、供应商、操作员、入库日期”,故其涉及3个表:
“商品表”、“入库表”及“销售表”。
本窗体的难点在于“编号”下拉列表的代码及“确定”按钮的代码编写。
附录(商品入库更改后的代码)
If入库单号=""Then
MsgBox("入库单号不能为空!
")
ExitSub
EndIf
If编号=""Then
MsgBox("商品编号不能为空!
")
ExitSub
EndIf
If商品名=""Then
MsgBox("商品名不能为空!
")
ExitSub
EndIf
If进货价=""Then
MsgBox("进货价不能为空!
")
ExitSub
EndIf
If数量=""Then
MsgBox("入库数量不能为空!
")
ExitSub
EndIf
If供应商=""Then
MsgBox("供应商不能为空!
")
ExitSub
EndIf
If操作员=""Then
MsgBox("操作员不能为空!
")
ExitSub
EndIf
If入库日期=""Then
MsgBox("入库日期不能为空!
")
ExitSub
EndIf
Setrs=NewADODB.Recordset
rs.Open"select*from入库表",CurrentProject.Connection,adOpenKeyset,adLockOptimistic
rs.AddNew
rs("入库单号")=入库单号
rs("编号")=编号
rs("进货价")=进货价
rs("数量")=数量
rs("入库日期")=入库日期
rs("供应商")=供应商
rs("操作员")=操作员
rs.Update
Setcurdb=CurrentDb
curdb.Execute"update商品表set库存量=库存量+"+数量+"where编号='"+编号+"'"
MsgBox("商品已入库成功!
")
入库单号=""
编号=""
数量=""
进货价=""
供应商=""
操作员=""
商品名=""
Label18
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库应用 计算机 数据库 应用 案例 教学 教案