设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] 求助条件查询年龄的问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-1-21 09:40:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我做了一个简单的查询户口的窗体
现在碰到一个问题:当设置为条件查询时 查询年龄如 1-25岁 应怎么搞?
注:子窗体记录源条件格式为 like ***** and like *****

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-1-21 09:54:25 | 只看该作者
between 1 and 25
3#
 楼主| 发表于 2009-1-21 10:00:07 | 只看该作者
试过了,不行啊
6D帮忙看一下附件

里面有 like 怎么加上Between?

Like IIf([Forms]![通用主窗体]![C5]="","*",IIf(Len([Forms]![通用主窗体]![C5])=1,[Forms]![通用主窗体]![C5],[Forms]![通用主窗体]![C5] & "*"))

C5=年龄文本框
4#
 楼主| 发表于 2009-1-21 13:34:57 | 只看该作者
有谁知道啊
帮忙搞搞[:45] [:45]
5#
发表于 2009-1-21 13:43:20 | 只看该作者
试试(未测试):

Dim strWhere As String   '定义条件字符串
   
    strWhere = ""   '设定初始值-空字符串

    If Not IsNull(Me.c5)  Then
        strWhere = strWhere & "([c5] >= #" & Me.c5 & "#  AND "
    End If
    If Not IsNull(Me.c9) Then
        strWhere = strWhere & "([c9] <= #" & Me.c9 & "#  AND "
    End If
  
    If Len(strWhere) > 0 Then
        strWhere = Left(strWhere, Len(strWhere) - 5)
    End If
   
    Forms![查询全部信息子窗体].Filter = strWhere
    Forms![查询全部信息子窗体].FilterOn = True
6#
发表于 2009-1-21 14:03:39 | 只看该作者
Between IIf(IsNull([Forms]![通用主窗体]![C5]),1,[Forms]![通用主窗体]![C5]) And IIf(IsNull([Forms]![通用主窗体]![C9]),150,[Forms]![通用主窗体]![C9])
7#
 楼主| 发表于 2009-1-21 16:18:05 | 只看该作者
非常感谢 龙功和版主 的帮忙
已经搞定!
相对来说,版主的更加简单些
我把搞定的例子上转,希望对碰到相同问题的同志有帮助

本帖子中包含更多资源

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

x
8#
发表于 2009-1-22 09:44:25 | 只看该作者
龙功与版主的查询方式是不同的:一个是代码(VB)查询;一个是结构化查询语言(SQL)查询,不仅仅是简单不简单的问题!
如上述例子中:SQL查询,查询字段值不能为Null!或者说查询字段值为空,但符合‘条件’的记录是不会显示的。

[ 本帖最后由 龙功 于 2009-1-22 09:48 编辑 ]
9#
 楼主| 发表于 2009-1-22 15:02:15 | 只看该作者
我把6D的加以改进
iif(isnull(c9),年龄 like****,年龄 between ****)
不用写VB查询,就能搞定 年龄1-几岁的查询
谢谢龙功!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-1 05:56 , Processed in 0.081326 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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