Office中国论坛/Access中国论坛

标题: SQL里使用了LIKE以后出现的奇怪问题(已解决) [打印本页]

作者: STD    时间: 2010-9-2 23:41
标题: SQL里使用了LIKE以后出现的奇怪问题(已解决)
本帖最后由 STD 于 2010-9-14 16:00 编辑

本人在窗体中建有一子窗体,数据来源于查询表AA
sql="BB WHERE F2 LIKE '*" & ME.TEXT1 & "*'"
Set QDF = CurrentDb.QueryDefs("AA")
QDF.SQL = SQL
Me.Child0.SourceObject = "查询.AA"
Me.Child0.Requery
运行成功,子窗体中已经显示出正确的结果(600+记录),但是在使用
Set Rst = New ADODB.Recordset
SQL=“SELECT COUNT(F1) AS 笔数 FROM AA”
RST.Open SQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
DEBUG.PRINT .Fields(0)
结果是:0
如果将sql="AA WHERE F2 LIKE '*" & ME.TEXT1 & "*'"改成sql="AA WHERE F2 ='" & ME.TEXT1 & "'"
结果正确(600+记录数),不知何故?

作者: tmtony    时间: 2010-9-3 00:03
会不会 ME.TEXT1 的内容或表中的F2的内容前后是否有空格?
作者: 石三少    时间: 2010-9-3 08:34
王站晚上不睡觉的?
作者: STD    时间: 2010-9-3 09:48
回复 tmtony 的帖子
没有空格的。就是不解。。。

   
作者: tmtony    时间: 2010-9-3 12:12
可能要 把程序传上来看看才知道
作者: tmtony    时间: 2010-9-3 12:13
王站晚上不睡觉的?
石三少 发表于 2010-9-3 08:34



我是夜猫子,早上起得晚

作者: 石三少    时间: 2010-9-3 15:05
夜猫子老得快哦
作者: STD    时间: 2010-9-6 20:14
回复tmtony的帖子
有些数据不便上传。明明可以得到正确的明细结果,就是汇总结果返回值为NULL。。。
作者: koutx    时间: 2010-9-6 20:32
DEBUG.PRINT .Fields(0)    ?????
作者: koutx    时间: 2010-9-6 20:32
DEBUG.PRINT .Fields(0)    ?????
作者: koutx    时间: 2010-9-6 20:33
DEBUG.PRINT .Fields(0)
作者: koutx    时间: 2010-9-6 20:33
DEBUG.PRINT .Fields(0)
作者: koutx    时间: 2010-9-6 20:34
DEBUG.PRINT .Fields(0)
作者: koutx    时间: 2010-9-6 20:37
点发送回复,提示系统内部出现错误,没想到却一下了发了这么多条。可怕。
作者: STD    时间: 2010-9-7 12:55
本帖最后由 STD 于 2010-9-7 12:59 编辑

回复 koutx 的帖子

sql="SELECT COUNT(F1) AS 笔数,Sum(F2) as 汇总金额 From AA"
DEBUG.PRINT .Fields(0) ,.Fields(1)
0     NULL
   

作者: STD    时间: 2010-9-9 20:07
回复 STD 的帖子
找了二天,还没找不出原因,实在是奇怪,前一段使用精确查询(也就是用“=”)时,后一段的统计数据能够准确显示,但使用模糊查询(也就是用“LIKE”)时,能够在子窗体中更新后显示正确,但后一段的sql语句统计数据却显示为NULL?

   
作者: huisiming    时间: 2010-9-9 22:37
ADO里不可以用"*",必须用"%"。
作者: STD    时间: 2010-9-12 23:17
本帖最后由 STD 于 2010-9-12 23:23 编辑
ADO里不可以用"*",必须用"%"。
huisiming 发表于 2010-9-9 22:37

把sql="BB WHERE F2 LIKE '*" & ME.TEXT1 & "*'"
改为
sql="BB WHERE F2 LIKE '%" & ME.TEXT1 & "%"
sql汇总语句结果正确,但查询明细数据为空值了。
与使用“*”时相反:
使用“*”得到了正确的查询明细结果,只不过对该查询执行汇总统计的sql语句时得到空值。







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