- 步骤1:将数据表窗体修改为连续窗体
- 步骤2:添加记录号与行记录删除按钮
- 步骤3:在临时表添加2个字段,修改1个字段并在窗体中添加相关控件
- 步骤4: 在子窗体页脚添加合计项
- 步骤5:在子窗体页脚添加2个功能按钮
将数据表窗体修改为连续窗体
级别:初级
重要:
要求:了解并掌握
来源:Access 软件网
本课程主要讲解了如何将一个数据表窗体,修改为一个连续窗体。之所以要修改为连续窗体,是为了方便统计(例如数量、金额的合计)。
显示窗体页眉和页脚
1.单击此下载练习用的示例Continuousform.rar(文件大小:21K)
2.运行Continuousform.mdb,如下图所示:
3.进入窗体“frm采购订单_Edit_Detail”的设计视图,如下图所示:
4.单击上图中的 主体 二字,再按鼠标右键,显示画面如下图所示:
5.选中上图中的“窗体页眉/页脚(H)”,则显示窗体的页眉与页脚,如下图所示:
重新对控件布局并在页脚处添加数量合计
1.将各个控件的标签放置到窗体页眉,这里需要注意,并不能直接单独移动标签,所以要么在页眉处一个一个创建标签,要么就剪切标签再贴粘到窗体页眉,然后将各个控件对齐并调整,如下图所示:
2.在窗体页脚,添加一个文本框,命名为"txt小计",并在该文本框的控件来源中输入:=sum([完成数量]),如下图所示:
调整窗体默认视图
1.进入窗体的属性,通过双击窗体左上角的小方块,可以打开窗体的属性界面,如将默认视图设置为:连续窗体,如下图所示:
2.保存窗体,关闭设计视图。
3.运行“frm采购订单_Edit_Detail”窗体,修改完成数量的值,就可以看到页脚处的小计在实时变化,如下图所示:
提示:如果练习时发现行间距过大,需要在窗体中调节一下各控件的位置。
步骤2:添加记录号与行记录删除按钮
在“frm采购订单_Edit_Detail”窗体的设计界面,将相关的文本框和标签往右移动一定距离,在左边添加1个文本框"行号"和1个命令按钮"btnDelete",如下图所示:
为了让行号能自动显示序号,这样显得界面比较友好,给“行号”文本框的控件来源中输入:=GetLineNumber([Form])
为了方便操作员删除数据,给“btnDelete”删除按钮的单击事件中写代码:
Private Sub btnDelete_Click()
|
On Error Resume Next
|
If Not Me .NewRecord Then
|
DoCmd.SetWarnings False '屏弊系统的警告
|
RunCommand acCmdDeleteRecord '删除当前记录
|
DoCmd.SetWarnings True '取消屏弊系统的警告
|
End If
|
End Sub
|
步骤3:在临时表添加2个字段,修改1个字段并在窗体中添加相关控件
当前子窗体只有商品ID,给用户看时,商品ID本身并看不出什么内容,为了方便用户在录入采购订单明细时可以看到商品的”品名规格“、”单位“,在临时表“TMP_采购订单明细表”中添加这两个字段:
品名规格(文本类型,字段长度:255)
单位(文本类型,字段长度:10)
表中原“完成数量”字段,是指采购数量实际完成了多少,也即入库了多少,为了方便显示未入库数量,我们将“完成数量”字段改为“已入库数量”,这样,TMP_采购订单明细表的字段如下图所示:
同理,窗体中也应作相应的修改:
1.将商品ID的标签改为商品编码(该组合框不用修改,可通过设置属性来显示为商品编码)
2.添加“品名规格”、“单位”
3.添加“金额”,金额的控件来源:=[单价]*[数量]
4.修改“完成数量”为“已入库数量”
5.添加“未入库数量”,未入库数量的控件来源:=[数量]-[已入库数量]
修改后的画面如下图所示:
步骤4:在子窗体页脚添加合计项
为了方便看到同一采购订单的数量合计和金额合计,因此,在页脚添加合计项,。
1.添加文本框,命名为“数量合计”,控件来源:=Nz(Sum([数量]),0)
2.添加文本框,命名为“金额合计”,控件来源:=Nz(Sum([数量]*[单价]),0)
如下图所示:
步骤5:在子窗体页脚添加2个功能按钮
为了方便操作员在录入数据时,可以清除所有数据,因此添加一个“清空列表”的按钮;另外,当添加的商品没有时,能够添加新的商品,因此添加一个“添加新商品”按钮。
1.在窗体中创建一个“清空列表"命令按钮,命名为:btnDeleteAll,在其单击事件中写如下代码:
Private Sub btnDeleteAll_Click()
|
On Error Resume Next
|
If MsgBoxEx( "确定要清空当前列表中的所有商品吗?" , vbQuestion + vbOKCancel) = vbOK Then
|
CurrentDb.Execute "DELETE FROM TMP_采购订单明细表" '删除该表全部数据
|
Me .Requery '刷新数据
|
End If
|
End Sub
|
2.在窗体中创建一个“添加新商品"命令按钮,命名为:btnAddProduct,在其单击事件中写如下代码:
Private Sub btnAddProduct_Click()
|
DoCmd.OpenForm "frm商品信息_Edit" , , , , acFormAdd, acDialog
|
Me !商品ID.Requery
|
End Sub
|
两个按钮的位置如下图所示:
提示关于“商品ID”组合框,因为需要实现根据输入内容自动筛选的功能,该部分内容在 3.3.1.7 中。同样的,在本教程中,类似“采购订单管理”,一些具体功能的实现,并不存在一种线性的前后顺序,有些可能需要后面的内容学完了,前面一些存在但没有讲到的功能才会被串联起来。因此,请先完成整个功能模块的开发,再去进行测试试用。