Office中国论坛/Access中国论坛

标题: 麻烦帮忙看看以下代码出了什么问题? [打印本页]

作者: snryga    时间: 2017-10-12 20:35
标题: 麻烦帮忙看看以下代码出了什么问题?
在窗体上做了个查询用于筛选子窗体数据:
查询条件:开始日期(2017/9/1),截止日期(2017/9/1),就是正常的。但查询条件改成:开始日期(2017/9/1),截止日期(2017/9/2),就把1号、2号及11号到19号的数据全部筛选出来了。这到底怎么回事,整了半天都没搞明白。
Private Sub 查询_Click()
Dim strWhere As String
    strWhere = ""
    If Not IsNull(Me.开始日期) Then
        strWhere = strWhere & "([发生日期] >= #" & Format(Me.开始日期, "yyyy/m/d") & "#) AND "
    End If
    If Not IsNull(Me.截止日期) Then
        strWhere = strWhere & "([发生日期] <= #" & Format(Me.截止日期, "yyyy/m/d") & "#) AND "
    End If
    If Len(strWhere) > 0 Then strWhere = Left(strWhere, Len(strWhere) - 5)
    Me.清单表TF子窗体.Form.Filter = strWhere
    Me.清单表TF子窗体.Form.FilterOn = True
   
End Sub
作者: tmtony    时间: 2017-10-13 10:19
"yyyy/m/d")  改成 "yyyy/mm/dd")
试试
作者: snryga    时间: 2017-10-13 11:49
我试了还是不行,已上传附件,烦请看下呢!

作者: admin    时间: 2017-10-13 12:29
因为你表的字段是文本。用##就不对了。
在查询中,加个CDate强制转换成日期就可以了。

[attach]62061[/attach]

作者: snryga    时间: 2017-10-13 13:19
原来是这个原因。已搞好定,谢谢!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3