Foxtable(狐表)用户栏目专家坐堂 → [求助]把代码改为从后台筛选


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

主题:[求助]把代码改为从后台筛选

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/17 17:58:00 [只看该作者]

以下是引用qscwdvefb在2016/10/17 17:52:00的发言:
对啊,我已经加了,之前的问题解决了,现在这个问题是我在combobox、textbox1那些控件上增加filter1的内容,但是运行时好像filter1没有筛选出来。。。
之前我没有在控件上输入任何东西,所以filter1里面没有内容,因此只筛选了[F4415]>0的数据,所以才会成功。现在问题好像就出现在filter1上


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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/17 18:01:00 [只看该作者]

msgbox弹出最终的筛选条件看看

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/17 18:20:00 [只看该作者]


---------------------------

---------------------------
[F5319]Like '*2011*' and
---------------------------
确定   
---------------------------

这是我在combobox控件输入“2011”时运行出来的messagebox结果,源代码如下:

Forms("退款记载结果").Open
Dim filter1 As String = ""

With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then
        filter1 = "[F5319]Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("TextBox1")
    If .Value IsNot Nothing Then
        If filter1 > "" Then
            filter1 = filter1 & " And "
        End If
        filter1 = filter1 & "[F4384]Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("TextBox2")
    If .Value IsNot Nothing Then
        If filter1 >"" Then
            filter1 = filter1 & " And "
        End If
        filter1 = filter1 & "[F4387] Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("TextBox3")
    If .Value IsNot Nothing Then
        If filter1 >"" Then
            filter1 = filter1 & " And "
        End If
        filter1 = filter1 & "[F4419]Like '*" & .Value & "*'"
    End If
End With

Dim cal1 As WinForm.DateTimePicker = e.Form.Controls("datetimepicker1")
Dim cal2 As WinForm.DateTimePicker = e.Form.Controls("datetimepicker2")
If cal1.value IsNot Nothing And cal2.value IsNot Nothing Then
    If filter1 > "" Then
        filter1 = filter1 & " and"
    End If
    filter1 = filter1 & "[F4411] >= '" & cal1.value & " ' and [F4411] <= ' " & cal2.value & "'"
End If
    If filter1 > "" Then
        filter1 = filter1 & " and"
  End If  
messagebox.show(filter1)
Dim dt As DataTable = Forms("退款记载结果").Controls("Table1").Table.DataTable
dt.LoadFilter = filter1 & " [F4415]>0"
dt.Load
Forms("退款记载结果").Controls("label2").Text =  Forms("退款记载结果").Controls("Table1").Table.Compute("sum(F4415)")

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/17 18:24:00 [只看该作者]

以下是引用qscwdvefb在2016/10/17 18:20:00的发言:

---------------------------

---------------------------
[F5319]Like '*2011*' and
---------------------------
确定   
---------------------------

这是我在combobox控件输入“2011”时运行出来的messagebox结果,源代码如下:

Forms("退款记载结果").Open
Dim filter1 As String = ""

With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then
        filter1 = "[F5319]Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("TextBox1")
    If .Value IsNot Nothing Then
        If filter1 > "" Then
            filter1 = filter1 & " And "
        End If
        filter1 = filter1 & "[F4384]Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("TextBox2")
    If .Value IsNot Nothing Then
        If filter1 >"" Then
            filter1 = filter1 & " And "
        End If
        filter1 = filter1 & "[F4387] Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("TextBox3")
    If .Value IsNot Nothing Then
        If filter1 >"" Then
            filter1 = filter1 & " And "
        End If
        filter1 = filter1 & "[F4419]Like '*" & .Value & "*'"
    End If
End With

Dim cal1 As WinForm.DateTimePicker = e.Form.Controls("datetimepicker1")
Dim cal2 As WinForm.DateTimePicker = e.Form.Controls("datetimepicker2")
If cal1.value IsNot Nothing And cal2.value IsNot Nothing Then
    If filter1 > "" Then
        filter1 = filter1 & " and"
    End If
    filter1 = filter1 & "[F4411] >= '" & cal1.value & " ' and [F4411] <= ' " & cal2.value & "'"
End If
    If filter1 > "" Then
        filter1 = filter1 & " and"
  End If  
messagebox.show(filter1)
Dim dt As DataTable = Forms("退款记载结果").Controls("Table1").Table.DataTable
dt.LoadFilter = filter1 & " [F4415]>0"
dt.Load
Forms("退款记载结果").Controls("label2").Text =  Forms("退款记载结果").Controls("Table1").Table.Compute("sum(F4415)")

messagebox.show(filter1)出现在倒数第五行


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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/17 18:31:00 [只看该作者]

---------------------------

---------------------------
[F5319]Like '*2011*' And [F4384]Like '*512*' and
---------------------------
确定   
---------------------------
这是在combobox1和TextBox1上输入,messagebox显示的结果

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/17 21:00:00 [只看该作者]

1、筛选条件所有关键字前后豆加上空格
2、Like '*2011*'  所有星号改为%号试试:Like '%2011&' 
3、确认数据库由此条件的记录

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/18 15:32:00 [只看该作者]

1.第一种方法能具体说一下嘛?
2.第二种方法所有星号都改为%不应该是:Like‘%2011%’吗?为什么是'%2011&'?
3.第三种方法是什么意思?
不好意思,我是新手菜鸟,不懂大神的世界,所以提那么多问题,不好意思~~

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/18 15:54:00 [只看该作者]

1.空格,如:[F4419]         Like     '*"           & .Value & "*'"
2.笔误,应该是Like‘%2011%’
3.就是说数据库到底有没有符合这个条件的数据?

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/18 17:06:00 [只看该作者]

现在有一个问题,我用的窗口表是副本表,我也对它采用分页加载显示筛选结果,然后我想用label控件(在源代码最后一行代码Forms("退款记载结果").Controls("label2").Text =  Forms("退款记载结果").Controls("Table1").Table.Compute("sum(F4415)"))计算窗口表筛选出来的全部结果,而不只是计算分页加载的几行结果,可是我这行运行的计算结果不是窗口表上的全部筛选结果,而是T246表上面全部行的数据的结果。应该要怎么改?


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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/18 17:14:00 [只看该作者]

With Forms("退款记载结果").Controls("Table1").Table
    Forms("退款记载结果").Controls("label2").Text =  .Compute("sum(F4415)",.Filter)
End With

 回到顶部
总数 42 上一页 1 2 3 4 5 下一页