Foxtable(狐表)用户栏目专家坐堂 → 筛选后用颜色表示


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

主题:筛选后用颜色表示

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
筛选后用颜色表示  发帖心情 Post By:2010/6/28 13:52:00 [只看该作者]

   我想做一个窗口上面绑定一张表,有一个文本框和按钮用于筛选,但筛选后筛选出来的数据只要符合文本框中的数据时用yellow颜色标出,应该怎么做?以前有DATALIST时我用DRAWCELL做过,但是现在datalist这个取消了,我不知道怎么弄,按照帮助我只能做到整列标出.我的筛选代码为:

 

   CurrentTable.Filter = ""
Dim Filter As String
With e.Form.Controls("TextBox1")
    If .Value IsNot Nothing Then
        Filter = "'*" & .Value & "*'"
    End If
End With
If Filter > "" Then
    Tables("订单").Filter = "产品 Like " & Filter & " Or 客户 Like "  & Filter  & " Or 雇员 Like "  & Filter
End If

 

  样式为:标出信息


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/28 14:40:00 [只看该作者]

table也有drawcell,原来怎么做,现在也怎么做


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
筛选后用颜色表示  发帖心情 Post By:2010/6/28 14:56:00 [只看该作者]

 我就是忘了怎么做了,那么示例找不到了.

 

    If  e.Col.Name = "产品" Then
    If e.Row.IsNull(e.Col.Name) = False 

         If e.Row(e.Col.Name) = ?  (如何等于窗口的文本框的数据) Then 
        e.Style = "标出信息" '那么用"优秀"样式绘制单元格
    End If
End If


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/28 15:03:00 [只看该作者]

参考drawcell事件的说明

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/6/28 15:19:00 [只看该作者]

以下是引用blackzhu在2010-6-28 14:56:00的发言:

 我就是忘了怎么做了,那么示例找不到了.

 

    If  e.Col.Name = "产品" Then
    If e.Row.IsNull(e.Col.Name) = False 

         If e.Row(e.Col.Name) = ?  (如何等于窗口的文本框的数据) Then 
        e.Style = "标出信息" '那么用"优秀"样式绘制单元格
    End If
End If

你不应该吧?:

If e.Row(e.Col.Name) = e.form.Controls("TextBox1").text


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
筛选后用颜色表示  发帖心情 Post By:2010/6/28 15:42:00 [只看该作者]

事件的说明我看了,还是做不出来,狐爸你帮忙写一个.

 

    If e.Row(e.Col.Name) = ?  (如何等于窗口的文本框的数据) Then 
       


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
筛选后用颜色表示  发帖心情 Post By:2010/6/28 15:57:00 [只看该作者]

以下是引用mr725在2010-6-28 15:19:00的发言:

你不应该吧?:

If e.Row(e.Col.Name) = e.form.Controls("TextBox1").text

  怎么写?这个不对的


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/6/28 16:00:00 [只看该作者]

窗口的事件才可以用e.form,表示控件所在窗口,也就是本窗口,表事件应该是forms("窗口名"),理由你要好好想想

 
If forms("xxx").Opened Then

    If e.Row(e.Col.Name) = forms("xxx").Controls("TextBox1").Value

    End If

End If

其实应该将这个文本框绑定到var变量,直接和var变量比较,效率高一些的

[此贴子已经被作者于2010-6-28 16:04:47编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/6/28 16:10:00 [只看该作者]

drawcell事件:

If  e.Col.Name = "第一列" Then
    If e.Row.IsNull(e.Col.Name) = False
        if Forms("窗口7").opened           
            If e.Row(e.Col.Name) = Forms("窗口7").Controls("TextBox1").text Then
                e.Style = "样式1" '那么用"优秀"样式绘制单元格
            end if
        End If
    End If
End If

 

窗口textbox控件的 textchanged事件:

With CurrentTable
    .StopRedraw
    .ResumeRedraw
End With

[此贴子已经被作者于2010-6-28 16:11:19编辑过]

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2010/6/28 16:18:00 [只看该作者]

我知道怎么回事?其实我第一次就对了,少了一句 If forms("xxx").Opened Then,没有判断窗口是不是打开?

明白了,谢谢!已经OK了


 回到顶部
总数 15 1 2 下一页