Foxtable(狐表)用户栏目专家坐堂 → [求助]筛选代码有问题,求助


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

主题:[求助]筛选代码有问题,求助

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


加好友 发短信
等级:婴狐 帖子:33 积分:312 威望:0 精华:0 注册:2014/12/21 12:26:00
[求助]筛选代码有问题,求助  发帖心情 Post By:2015/2/5 11:26:00 [只看该作者]

图片点击可在新窗口打开查看我设计的筛选按钮,按照
Dim xm As WinForm.TextBox = e.Form.Controls("姓名")
Dim fz As WinForm.ComboBox = e.Form.Controls("分组")
Dim xyjf As WinForm.TextBox = e.Form.Controls("现有积分")
Dim dw As WinForm.TextBox = e.Form.Controls("工作单位")
Dim yjfx As WinForm.ComboBox = e.Form.Controls("研究方向")
Dim szss As WinForm.TextBox = e.Form.Controls("所在省市")
Dim fzr As WinForm.TextBox = e.Form.Controls("负责人")

Tables("会员信息表").Filter="姓名 like '*" & xm.Text & "*' and 分组 like '*" & fz.Text & "*' and 现有积分 like '*" & xyjf.Text & "*' and 工作单位 like '*" & dw.Text & "*'  and 研究方向 like '*" & yjfx.Text & "*' and 所在省市 like'*"  & szss.Text & "*' and 负责人 Like '*" & fzr.Text & "*'"

点击之后,总是提示"无法将类型为“Foxtable.WinForm.ComboBox”的对象强制转换为类“Foxtable.WinForm.TextBox”。
 "应该怎么修改

另外,我想在积分筛选那块,做成大于某一个值的筛选,应该怎么弄啊

我按照http://www.foxtable.com/help/index.html?n=1058.htm的帮助进行修改过,也是有问题,苦恼

[此贴子已经被作者于2015-2-5 17:25:51编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/2/5 11:28:00 [只看该作者]

你搞错了了类型. 你某个个控件是 下拉框,你当作文本框来用了

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/2/5 11:29:00 [只看该作者]

而且你这样做筛选,某个控件没填写内容,就容易出错


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


加好友 发短信
等级:婴狐 帖子:33 积分:312 威望:0 精华:0 注册:2014/12/21 12:26:00
  发帖心情 Post By:2015/2/5 13:41:00 [只看该作者]

已经修改了文本的问题,现在是
Dim xm As WinForm.TextBox = e.Form.Controls("姓名")
Dim fz As WinForm.ComboBox = e.Form.Controls("分组")
Dim xyjf As WinForm.TextBox = e.Form.Controls("现有积分")
Dim dw As WinForm.TextBox = e.Form.Controls("工作单位")
Dim yjfx As WinForm.ComboBox = e.Form.Controls("研究方向")
Dim szss As WinForm.TextBox = e.Form.Controls("所在省市")
Dim fzr As WinForm.ComboBox = e.Form.Controls("负责人")

Tables("会员信息表").Filter="姓名 like '*" & xm.Text & "*' and 分组 like '*" & fz.Text & "*' and 现有积分 like '*" & xyjf.Text & "*' and 工作单位 like '*" & dw.Text & "*'  and 研究方向 like '*" & yjfx.Text & "*' and 所在省市 like'*"  & szss.Text & "*' and 负责人 Like '*" & fzr.Text & "*'" 

现在提示”无法在 System.Int32 和 System.String 上执行“Like”操作。“

现有积分那块,我想实现对某一区间段的筛选,实在不知道对数值是怎么判断的,编程零基础......
[此贴子已经被作者于2015-2-5 17:26:07编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/2/5 13:59:00 [只看该作者]

看3楼.

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


加好友 发短信
等级:婴狐 帖子:33 积分:312 威望:0 精华:0 注册:2014/12/21 12:26:00
  发帖心情 Post By:2015/2/5 15:26:00 [只看该作者]

谢了,经过反复揣摩,终于修改了比较好的结果,但是还有点问题,对”现有积分”那块的筛选,提示“该字符串未被识别为有效的 DateTime。”,用的textbox啊
代码如下:
Dim Filter As String
With e.Form.Controls("xm")
    If .Value IsNot Nothing Then
        Filter = "姓名 Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("fz")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "分组 = '" & .Value & "'"
    End If
End With
With e.Form.Controls("gzdw")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "工作单位 Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("yjfx")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "研究方向 Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("szss")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "所在省市 Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("fzr")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "负责人 Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("xyjf1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "现有积分 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("xyjf2")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "现有积分 <= #" & .Value & "#"
    End If
End With
With e.Form.Controls("hyyxq1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "会员有效期 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("hyyxq2")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "会员有效期 <= #" & .Value & "#"
    End If
End With
With e.Form.Controls("zsyxq1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "证书有效期 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("zsyxq2")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "证书有效期 <= #" & .Value & "#"
    End If
End With
If Filter > "" Then
    Tables("会员信息表").Filter = Filter
End If
[此贴子已经被作者于2015-2-5 17:26:25编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/2/5 15:28:00 [只看该作者]

日期就用日期框.  如果不是日期格式,就不要用#号. 用单引号

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


加好友 发短信
等级:婴狐 帖子:33 积分:312 威望:0 精华:0 注册:2014/12/21 12:26:00
  发帖心情 Post By:2015/2/5 15:34:00 [只看该作者]

太感谢了,终于把筛选的事情弄顺了,对于零基础的新人,而且还被催的很急的情况下,版主帮大忙了

 回到顶部