Foxtable(狐表)用户栏目专家坐堂 → 求助,比较复杂的日期查询,狐爸来帮忙啊!


  共有8561人关注过本帖树形打印复制链接

主题:求助,比较复杂的日期查询,狐爸来帮忙啊!

帅哥哟,离线,有人找我吗?
lsy
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/3/23 21:32:00 [显示全部帖子]

Dim t As Table = Tables("资料查询_资料查询")
Dim cmbtxt = e.Form.Controls("ComboBox1").Text
t.Filter = (cmbtxt & " = #" & e.Form.Controls("TextBox1").Text & "-" & e.Form.Controls("TextBox2").Text & "-" _
& e.Form.Controls("TextBox3").Text & "#")

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/3/23 23:46:00 [显示全部帖子]

Dim t As Table = Tables("资料查询_资料查询")
Dim cmbtxt = e.Form.Controls("ComboBox1").Text
If e.Form.Controls("TextBox3").Text = "" Then
    t.Filter = cmbtxt & " > = #" & e.Form.Controls("TextBox1").Text & "-" & e.Form.Controls("TextBox2").Text & _
    "-01# And " & cmbtxt & " < = #" & e.Form.Controls("TextBox1").Text & "-" & e.Form.Controls("TextBox2").Text & "-28#"
ElseIf e.Form.Controls("TextBox2").Text = "" Then
    t.Filter = cmbtxt & " > = #" & e.Form.Controls("TextBox1").Text & "-01# And " & cmbtxt & " < = #" & e.Form.Controls("TextBox1").Text & "-12#"   
ElseIf e.Form.Controls("TextBox1").Text = "" Then
    t.Filter = ""
End If

 

只做了单一文本框为空的判断,而且没算完大小月、2月,基本思路是这样的,结果也是对的,你再把所有的可能性都过一遍,就行了,虽然有点笨,但管用。

真要做到滴水不漏,恐怕要用集合或数组来遍历所有可能性,年月日都要判断。

[此贴子已经被作者于2013-3-24 0:00:07编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/3/24 11:55:00 [显示全部帖子]

哈哈哈,完全搞定。想看不?

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/3/24 12:00:00 [显示全部帖子]

以下是引用e-png在2013-3-23 22:40:00的发言:

这样呢:?


Dim cnl As WinForm.ComboBox = Forms("资料查询").Controls("ComboBox1")
Dim tx1 As WinForm.TextBox = Forms("资料查询").Controls("TextBox1")
Dim tx2 As WinForm.TextBox = Forms("资料查询").Controls("TextBox2")
Dim tx3 As WinForm.TextBox = Forms("资料查询").Controls("TextBox3")
Dim t As Table = Tables("资料查询_资料查询")
Dim y As String
If tx2.text = ""
    y = "12"
Else
    y = tx2.text
End If
Dim yf As String = "4,6,9,11,04,06,09,11"
Dim dd,dd1 As String
If yf.contains(tx2.text) And tx1.text IsNot Nothing
    dd  = "30"
ElseIf Date.IsLeapYear(tx1.text) = True
    dd = "29"
ElseIf tx2.text = "2"
    dd = "28"
Else
    dd = "31"
End If
If tx3.text = ""
    dd1 = "1"
Else
    dd1 = tx3.text
End If

Dim cs As String = cnl.text &  " Like " & "'" & tx1.text & "'"

If cnl.text > "" And tx1.text > "" And tx2.text > "" And tx3.text > ""
    t.Filter = (cnl.text & " = #" & tx1.text & "-" & tx2.Text & "-" & tx3.Text & "#")

Else
    If cnl.text <> "" And tx1.text <> ""
        t.filter = " " & cnl.text & " > # " & dd1 & "/" & _
        y & "/" & tx1.text & "#  And  " & cnl.text & " < #" & _
        y & "/" & dd & "/" & tx1.text & "# "
    Else
        msgbox("请确认某日期或年份已经输入了")
    End If
End If

 

 

有错误提示。

[此贴子已经被作者于2013-3-23 23:21:34编辑过]


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/3/24 12:08:00 [显示全部帖子]

以下是引用lyfxybc在2013-3-24 12:04:00的发言:

为何不用年月日目录树

 

就当他出题,我们做题,题目难点,才有意思。


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/3/24 13:16:00 [显示全部帖子]

上传的附件,在哪设置“以下内容,只有回复后才能查看”?没这样弄过,你这个查询题出的高,实用性强,我想看看有多少人关注。

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/3/24 13:30:00 [显示全部帖子]

以下是引用sadfox在2013-3-24 13:25:00的发言:

大哥,我等级还是婴狐,这个问题我还没弄过呢。

你这个帖子快沉到钓鱼岛海底了,重新发个帖子,我再发附件给你。


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/3/24 13:46:00 [显示全部帖子]

以下是引用sadfox在2013-3-24 13:37:00的发言:
我这每次都是在前面啊,重复发相同的东东要被处罚的,你就编辑在你的第一个回复上吧,我看好像是4楼、

目录树虽好,毕竟浪费地皮,你这个查询,小巧玲珑,功能强大,应该让更多的狐友参考,并且完善。我来帮你发一个吧。


 回到顶部