Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共15 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:筛选后用颜色表示

1楼
blackzhu 发表于: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楼
狐狸爸爸 发表于:2010/6/28 14:40:00

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

3楼
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

4楼
狐狸爸爸 发表于:2010/6/28 15:03:00
参考drawcell事件的说明
5楼
mr725 发表于: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

6楼
blackzhu 发表于:2010/6/28 15:42:00

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

 

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

7楼
blackzhu 发表于: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楼
狐狸爸爸 发表于: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编辑过]
9楼
mr725 发表于: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编辑过]
10楼
blackzhu 发表于:2010/6/28 16:18:00

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

明白了,谢谢!已经OK了

共15 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03906 s, 2 queries.