在rsOpen那句之后加上:
If rsBOF And rsEOF Then
MsgBox "无此数据"
Else
'这里放从i=0那句,到rsClose之前一句的代码!
End If
rsClose
End Sub
你那jzkNo,MzNO,Patient这三个字段 要么不写要么放到聚合函数里面,要么全放到group by后面,Group by
有一个原则:就是select后面的所有列中,没有使用聚合函数的列,必须出现在group by后面。
你的具体情况是什么我不是很了解,因为确实不太符合逻辑,感觉你的索引确实是有问题的。不过对于为什么针对索引没有结果,而全表扫描会出结果这个我倒是了解。。
正常情况下,一个表的索引不会包含所有记录,当索引字段为空时,在索引中是不包含这个记录的,比如说一个表中有100条记录,一个status字段,有50条记录为1,50条记录为空,那么如果查询语句通过索引来检索,结果只会有50条记录,因为另外50条记录在索引中是没有的。
不过你这个蛮奇怪。sid既然等于1,不应该为null的,按理不会出现这个情况,或者是索引状态是失效的?
不知道索引属主是不是你的用户,
或者可以考虑试试查一下。
SELECT tTABLE_NAME,tindex_name,tstatus FROM user_indexes t;
如果有dba权限就查
SELECT tTABLE_NAME,tindex_name,tstatus FROM dba_indexes t where ttable_name = '你的表名';
原因是数据库的数据后面有不可见字符(例如空格、制表、回车等),用下面的语句可以验证:
SELECT CONCAT('[',c,']'),LENGTH(c) FROM abcd
这个语句对字段C的前后添加[]显示,如果有空格可能会显示出来,同时显示c的长度,如果比你看见的多,肯定有问题。
你的数据库需要使用下面的语句来修复:
UPDATE abcd SET c=TRIM(c)
以上就是关于VB数据库查询问题 如果数据库无此内容,怎么显示“无此数据”提示全部的内容,包括:VB数据库查询问题 如果数据库无此内容,怎么显示“无此数据”提示、sql数据库查询不出数据、Oracle按索引字段条件查询无数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)