标题:VB如何按照时间段查询数据库内的数据,内有代码,请更正一下!!
只看楼主
yflovevb01
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2017-4-28
结帖率:75%
已结贴  问题点数:20 回复次数:4 
VB如何按照时间段查询数据库内的数据,内有代码,请更正一下!!
我用下面这一段代码查询我的数据库

Private Sub Command1_Click()
yybs = Left(Format(DTPicker2.Value, "short date"), 4) _
           + Right(Left(Format(DTPicker2.Value, "short date"), 7), 2) _
           + Right(Format(DTPicker2.Value, "short date"), 2)
yybz = Left(Format(DTPicker2.Value, "short date"), 4) _
           + Right(Left(Format(DTPicker2.Value, "short date"), 7), 2) _
           + Right(Format(DTPicker2.Value, "short date"), 2)
           If Val(yybs) > Val(yybz) Then
           MsgBox "开始时间不能超过截至时间", , "信息提示"
           DTPicker2.SetFocus
           Exit Sub
           End If
           Adodc1.RecordSource = "select*from 营业表 where 日期 between'" _
                            + Str(DTPicker1.Value) + "'and'" _
                            + Str(DTPicker2.Value) + "'order by 日期"
           Adodc1.Refresh
           Set MSHFlexGrid1.DataSource = Adodc1
End Sub



这个是按时间段查询的一个代码  出现了一个严重的问题
比如我查8月1到8月14
出现的就是8月1和8月10以后的数据
8月2到8月9的数据查询不到!!
搜索更多相关主题的帖子: 查询 Format Value short date 
2017-08-14 13:06
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
得分:10 
Adodc1.RecordSource = "select * from 营业表 where 日期>='" & Str(DTPicker1.Value) & "' And 日期<='" & Str(DTPicker2.Value) & "' order by 日期"
DTPicker1.Value 的值应该是日期的下限,DTPicker2.Value 的值是日期的上限,不知道你的具体数据,不清楚你上面的 yybs =...... 语句 与 yybz =....... 语句的意图。

请不要选我!!!
2017-08-14 14:12
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:934
专家分:5244
注 册:2015-8-10
得分:10 
看代码应该是没有什么错误的,可能有两种情况
1. 确实没有8月2到8月9的数据—— 请检查数据表中的数据
2. 有8月2到8月9的数据,但是书写的格式有问题,或者字段类型不是类型datetime(我印象中好像是其他类型的会有点问题)—— 请检查数据表中的数据和字段类型
2017-08-14 17:02
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
得分:0 
回复 3楼 xiangyue0510
看代码 DTPicker1.Value 与 DTPicker2.Value 好像是字符数据,应该不支持 between 吧。

请不要选我!!!
2017-08-14 19:40
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:934
专家分:5244
注 册:2015-8-10
得分:0 
以下是引用ZHRXJR在2017-8-14 19:40:20的发言:

看代码 DTPicker1.Value 与 DTPicker2.Value 好像是字符数据,应该不支持 between 吧。

这个没注意, between用的不多。那就转换类型呗。
楼主这个问题,我感觉就是数据类型的问题。
2017-08-15 08:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-480035-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.207785 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved