以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  月度回访日 查询。。。。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=47451)

--  作者:fubblyc
--  发布时间:2014/3/10 17:06:00
--  月度回访日 查询。。。。
Bin老师,我有一个月度回访日,是查询第一次购买日期的 日  的值,比如,一顾客第一次是2013年2月10日购买的,那么在每个月10号,我点这个按钮,都能筛选出这名顾客。

和生日有点像,不过生日是查询 月 日,而我这个是查询日。

我这样写代码:

Tables("VIP行为信息_VIP行为信息").filter = "第一次购买日期 = #" & Date.Today.Day & "#"

出现如下错误:
该字符串未被识别为有效的 DateTime。

是哪里出问题呢。。。

--  作者:Bin
--  发布时间:2014/3/10 17:09:00
--  
Tables("VIP行为信息_VIP行为信息").filter = "第一次购买日期 = #" & Date.Today & "#"
--  作者:fubblyc
--  发布时间:2014/3/10 17:25:00
--  
Bin老师,这个只能查是今年今月今天的记录

而不是所有年所有月今天的记录。。。

比如:
首次购买日期为2012-03-10

我在今天点这个按钮,能晒出出来,

在下个月的10日,依然能查询出来。。。。

有点类似生日的意思,
比如出生日期是1987-03-10
不管哪一年,只要是03-10 都是生日

而我这个不管是哪一年,哪一个月,只要是10日,都是纪念日。

大概是这个意思
[此贴子已经被作者于2014-3-10 17:33:34编辑过]

--  作者:Bin
--  发布时间:2014/3/10 17:36:00
--  
最简单的方法是,增加一个  日   列 把日期列的 日 单独存到这里去,  可以隐藏这个列, 然后筛选这个列即可.
--  作者:lsy
--  发布时间:2014/3/10 17:48:00
--  
Dim t As Table = Tables("订单")
t.Filter = ""
Dim id As String
For i As Integer = 0 To t.Rows.Count - 1
    Dim s As String = t.Text(i,t.Cols("日期").Index)
    Dim j As Integer = s.LastIndexOf("-")
    If s.SubString(j + 1) = Date.Today.Day Then
        id + = t.Rows(i)("_Identify") & ","
    End If
Next
If id > "" Then
    t.Filter = "_Identify In (" & id.Trim(",") & ")"
End If

--  作者:fubblyc
--  发布时间:2014/3/10 20:06:00
--  
谢谢Bin老师、lsy老师,我用了这种方法也可行:
Dim nms As String
For Each dr As DataRow In DataTables("员工").DataRows
    Dim dt As Date = dr("出生日期")
    If dt.Month = Date.Today.Month AndAlso dt.Day = Date.Today.Day Then    改为  If  dt.Day = Date.Today.Day Then    即可!!
        nms = nms & ",\'" & dr("姓名") & "\'"
    End If
Next
If nms > "" Then
    nms = nms.Trim(",")
    Tables("员工").filter = "[姓名] In (" & nms &")"
Else
    Tables("员工").filter = "false"
End If

--  作者:lsy
--  发布时间:2014/3/11 8:12:00
--  

好。