|
我们知道为了在窗体或者报表计算和输出合计,通常是在页眉页脚处用文本框来处理。对于用惯了Excel的同志们来说,总觉得这样的一种处理有些许别扭。因此,就有一小撮和我一样的初学者,希望能在连续的子窗体中直接把合计数列于表的尾部。近日,对这个问题胡乱琢磨了一番,发现还真可以在Access中实现。便也就写了一个小实例,或许能给同志们一个参考。
要点:
1、将明细查询和合计查询做成一个联合查询,其中合计的记录中人员ID编号为“99999”,保证该条记录在排序后处于末尾;
2、联合查询在子窗体中无法编辑数据,因此可以看成对子窗体的锁定。为了使数据能够修改,便通过解锁按钮更换数据源。
1、输入发放日期
2、点击导入名单按钮。
3、点击解锁按钮。
4、录入数据。
5、点击锁定按钮。
VB代码如下:
Private Sub 导入_Click()
Dim sql As String
DoCmd.SetWarnings no
If Not (IsNull(Me.发放日期)) Then
sql = "INSERT INTO 工资表 ( 人员ID, 日期 ) "
sql = sql + "SELECT 人员表.人员ID, Format(Forms!主窗体!发放日期,'yy-mm-dd') AS 日期 "
sql = sql + "FROM 人员表 "
sql = sql + "WHERE 人员表.部门ID=[Forms]![主窗体]![部门ID];"
DoCmd.RunSQL sql
Me.子窗体.Form.Requery
End If
End Sub
Private Sub 发放日期_LostFocus()
Me.子窗体.Form.Requery
Me.工资总额.Requery
End Sub
Private Sub 解锁_Click()
Me.子窗体.Form.RecordSource = "工资查询"
End Sub
Private Sub 锁定_Click()
Me.子窗体.Form.RecordSource = "联合查询"
Me.工资总额.Requery
End Sub
[ 本帖最后由 todaynew 于 2009-1-2 11:48 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|