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