设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2379|回复: 14
打印 上一主题 下一主题

[查询] 返回记录数为0的查询语句怎么写最好?

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2007-8-24 10:58:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如一个客户表有10万条记录,要建一个查询返回0条记录,可以这样写(ID是主键):

Select * From 客户表 Where ID Is Null
或者
Select * From 客户表 Where ID <> [ID]
或者
Select * From 客户表 Where ID = (ID字段永远不会出现的值)
等等

但是这样的查询是不是要对10万个[ID]进行检查呀?
如果是这样的话,有什么查询语句可以不检查记录内容而返回0条记录?
或者还有其他什么可以提高查询效率的方法……

请各位高手赐教!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-8-24 11:50:55 | 只看该作者
ID = 0
3#
发表于 2007-8-24 12:02:41 | 只看该作者
原帖由 一点通 于 2007-8-24 11:50 发表
ID = 0



一时还想不起来,以前用过.很巧妙的方法

点击这里给我发消息

4#
 楼主| 发表于 2007-8-24 12:03:18 | 只看该作者
大师:能解释一下为什么吗?ID Is Null 和 ID=0 有区别吗?
5#
发表于 2007-8-24 12:24:32 | 只看该作者
楼主是不是想子窗体在没有输入查询或筛选条件时不显示任何记录?

如果是的话,最简单的方法就是通过vba代码,将子窗体的数据来源暂时去掉或者替换为字段名相同的空表

在输入了查询或筛选条件时,将数据来源添加回去,然后刷新即可

点击这里给我发消息

6#
 楼主| 发表于 2007-8-24 12:31:00 | 只看该作者
你猜得太对了,如你所说。
但是把记录源设为空,已绑定的文本框就会显示错误字符。如果用VBA设置文本框的控件源,又太麻烦了。如果又多建一个空表,就有点多余,不甘心。
7#
发表于 2007-8-24 12:45:46 | 只看该作者
这种方法应该是可以的
Select * From 客户表 Where ID = (ID字段永远不会出现的值)
8#
发表于 2007-8-24 13:07:48 | 只看该作者
那就直接在查询里面做好了

其实,只要查询里面没有域函数,在有11万条记录下,速度和空表相差不会超过2秒的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
9#
发表于 2007-8-24 13:08:54 | 只看该作者
原帖由 andymark 于 2007-8-24 12:45 发表
这种方法应该是可以的
Select * From 客户表 Where ID = (ID字段永远不会出现的值)


因为自动编号永远不会是0, 所以符合这个条件
10#
发表于 2007-8-24 13:38:31 | 只看该作者
没有看到楼主的例子,既然5楼的猜对了,我提一点自己的想法:在主窗体加载时或在你想录入记录时,把主窗体的相关数据设为子窗体中相应字段没有的值就可以了,什么查询都不要.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-9 14:38 , Processed in 0.104095 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表