以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  查询30天内有购买的顾客的记录。。。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=47373)

--  作者:fubblyc
--  发布时间:2014/3/9 10:57:00
--  查询30天内有购买的顾客的记录。。。

各位老师,我要在{消费记录}表中查询30天内有购买的顾客,参照 帮助中 未来七天即将过生日  的代码:


Dim nms As String
Dim
n As Integer = 6 \'未来天数,含今天,所以实际是未来7天
For
Each dr As DataRow In DataTables("员工").DataRows
Dim dt As Date = dr("出生日期")
Dim dt1 As New Date(Date.Today.Year,dt.Month,dt.Day)
Dim dt2 As New Date(Date.Today.AddDays(n).Year,dt.Month,dt.Day)

If (dt1 >= Date.Today AndAlso dt1 < Date.Today.AddDays(n)) OrElse (dt2 >= Date.Today AndAlso dt2 < Date.Today.AddDays(n)) Then
nms = nms &
",\'" & dr("姓名") & "\'"
End If
Next
If
nms > "" Then
nms = nms.Trim(",")
Tables("员工").filter = "[姓名] In (" & nms &")"
End If


写成如下代码:


Dim nms As String
Dim 
n As Integer = -29 \'未来天数,含今天,所以实际是未来7天
For
 Each dr As DataRow In DataTables("消费记录").DataRows
Dim dt As Date = dr("最后购买日期")
Dim dt1 As New Date(Date.Today.Year,dt.Month,dt.Day)
Dim dt2 As New Date(Date.Today.AddDays(n).Year,dt.Month,dt.Day)

If (dt1 <= Date.Today AndAlso dt1 > Date.Today.AddDays(n)) OrElse (dt2 <= Date.Today AndAlso dt2 > Date.Today.AddDays(n)) Then
nms = nms & 
",\'" & dr("VIP卡号") & "\'"
End If
Next
If
 nms > "" Then
nms = nms.Trim(",")
Tables("消费记录").filter = "[VIP卡号] In (" & nms &")"
End If


但是没有实现,是不是哪里错了?


我知道一点是:生日的查询查到月和日,不管年份,而我这个查询要具体到年月日,但是不知道怎么写。。。


--  作者:ericsky
--  发布时间:2014/3/9 11:05:00
--  
VIP卡号 是不是整数列?
如果是整数列,应该是:nms = nms & "," & dr("VIP卡号")

--  作者:fubblyc
--  发布时间:2014/3/10 15:04:00
--  
谢谢ericsky,VIP卡号不是整数列,只是一个字符列。

怎么查询出购买日期在30天内的数据呢?
[此贴子已经被作者于2014-3-10 15:11:37编辑过]

--  作者:Bin
--  发布时间:2014/3/10 15:25:00
--  
出什么错? 上个例子看看.
--  作者:Bin
--  发布时间:2014/3/10 15:32:00
--  
你这个直接筛选日期范围就得了,不用这么复杂

Dim dt2 As date = Date.Today.AddDays(-30)

Tables("消费记录").filter = "最后购买日期>= #" & dt2 & "# and "最后购买日期<= #" & date.toDay & "#"

--  作者:fubblyc
--  发布时间:2014/3/10 15:57:00
--  
Bin老师,请看:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:30天内有消费.rar



--  作者:Bin
--  发布时间:2014/3/10 16:08:00
--  
5楼的代码你看了吗,就是这么简单,没别的.

Dim dt2 As Date = Date.Today.AddDays(-30)

Tables("VIP消费信息").filter = "购买日期>= #" & dt2 & "# and 购买日期<= #" & Date.Today & "#"

--  作者:fubblyc
--  发布时间:2014/3/10 16:17:00
--  
谢谢Bin老师,完美解决。就要这样的代码,简单简洁!!