设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4000|回复: 9
打印 上一主题 下一主题

[查询] 请问在窗体上查询,条件为空时默认为全部的写法,谢谢!

[复制链接]
跳转到指定楼层
1#
发表于 2016-9-7 12:46:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
30金钱
现需要窗体上以文本框内容为条件做查询,生成一个记录集,但查询条件为空时视为全部*,此时这个*符号该怎么写?

Private Sub Qry_Click
        dim rs as ADODB.Recordset
        dim sql as String
        sql = "select * from [BM] where [BM].[Operator] like '" & IIF(IsNull(Me.Operator),"*",Me.Operator) & "' "
        ...

按上述 IIF(IsNull(Me.Operator),"*",Me.Operator) 这样的写法记录集为空,但显然不对
        按 IIF(IsNull(Me.Operator),*,Me.Operator) 或 IIF(IsNull(Me.Operator),'*',Me.Operator) 这样又会报错


问题应该比较基础,但让我很纠结  




最佳答案

查看完整内容

If IsNull(Me.Operator) then sql = "select * from where .[Operator] like '*" & Me.Operator & "*' " end if
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2016-9-7 12:46:42 | 只看该作者
If  IsNull(Me.Operator)  then
sql = "select * from [BM] where [BM].[Operator] like '*" & Me.Operator & "*' "
end if

评分

参与人数 1经验 +10 收起 理由
panjie9327 + 10

查看全部评分

回复

使用道具 举报

3#
发表于 2016-9-7 13:25:13 | 只看该作者
select * from BM
回复

使用道具 举报

4#
 楼主| 发表于 2016-9-7 13:50:42 | 只看该作者
本帖最后由 panjie9327 于 2016-9-7 13:54 编辑

谢谢,但是确定是 IIF(IsNull(Me.Operator),"*",Me.Operator) 这里*号的问题。。
回复

使用道具 举报

5#
发表于 2016-9-7 14:04:50 | 只看该作者
If Nz(Me.Operator) <> "" Then
       。。。。。。
    Else
        Me.子窗体.SetFocus
        DoCmd.ShowAllRecords
    End If

评分

参与人数 1经验 +10 收起 理由
panjie9327 + 10

查看全部评分

回复

使用道具 举报

6#
发表于 2016-9-7 14:14:35 | 只看该作者
%                                 
回复

使用道具 举报

7#
 楼主| 发表于 2016-9-7 15:49:11 | 只看该作者
谢谢各位,按照admin版主的方法算是解决了

另外如果有很多的查询条件时,这样又会有点复杂吧
回复

使用道具 举报

8#
发表于 2016-9-7 16:55:22 | 只看该作者
panjie9327 发表于 2016-9-7 15:49
谢谢各位,按照admin版主的方法算是解决了

另外如果有很多的查询条件时,这样又会有点复杂吧

为什么不参考下刘小军常用窗体查询里的做法(第一种做法)呢?http://www.office-cn.net/thread-9226-1-1.html

创建一个查询,用于处理复杂的条件,使用ADO时,再打开记录集就好了。
例如该查询命名为查询1,使用ADO时,直接用rst.Open "查询1",currentproject.connection……

评分

参与人数 1经验 +10 收起 理由
panjie9327 + 10

查看全部评分

回复

使用道具 举报

9#
 楼主| 发表于 2016-9-7 19:17:03 | 只看该作者
roych 发表于 2016-9-7 16:55
为什么不参考下刘小军常用窗体查询里的做法(第一种做法)呢?http://www.office-cn.net/thread-9226-1-1 ...

谢谢,捡到宝贝了
回复

使用道具 举报

10#
发表于 2016-9-8 12:45:04 | 只看该作者
参与这个主题的就我没得分啊,楼主可是真不厚道

我的建议达不到要求还是哥的人品有问题

条件为空时默认为全部

select * from bm既是你的SQL的主体又匹配查询全部要求,既已存在何必再加*****,将这句单写
  s="select * from bm"
  if 条件不为为空 then s:=s & 条件 //组装条件
................

试过了吗?我没试过

不给分,差评

评分

参与人数 1经验 +10 收起 理由
panjie9327 + 10 一天就30分:)

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-13 12:28 , Processed in 0.102076 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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