设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主:
打印 上一主题 下一主题

[窗体] 请教日期的查询代码

[复制链接]

点击这里给我发消息

11#
发表于 2012-2-27 20:04:31 | 只看该作者
多加两个y,后面的文本框的值也格式化,就保险了
str = str & " and Format([发件日期], 'yyyy-mm-dd') >= #" & Format(Me.txtstartime, "yyyy-mm-dd") & "#"
12#
 楼主| 发表于 2012-2-27 21:19:39 | 只看该作者
t小宝 发表于 2012-2-27 20:04
多加两个y,后面的文本框的值也格式化,就保险了
str = str & " and Format([发件日期], 'yyyy-mm-dd') >= ...

还是不行,晕啊~~~还是提示“2465”错误。

点评

没用debug.print来debug吗  发表于 2012-2-28 04:45
13#
发表于 2012-2-28 09:19:36 | 只看该作者
传例子吧!
14#
发表于 2012-2-28 09:46:46 | 只看该作者
把日期格式更改为常规格式
  1. Private Sub chaxun()    '查询
  2.     Dim str As String
  3.     If IsNull(Me.txtstartime.Value) = False Then
  4.         str = str & "Format([发件日期],'yyyy-mm-dd') >= #" & Format(Me.txtstartime, "yyyy-mm-dd") & "# And "
  5.     End If
  6.     If IsNull(Me.txtendtime.Value) = False Then
  7.         str = str & "Format([发件日期],'yyyy-mm-dd') <= #" & Format(Me.txtendtime, "yyyy-mm-dd") & "#"
  8.     End If
  9.     Me.sub1.Form.Filter = str: Me.sub1.Form.FilterOn = True
  10. End Sub
复制代码


本帖子中包含更多资源

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

x
15#
 楼主| 发表于 2012-2-28 13:07:12 | 只看该作者
Henry D. Sy 发表于 2012-2-28 09:46
把日期格式更改为常规格式

HD.Sy版主啊,无法查询啊,不然你在这个时间段11-08-01和11-08-30里查来看,真的筛查不出来。

点评

怎么可能  发表于 2012-2-28 14:15
16#
发表于 2012-2-28 14:00:13 | 只看该作者
简 发表于 2012-2-28 13:07
HD.Sy版主啊,无法查询啊,不然你在这个时间段11-08-01和11-08-30里查来看,真的筛查不出来。

本帖子中包含更多资源

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

x
17#
发表于 2012-2-28 14:02:36 | 只看该作者
依赖性太强了,什么都要别人做好给他
18#
发表于 2012-2-28 14:07:22 | 只看该作者
  1. Private Sub chaxun()    '查询
  2.     Dim str As String
  3.     If Not IsNull(Me.txtstartime) Then
  4.         str = str & "Format([发件日期],'yyyy-mm-dd') >= #" & _
  5.               Format(Me.txtstartime, "yyyy-mm-dd") & "# And "
  6.     End If
  7.     If Not IsNull(Me.txtendtime) Then
  8.         str = str & "Format([发件日期],'yyyy-mm-dd') <= #" & _
  9.               Format(Me.txtendtime, "yyyy-mm-dd") & "# And "
  10.     End If
  11.     If Len(str) <> 0 Then
  12.         str = Left(str, Len(str) - 5)
  13.     End If
  14.     Me.sub1.Form.Filter = str
  15.     Me.sub1.Form.FilterOn = True
  16. End Sub
复制代码
将代码改成这样避免空值错误
19#
 楼主| 发表于 2012-2-28 20:34:38 | 只看该作者
本帖最后由 简 于 2012-2-28 20:46 编辑
Henry D. Sy 发表于 2012-2-28 14:07
将代码改成这样避免空值错误


版主啊,我现在好像明白我的代码为什么筛选不出结果了。

原因是我的时间里用了小时分秒。

当我要查11-08-10这个指定日期,我把开始时间,结束时间都设为11-08-10,我以为就应该筛选得出来,结果是不行的。
20#
 楼主| 发表于 2012-2-28 20:42:55 | 只看该作者
我终于找到问题原因了,正确的代码其实应该如下:

        If IsNull(Me.txtstartime.Value) = False Then
            str = str & " and [发件日期]>= #" & Format(Me.txtstartime, "yyyy-mm-dd") & " 00:00:00 #"        End If
   
        If IsNull(Me.txtendtime.Value) = False Then
            str = str & " and [发件日期]<= #" & Format(Me.txtendtime, "yyyy-mm-dd") & " 23:59:59 #"        End If

要考虑到小时分秒,好像就只有写才合理了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-28 14:44 , Processed in 0.098938 second(s), 37 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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