Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

关于按时间段查询出现的问题

BIGDOG  发表于:2009-09-27 22:18:19  
复制

前段时间在这上面学了不少东西,自己做了一个简单的数据库,现在有一个问题:

我按完成时间段查询的时候,最后一天的内容总是不显示,只是显示到查询时间的前一天的内容,见"02.JPG",

但是我以前查询的时候就是正确的,见“01.jpg”,

我首先分析了一下,可能是我把完成时间的属性改了的原因:最早的时候我设置的完成时间的格式是短日期,

后来为了统计精确就改成了常规日期,但是改的时候已经录入了一部分记录了,在我传的jpg上面就能发现,查询

出错的时间段正好是我改了属性以后的时间,不知道有什么解决办法没有?

点击下载此附件点击下载此附件

 

Top
点燃一支烟 发表于:2009-09-28 08:11:25
http://www.accessoft.com/bbs/showtopic.asp?id=6082  不知道你的数据库的具体情况,但可以肯定是日期格式改变的问题,造成查询无法正确按条件筛选过滤记录,参阅该帖,可以解决你的问题。

BIGDOG 发表于:2009-09-28 23:20:12

邓老师,你好,这是我的查询和清空的代码,这也是我在这网上下载别人的,你帮我看一下哪块出问题了

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 & "([完成时间] >= #" & 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
Private Sub cmd清除_Click()
   
    '下面这些控件的值要清空
    Me.版号 = Null
    Me.完成时间开始 = Null
    Me.完成时间截止 = Null
   
    Me.下雕活查询子窗体.Requery  '清空之后一样要重新查询
End Sub



点燃一支烟 发表于:2009-09-29 08:29:09

   ...................................

 

   '判断【完成时间】条件是否有输入的值,由于有【完成时间开始】【完成时间截止】两个文本框
    '所以要分开来考虑
    If Not IsNull(Me.完成时间开始) Then
        '【完成时间开始】有输入
        strWhere = strWhere & "(CDate(Format$([完成时间], 'ddddd')) >= #" & Format(Me.完成时间开始, "yyyy-mm-dd") & "#) AND "
    End If
    If Not IsNull(Me.完成时间截止) Then
        '【完成时间截止】有输入
        strWhere = strWhere & "(CDate(Format$([完成时间], 'ddddd')) <= #" & Format(Me.完成时间截止, "yyyy-mm-dd") & "#) AND "
    End If
.....................................试试,也许cdtae()可以不要。



点燃一支烟 发表于:2009-09-29 09:02:46

   

或:...................................

 

   '判断【完成时间】条件是否有输入的值,由于有【完成时间开始】【完成时间截止】两个文本框
    '所以要分开来考虑
    If Not IsNull(Me.完成时间开始) Then
        '【完成时间开始】有输入
        strWhere = strWhere & "((Format([完成时间], 'ddddd') >= #" & Format(Me.完成时间开始, "yyyy-mm-dd") & "#) AND "
    End If
    If Not IsNull(Me.完成时间截止) Then
        '【完成时间截止】有输入
        strWhere = strWhere & "(Format([完成时间], 'ddddd') <= #" & Format(Me.完成时间截止, "yyyy-mm-dd") & "#) AND "
    End If
.....................................试试



BIGDOG 发表于:2009-09-29 20:55:02
邓老师,我试了一下,还是不行,我把数据库上传,你帮我看一下,谢谢了点击下载此附件

点燃一支烟 发表于:2009-09-30 08:21:05
BIGDOG 发表于:2009-10-01 07:46:07

搞定了,非常感谢邓老师!~



总记录:7篇  页次:1/1 9 1 :