Rss & SiteMap

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

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

标题:请教:窗口的DataList1筛选的代码问题

1楼
yangming 发表于:2009/4/30 12:14:00

下列代码中请看红色部分应该如何写,如果删除这二条,可以在表中筛选出来,加上的意思是想在DataList1中显示筛选结果,其它的字符型的都可以用,就是时间型无法用
Dim Filter As String
Dim dst As WinForm.DataList = e.Form.Controls("DataList1")

With e.Form.Controls("StartDate")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "离司时间 >= #" & .Value & "#"
       dst.RowFilter = Filter & "离司时间 >= #" & .Value & "#"

    End If
End With
With e.Form.Controls("EndDate")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "离司时间<= #" & .Value & "#"
       dst.RowFilter = Filter & "离司时间<= #" & .Value & "#"
 
       End If
End With
With e.Form.Controls("ComboBox9")
    If .Value IsNot Nothing Then
        Filter = "离司原因= '" & .Value & "'"
    dst.RowFilter =  "离司原因= '" & .Value & "'"

    End If
End With


If Filter > "" Then
    Tables("调出人员表").Filter = Filter
End If

2楼
cpayinyuan 发表于:2009/4/30 12:25:00

见下面.

[此贴子已经被作者于2009-4-30 12:27:44编辑过]
3楼
cpayinyuan 发表于:2009/4/30 12:27:00
以下是引用yangming在2009-4-30 12:14:00的发言:

下列代码中请看红色部分应该如何写,如果删除这二条,可以在表中筛选出来,加上的意思是想在DataList1中显示筛选结果,其它的字符型的都可以用,就是时间型无法用


  A.      Filter = Filter & "离司时间 >= #" & .Value & "#"
  B.     dst.RowFilter = Filter & "离司时间 >= #" & .Value & "#"


  A.      Filter = Filter & "离司时间<= #" & .Value & "#"
  B.     dst.RowFilter = Filter & "离司时间<= #" & .Value & "#"
 

你的红色代码好像有问题,前面的一行已经生成了正确的筛先表达式,Rowfilter这一行又重复连接了一次,就不正确了.


你的B行中的RowFilter是在A中的Filter的基础上又连了一次,连接重复了.不知是不是这个原因.

可以,把B行改为:dst.RowFilter = Filter 试一下.

[此贴子已经被作者于2009-4-30 12:29:31编辑过]
4楼
yangming 发表于:2009/4/30 12:33:00
先谢谢!我试试

是这个问题,再次感谢!
[此贴子已经被作者于2009-4-30 12:38:37编辑过]
5楼
blackzhu 发表于:2009/4/30 14:34:00
以下是引用yangming在2009-4-30 12:33:00的发言:
先谢谢!我试试

是这个问题,再次感谢!
[此贴子已经被作者于2009-4-30 12:38:37编辑过]

不用这么麻烦,利用老六的代码不要太爽!

1、首先在订单表新增一个窗口,窗口类型为模式,窗口插入一个TextBox和一个DataList,DataList绑定到客户表。

2、将TextBox1的TextChanged事件代码设为:

Dim txt As String = e.Form.Controls("TextBox1").Value
Dim
dst As WinForm.DataList = e.Form.Controls("DataList1")
If
txt = "" Then
    dst.RowFilter = ""

Else

    txt =
"'*" & txt & "*'"
    dst.RowFilter =
"客户ID Like " & txt & " Or 公司名称 Like " & txt & " Or 地址 Like " & txt & " Or 联系人 Like " & txt
End
If

这样我们在文本框中输入任何内容,DataList就会自动进行模糊筛选,显示客户ID、公司名称、地址、联系人这四列中,任何一列包括输入内容的行。

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

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

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