Office中国论坛/Access中国论坛

标题: 奇怪的查询条件(请高手指教) [打印本页]

作者: cai373    时间: 2004-4-15 17:11
标题: 奇怪的查询条件(请高手指教)
      看上去相同的查询条件,但产出不同的查询结果.[attach]4251[/attach]

[attach]4252[/attach]


说明:
在模块里定义了:
Public Function Y() As Long
Y = 2004
End Function

Public Function X() As Long
X = 2
End Function

手工输入:[X]=2
第一种查询条件产生的结果:
2004年2月以前的所有数据(包括2003年所有月份的数据)
第二种查询条件产生的结果:
只有2004年2月,1月,和2003年2月,1月.也就是说没有2003年12月-3月的数据.

为什么会这样?请高手指教!





[attach]4271[/attach]
[此贴子已经被作者于2004-4-16 14:40:03编辑过]


作者: sea.er    时间: 2004-4-15 19:02
很明显,手动输入的参数查询中系统把两个参数组合起来作为了一个条件来处理,所以才会出现这种情况。
你想要的是哪种情况?
作者: cai373    时间: 2004-4-15 20:18
哦``我想要手工输入的结果,但我不想手工输入,有办法吗?
作者: sea.er    时间: 2004-4-15 20:47
[attach]4254[/attach]
作者: cai373    时间: 2004-4-15 21:51
好的,非常感谢
作者: cai373    时间: 2004-4-15 23:16
问题是解决了,但运行的速度比起手工输入了慢了很多.是不是因为调用模块的关系?
作者: hi-wzj    时间: 2004-4-15 23:47
一般的处理方式是将准则=窗体上某日期文本框的值,这样可动态显示所需的查询。
作者: cai373    时间: 2004-4-16 01:35
请问在窗体里如何动态定义模块里的Y和X?
作者: sea.er    时间: 2004-4-16 02:11
hi-wzj斑竹的意思是让你用这种方法:
http://www.office-cn.net/bbs/dispbbs.asp?boardID=9&ID=9226
作者: cai373    时间: 2004-4-16 02:42
那些查询我早看过了,在我个系统里也用上了.
但这次的查询涉及到生成表和多个追加查询,用到宏处理,所以那些动态查询应该不能用.

还是那个问题:
请问在窗体里如何动态定义模块里的Y和X?

作者: 土豆    时间: 2004-4-16 08:35
模块:
public Y as long
public X as long

窗体模块:
Y=...
X=...
作者: cai373    时间: 2004-4-16 18:21
还是不可以呀!!!
请问sea.er,像我这种情况,一个问题要用到多个查询逐步逐步完成,同时有些查询又有条件限制.
为了使运行时不弹出输入参数的文本框而使用了模块 Public Function ,但在窗体代码里又不能动态定义模块里的变里.所以使用起来很不方便.
例如我模块里这样定义了
Public Function Y() As Long
Y = 2004
End Function

Public Function X() As Long
X = 2
End Function
请问在窗体代码里怎样能动态定义.
也就是 Y=me.年 X=me.月 这样
作者: sea.er    时间: 2004-4-16 18:30
其实你不用定义公共变量。
你的窗体上不是有文本框吗?
查询里的参数直接取自这两个文本框不就行了吗?
文本框的内容随时可以更改,这不就是动态吗?
其实还是用刘斑竹的那种方法,你为什么说不可以呢?
作者: cai373    时间: 2004-4-16 18:40
我今天早上按你的说法改了几个小时都不行.
我的一个报表用到8个查询.
也就是查询2调用查询1,查询3调用查询2,查询4调用查询3.........查询8调用查询7.
其中查询2和5需要有条件限制.
按你所说的方法  "查询里的参数直接取自这两个文本框不就行了吗?"
我真的不知怎样实现.
作者: cai373    时间: 2004-4-16 18:42
期待你的指教
作者: sea.er    时间: 2004-4-16 19:16
我给你的那个链接你不是看了吗?
刘斑竹的“窗体查询”
作者: cai373    时间: 2004-4-16 20:51
看了,一直都有用到,但这次真的用不上
作者: cai373    时间: 2004-4-16 20:52
请问还有没有其它办法?
作者: yj11252551    时间: 2004-4-16 21:33
把你的库传上来大家看看嘛!
作者: cai373    时间: 2004-4-16 22:43
我刚才把它上传上来了.请sea.er 帮忙看看,用刘斑竹的“窗体查询”方法应该是不能做的.
作者: cai373    时间: 2004-4-16 22:45
如果改好了请把上传上来.谢谢
作者: sea.er    时间: 2004-4-17 00:16
你是不是这个意思,如果不是就是我理解错了
[attach]4272[/attach]
作者: cai373    时间: 2004-4-17 03:24
sea.er 你做错了,你有没有注意到,就算改变年和月刷新后的数据是不会变的.

作者: cai373    时间: 2004-4-17 03:27
我想如果能在窗体里动态改变模块里的变量就好了.
作者: cai373    时间: 2004-4-17 05:46
顶一下
作者: sea.er    时间: 2004-4-17 06:01
[attach]4274[/attach][attach]4275[/attach]
作者: hi-wzj    时间: 2004-4-17 06:03
您的报表做得真是辛苦啊。
其实您要善于使用联合查询来完成任务。

本例中只用一个联合查询,及一个窗体即完成。
当然由于您的过程太过复杂,(以致于读完程序就用了一个多小时,几次想放弃给忍住了。)不敢保证公式肯定正确。
本例的公式可能还是太复杂,应该有简化的可能。但没精力考虑了。且库结构设计有问题。
[attach]4276[/attach]
[此贴子已经被作者于2004-4-16 22:03:38编辑过]


作者: cai373    时间: 2004-4-17 07:23
真的非常感谢你为我花了这么多时间.
作者: cai373    时间: 2004-4-17 07:36
联合查询我一点都不认识,但你查出来的数年据是错的?你试输入"2004/5"我5月份都没有销售数据的.但你求出的是一些负数的错误数据.但还是很感谢你为我花了这么多时间.
作者: cai373    时间: 2004-4-17 07:38
sea.er,难道是我看错了
作者: cai373    时间: 2004-4-17 17:08
sea.er是不是你上传错了?我看到的的确是不会变的?
作者: sea.er    时间: 2004-4-17 20:17
没有传错啊,我又把这个下载下来试了试,没问题啊
大家帮忙测一下
作者: cai373    时间: 2004-4-18 02:39
sea.er,居然给你这么容易就做到了。“=[Forms]![报表系统]![年]”原这这样做条件也可以的。
从你那里真的学到很多知识,和ACCESS技巧,这个问题到现在完满解决了。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3