设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3076|回复: 5
打印 上一主题 下一主题

[窗体] DSum函数括号中第二套双引号中如何直接引用当前子窗体的记录集

[复制链接]
跳转到指定楼层
1#
发表于 2012-4-29 12:58:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在父窗体上建一文本框用来总计子窗体的出库数量,发现用=DSum ("[出库数量]", "Me.childWindow1.form.RecordsetClone", "条件")行不通,直接写成
=DSum ("[出库数量]", "forms!父窗体名!子窗体名.form.RecordsetClone", "条件")
也不行,均提示错误3078“找不到输入表或查询,请确定它是否存在,以及它的名称的拼写是否正确”。
由于子窗体在筛选或以某条件查询后,记录集经常发生变化,因此无法在DSum函数括号中的第二套双引号中写查询名称,只能引用当前子窗体的记录集写入第二套双引号里,该怎么写呢?请前辈赐教!
谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2012-4-29 15:13:12 | 只看该作者
可以在子窗体的页脚统计
主窗体引用子窗体的统计控件
3#
 楼主| 发表于 2012-4-29 20:44:07 | 只看该作者
谢谢版主关照!您这方法俺用过,俺的其它窗体上涉及到总计的地方就是这么用的。但这个窗体不同,因为在计算总计的时候有个条件,需要用到DSUM。
因为这个问题,引发了我对DSUM函数的思考,就是想知道它第二个双引号里只能写表或查询名称吗?“domain 必选。字符串表达式,用于标识构成域的记录集。它可以是不需要参数的查询的表名或查询名。”-------------摘自ACCESS帮助
如果domain 是动态的,经常变动的,也就是当前子窗体所显示的记录集,那该怎么写?
4#
 楼主| 发表于 2012-4-29 20:46:14 | 只看该作者
DSUM函数,就是想知道它第二个双引号里只能写表或查询名称吗?除了表或者查询的名称,还可不可以用窗体(或者子窗体)里面的动态数据集作为domain?
5#
发表于 2012-4-30 07:43:40 | 只看该作者
试用一下这个方法
=Nz(DSum("[出库数量","表名称","[物品名称]='" & Forms! 父窗体名!条件 & "' and 出库数量"),0)
条件:为查询文本框名称
6#
发表于 2012-5-1 15:52:47 | 只看该作者
本帖最后由 roych 于 2012-5-1 15:55 编辑
smilingkiss 发表于 2012-4-29 20:46
DSUM函数,就是想知道它第二个双引号里只能写表或查询名称吗?除了表或者查询的名称,还可不可以用窗体(或 ...


如果我没猜错的话,子窗体应该是用来做查询的吧?
对于这类问题,一般有几个方向:
1、如果子窗体的数据源是一个模糊查询的话,以子窗体的数据源做一个统计查询嵌入到主窗体当中即可。
2、如果子窗体的数据源是一个窗体筛选的话,可以顺便创建一个查询,利用QueryDef的SQL属性来指定查询SQL语句,同样可以子窗体嵌入到主窗体当中。
如果不想使用子窗体统计,而打算采用DSum语句的话,行不行呢?理论上也是可以的。

对于子窗体来说,大部分情况下变化的只是筛选或者查询条件,最终的数据源(也就是Form后面的那部分)应该是不变的。那么,如果用DSum语句,显然可以这样写:
3、=DSum("字段","子窗体的数据表","筛选条件")。由于采用了筛选语句,筛选条件是很好获取的。
如果From部分发生了变化,则相对麻烦些许,首先得通过ResourceObject属性来获取SQL语句,然后把From部分的数据源提取出来(如果涉及到多个表的联接,这可能并非易事),然后再按办法3来完成。

个人比较倾向于前面2种方法,因为语句比较容易写。以下是通过指定SQL属性来完成查询和统计的一个例子(由于界面较烂,所以就不上传附件了):

如图所示,由于使用了TabStrip控件,因此窗体不能直接使用IIF之类的模糊查询(不好指定控件位置),这也就是意味着必须使用根据查询的变化而随时修改子窗体的数据源,因此有以下代码:

最后在加载事件和按钮的单击事件(例如查询、刷新按钮等)中使用即可:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-11 05:03 , Processed in 0.112253 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表