Office中国论坛/Access中国论坛
标题: 日期查询,有关问题 [打印本页]
作者: wangf 时间: 2007-1-23 20:34
标题: 日期查询,有关问题
看了旧帖做了一个日期查询,但提醒数据库引擎不能将“forms!能耗查询!开始日期”识别为一个有效的字段名或表达示。
[attach]22780[/attach]
[em06][em06][em06][em06]
作者: wangf 时间: 2007-1-23 21:17
Private Sub Command12_Click()
Dim strWhere As String '定义条件字符串
strWhere = "" '设定初始值-空字符串
If Not IsNull(Me.开始日期) Then
'有输入
strWhere = strWhere & "([日期] >= #" & Format(Me.开始日期, "yyyy-mm-dd") & "#) AND "
End If
If Not IsNull(Me.截止日期) Then
'有输入
strWhere = strWhere & "([日期] <= #" & Format(Me.截止日期, "yyyy-mm-dd") & "#) AND "
End If
'让子窗体应用窗体查询
Me.能耗查询2.Form.Filter = strWhere
Me.能耗查询2.Form.FilterOn = True
End sub
作者: 一点通 时间: 2007-1-23 22:18
不能在交叉表查询的基础上的查询写入条件
作者: wangf 时间: 2007-1-24 20:47
谢谢!!,我换了一个查询方式,在查询中加了
Between [forms]![能耗查询]![开始日期] And [forms]![能耗查询]![截止日期]
但在窗体中我发现一个问题,我也不知道怎么了。
子窗体运行正常,主窗体打开时:要求输入东西,???
[此贴子已经被作者于2007-1-24 13:20:16编辑过]
作者: wangf 时间: 2007-1-24 20:49
例子重传了,Sorry!
[attach]22808[/attach]
[此贴子已经被作者于2007-1-24 14:04:17编辑过]
作者: 一点通 时间: 2007-1-24 21:26
请检查一下,你上传了什么东西?
作者: wangf 时间: 2007-1-24 22:06
我知道你很忙,打扰了。
例子已重传了
作者: 一点通 时间: 2007-1-24 23:01
按理不用这么多查询才能得出结果的,请说明一下各计算步骤,并写出最后的结果(最好用图表)
作者: clmkjszx123 时间: 2007-1-25 00:34
为什么提示:不能找到对象“|”
作者: wangf 时间: 2007-1-25 18:48
表1
id
浊水
自来水
1
100
100
2
101
102
3
102
103
4
103
105
5
104
106
结果
浊水
自来水
合计
用量
100
100
200
101
102
203
3
102
103
205
2
103
105
208
3
104
106</TD
作者: wangf 时间: 2007-1-25 19:01
以上是一张水表的查询
别外还有电和煤的用量,也是以这种方法做的,
所以有这么多的查询,最后以日期,和班次,把所有的查询结果联系起来得出最后的结果
日期 班次 水用量 电用量 煤用量
2006-12-22 丙 1 1 1
作者: 一点通 时间: 2007-1-25 19:22
<DIV class=quote>以下是引用wangf在2007-1-25 10:48:00的发言:
<TABLE cellSpacing=0 cellPadding=0 width=258 border=0 x:str>
<COLGROUP>
<COL style="WIDTH: 27pt; mso-width-source: userset; mso-width-alt: 1152" width=36>
<COL style="WIDTH: 33pt; mso-width-source: userset; mso-width-alt: 1408" width=44>
<COL style="WIDTH: 44pt; mso-width-source: userset; mso-width-alt: 1856" width=58>
<COL style="WIDTH: 36pt; mso-width-source: userset; mso-width-alt: 1536" width=48>
<COL style="WIDTH: 54pt" width=72>
表1
id
浊水
自来水
1
100
100
2
101
102
3
102
103
4
103
105
5
104
106
结果
浊水
自来水
合计
用量
100
100
200
101
102
203
3
102
103
205
2
103
105
208
3
<TR height=19>
<TD align=right x:num><FONT
作者: wangf 时间: 2007-1-25 20:27
id 不是自动编号,是手动的,我在窗体中做了,不可以删除,只能修改,添加。
我也注意到了,但没有更好的办法,
我上网求了好多天,也没人给我回答,只是让我看例子,(也许因为我的标题是要求算用量啦!)
你有好一点的方法吗??
[此贴子已经被作者于2007-1-25 12:34:23编辑过]
作者: wangf 时间: 2007-1-25 23:10
不要石沉大海啊!问题还没有解决
作者: Joe5525601 时间: 2007-1-26 00:58
单就查询来说,不用那么多.也不要在查询中写任何与窗体有关的准则.以水查询为例:
SELECT 水.日期, 水.班次, 水.浊环水, 水.净环水, 水.自来水, [浊环水]+[净环水]+[自来水] AS 合计, ([浊环水]+[净环水]+[自来水])-dlast("[浊环水]+[净环水]+[自来水]","水","[id]<" & [id]) AS 用量
FROM 水
这样即使id跳号也没有关系.
窗体按钮代码中引用的控件名称明显错误.另外非常乱,不顺.
作者: wangf 时间: 2007-1-27 19:39
谢谢! Joe5525601
我是个小小菜鸟,我在努力学习,[em23][em23][em23][em23][em23][em23][em23][em23]
[此贴子已经被作者于2007-1-27 11:40:57编辑过]
作者: wangf 时间: 2007-1-27 20:23
以下是引用Joe5525601在2007-1-25 16:58:00的发言:
单就查询来说,不用那么多.也不要在查询中写任何与窗体有关的准则.以水查询为例:
SELECT 水.日期, 水.班次, 水.浊环水, 水.净环水, 水.自来水, [浊环水]+[净环水]+[自来水] AS 合计, ([浊环水]+[净环水]+[自来水])-dlast("[浊环水]+[净环水]+[自来水]","水","[id]<" & [id]) AS 用量
FROM 水
这样即使id跳号也没有关系.
窗体按钮代码中引用的控件名称明显错误.另外非常乱,不顺.
可是加入了后,就不能计算出来了呀! 可以合计,不能算用量,?????
SELECT 电.日期, 电.班次, 电.[1#动力变], 电.[2#动力变], 电.[1#整流变], 电.[2#整流变], 电.[3#整流变], 电.[4#整流变], 电.[5#整流变], 电.高压电机, [1#动力变]*4000 AS [1#动力], [2#动力变]*4000 AS [2#动力], [1#整流变]*6000 AS [1#整流], [2#整流变]*6000 AS [2#整流], [3#整流变]*6000 AS [3#整流], [4#整流变]*6000 AS [4#整流], [5#整流变]*4000 AS [5#整流], [高压电机]*6000 AS 高压电, [1#动力]+[2#动力]+[1#整流]+[2#整流]+[3#整流]+[4#整流]+[5#整流]+[高压电] AS 合计, ([1#动力]+[2#动力]+[1#整流]+[2#整流]+[3#整流]+[4#整流]+[5#整流]+[高压电])-dlast("[1#动力]+[2#动力]+[1#整流]+[2#整流]+[3#整流]+[4#整流]+[5#整流]+[高压电]","电","[id]<" & [id]) AS 用量
FROM 电;
[attach]22853[/attach]
[此贴子已经被作者于2007-1-27 12:25:48编辑过]
作者: cgsilicone 时间: 2007-1-27 22:02
不能算用量是因为dlast语句有问题。
应该该将dlast("[1#动力]+[2#动力]+..............
改为 dlast([1#动力变]*4000+[2#动力变]*4000 ..............
因为表“电”中没有“1#动力”。
最好将此查询拆分为两个查询。
作者: wangf 时间: 2007-1-28 17:16
我拆过,是在查询的基础上做的用量,可是还是不能算出呀!
作者: Joe5525601 时间: 2007-1-28 19:16
电查询:SELECT 电.日期, 电.班次, 电.[1#动力变], 电.[2#动力变], 电.[1#整流变], 电.[2#整流变], 电.[3#整流变], 电.[4#整流变], 电.[5#整流变], 电.高压电机, [1#动力变]*4000 AS [1#动力], [2#动力变]*4000 AS [2#动力], [1#整流变]*6000 AS [1#整流], [2#整流变]*6000 AS [2#整流], [3#整流变]*6000 AS [3#整流], [4#整流变]*6000 AS [4#整流], [5#整流变]*4000 AS [5#整流], [高压电机]*6000 AS 高压电, [1#动力]+[2#动力]+[1#整流]+[2#整流]+[3#整流]+[4#整流]+[5#整流]+[高压电] AS 合计, ([1#动力变]*4000+[2#动力变]*4000+[1#整流变]*6000+[2#整流变]*6000+[3#整流变]*6000+[4#整流变]*6000+[5#整流变]*4000+[高压电机]*6000)-DLast("[1#动力变]*4000+[2#动力变]*4000+[1#整流变]*6000+[2#整流变]*6000+[3#整流变]*6000+[4#整流变]*6000+[5#整流变]*4000+[高压电机]*6000","电","[id]<" & [id]) AS 用量
FROM 电;
作者: wangf 时间: 2007-1-29 19:51
我知道了,谢谢, dlast,计算的对象是表中的字段,F1中可没有这样教,学到了,谢谢!!
[em23][em23][em23]
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |