设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[Access本身] 关于查询

[复制链接]
跳转到指定楼层
1#
发表于 2011-12-22 20:11:24 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
Function 查询()
    Dim strWhere As String

    '如果姓名不为空,则将其加入到条件字符串
    If Not IsNull(Me.部门) Then strWhere = strWhere & " AND 部门='" & Me.部门 & "'"
    '如果性别不为空,则将其加入到条件字符串
    If Not IsNull(Me.问题种类) Then strWhere = strWhere & " AND 问题种类='" & Me.问题种类 & "'"
    '如果籍贯不为空,则将其加入到条件字符串
    If Not IsNull(Me.操作者) Then strWhere = strWhere & " AND 操作者='" & Me.操作者 & "'"
   ' If Not IsNull(Me.time1) Then strWhere = strWhere & " AND 部门='" & Me.部门 & "'"
   
   If Not IsNull(Me.time1) Then strWhere = strWhere & "([日期] >= #" & Format(Me.time1, "yyyy-mm-dd") & "#) AND "
        '【进书日期开始】有输入
        
    'End If
    'If Not IsNull(Me.time2) Then
        '【进书日期截止】有输入
        'strWhere = strWhere & "([日期] <= #" & Format(Me.time2), "yyyy-mm-dd") & "#) AND "
   
   
    '这里为了判断简便,最前面必定会有一个“ AND ”,这是不需要的,这里去掉它
    strWhere = Mid(strWhere, 6)




    '设置子窗体的筛选器条件
    Me.Quality.Form.Filter = strWhere
    '应用筛选
    Me.Quality.Form.FilterOn = True
End Function


红色字体代码错在那里请指导
这个是用在更新后事件里的不知道怎么时间那一个条件不行
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
19#
 楼主| 发表于 2011-12-23 20:53:04 | 只看该作者
谢谢版本
18#
发表于 2011-12-23 20:41:34 | 只看该作者
可以,就把两个时间用手工输入
17#
 楼主| 发表于 2011-12-23 20:03:00 | 只看该作者
弱弱的问一句 能不能写成用更新事件啊
16#
发表于 2011-12-23 19:22:14 | 只看该作者
Henry D. Sy 发表于 2011-12-23 19:21
把各个控件的更新后事件去掉,改为按钮事件,因为两个时间不是更新是赋值!



本帖子中包含更多资源

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

x
15#
发表于 2011-12-23 19:21:26 | 只看该作者
把各个控件的更新后事件去掉,改为按钮事件,因为两个时间不是更新是赋值!
14#
 楼主| 发表于 2011-12-23 18:53:24 | 只看该作者
{:soso_e115:}时间还是不能用啊
13#
发表于 2011-12-23 18:45:11 | 只看该作者
什么意思,
你红色图中的描述是要求呢,或是存在的问题?
我刚才测试过正常呀!
12#
 楼主| 发表于 2011-12-23 18:42:42 | 只看该作者

本帖子中包含更多资源

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

x
11#
发表于 2011-12-23 18:23:12 | 只看该作者
  1. Function 查询()
  2.     Dim strWhere As String

  3.     '如果姓名不为空,则将其加入到条件字符串
  4.     If Not IsNull(Me.姓名) Then strWhere = strWhere & "姓名='" & Me.姓名 & "' AND "
  5.     '如果性别不为空,则将其加入到条件字符串
  6.     If Not IsNull(Me.性别) Then strWhere = strWhere & "性别='" & Me.性别 & "' AND "
  7.     '如果籍贯不为空,则将其加入到条件字符串
  8.     If Not IsNull(Me.籍贯) Then strWhere = strWhere & "籍贯='" & Me.籍贯 & "' AND "

  9.     '这里为了判断简便,最前面必定会有一个“ AND ”,这是不需要的,这里去掉它
  10.     'strWhere = Mid(strWhere, 6)

  11.     If Not IsNull(Me.time1) Then strWhere = strWhere & "([日期] >= #" & Format(Me.time1, "yyyy-mm-dd") & "#) AND "

  12.     If Not IsNull(Me.time2) Then strWhere = strWhere & "([日期] <= #" & Format(Me.time2, "yyyy-mm-dd") & "#) AND "

  13.     If Len(strWhere) <> 0 Then
  14.         '有输入条件
  15.         strWhere = Left(strWhere, Len(strWhere) - 5)
  16.     End If

  17.     '先在立即窗口显示一下strWhere的值,代码调试完成后可以取消下一句
  18.     '    Debug.Print strWhere

  19.     '设置子窗体的筛选器条件
  20.     Me.frmChild.Form.Filter = strWhere
  21.     '应用筛选
  22.     Me.frmChild.Form.FilterOn = True
  23. End Function
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-20 19:28 , Processed in 0.102339 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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