设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 下面的access窗体查询出现问题,求高手指点啊!急!

[复制链接]
跳转到指定楼层
1#
发表于 2014-9-23 11:29:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式




Private Sub cmd查询_Click()
On Error GoTo Err_cmd查询_Click
    Dim strWhere As String  '定义条件字符串
   
    strWhere = "" '设定初始值-空字符串
   
    If Not IsNull(Me.申请名称) Then
        '有输入
        strWhere = strWhere & "([申请名称] like '*" & Me.申请名称 & "*') AND "
    End If
   
    If Not IsNull(Me.区域) Then
        '有输入
        strWhere = strWhere & "([区域] like '" & Me.区域 & "') AND "
    End If
    If Not IsNull(Me.类型) Then
        '有输入
        strWhere = strWhere & "([类型] like '" & Me.类型 & "') AND "
    End If
      '判断【申请日期】条件是否有输入的值,由于有【申请日期开始】【申请日期结束】两个文本框
    '所以要分开来考虑
    If Not IsNull(Me.申请日期开始) Then
        '有输入
        strWhere = strWhere & "([申请日期] >= #" & Format(Me.申请日期开始, "yyyy-mm-dd") & "#) AND "
    End If
    If Not IsNull(Me.申请日期结束) Then
        '有输入
        strWhere = strWhere & "([申请日期] <= #" & Format(Me.申请日期结束, "yyyy-mm-dd") & "#) AND "
    End If
    '如果输入了条件,那么strWhere的最后肯定有" AND ",这是我们不需要的,
    '要用LEFT函数截掉这5个字符。
    If Len(strWhere) > 0 Then
        '有输入条件
        strWhere = Left(strWhere, Len(strWhere) - 5)
    End If
   
    '先在立即窗口显示一下strWhere的值,代码调试完成后可以取消下一句
    Debug.Print strWhere
   
    '让子窗体应用窗体查询
    Me.专利查询子窗体.Form.Filter = strWhere
    Me.专利查询子窗体.Form.FilterOn = True
   
Exit_cmd查询_Click:
    Exit Sub
Err_cmd查询_Click:
    MsgBox Err.Description
    Resume Exit_cmd查询_Click
   
End Sub

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
推荐
 楼主| 发表于 2014-9-25 09:28:06 | 只看该作者
Wanli_Li 发表于 2014-9-24 15:08
回复楼主你的程序问题:

1、查询按钮属性-事件-单击中选择“[事件过程]”,你的代码就可起作用,代码 ...

      你好,非常感谢你的指导!我按照你说的步骤一个个改了,不过把第2点的繁体字直接改成简体字了,但是我看到代码窗口那边有个“调试”“运行”,点了没反应……
1.请问要如何检测数据库已没问题呢?
2.如何实现点击子窗体上显示的查询结果,即可跳转到记录的基本信息窗体?
3.我们在设计数据库的时候左边有显示所有access对象的栏,如果最后数据库已完全修改好,要如何把左边的显示栏去掉,以免别人修改你的数据呢?
   十分感谢!因为本人真的是菜鸟,可能问的问题比较没水平,见谅!(*^__^*) 嘻嘻……
回复 支持 0 反对 1

使用道具 举报

2#
发表于 2014-9-23 14:40:01 | 只看该作者
光代码看不出什么问题,最好上传附件,具体看哪句出错方好调试
3#
 楼主| 发表于 2014-9-23 17:18:19 | 只看该作者
呜呜,我是菜鸟,但是要完成这个任务,全部靠自学!都不知道怎么调试才算成功!附件以献上,请赐教!

本帖子中包含更多资源

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

x

点击这里给我发消息

4#
发表于 2014-9-24 07:53:23 来自手机 | 只看该作者
帮须
回复

使用道具 举报

点击这里给我发消息

5#
发表于 2014-9-24 07:53:44 来自手机 | 只看该作者
帮顶—下
回复

使用道具 举报

6#
 楼主| 发表于 2014-9-24 08:35:45 | 只看该作者

十分感谢啦
7#
 楼主| 发表于 2014-9-24 08:36:19 | 只看该作者

O(∩_∩)O谢谢
8#
发表于 2014-9-24 11:18:11 | 只看该作者
大约就是引号和字段类型代号之类的问题

点击这里给我发消息

9#
发表于 2014-9-24 15:08:16 | 只看该作者
本帖最后由 Wanli_Li 于 2014-9-24 15:27 编辑

回复楼主你的程序问题:

1、查询按钮属性-事件-单击中选择“[事件过程]”,你的代码就可起作用,代码只有两处错误(见第4点);

2、类型文本框的数据来源你用的是“值列表”,虽然表面和表中的类型文字相同,但是你的值列表用的是简体中文,数据表中是繁体中文,这样查起来肯定是查不到相同的数据,你可以将数据来源改为“表/查询”,行来源插入语句“SELECT DISTINCT 专利状态登记表.类型 FROM 专利状态登记表; ”即可;

3、你的表中“申请日”和“授权日”均为文本型属性,你的代码中却是针对日期型字段的查询,建议你将表中的这两个字段更改为日期型,当然记录中的内容也要重新录入为日期型的内容;

4、因为你的表中字段名称是“申请日”,所以这两句代码中也必须是“申请日”:
      '判断【申请日期】条件是否有输入的值,由于有【申请日期开始】【申请日期结束】两个文本框
    '所以要分开来考虑
    If Not IsNull(Me.申请日期开始) Then
        '有输入
        strWhere = strWhere & "([申请日] >= #" & Format(Me.申请日期开始, "yyyy-mm-dd") & "#) AND "
    End If
    If Not IsNull(Me.申请日期结束) Then
        '有输入
        strWhere = strWhere & "([申请日] <= #" & Format(Me.申请日期结束, "yyyy-mm-dd") & "#) AND "
    End If

自己动手修改印象更深,所以没有发给你改正后的文件。




点击这里给我发消息

10#
发表于 2014-9-25 05:46:17 来自手机 | 只看该作者
赞一个 回答很详细
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-29 03:16 , Processed in 0.097615 second(s), 37 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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