以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口查询  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=50441)

--  作者:xiaohuli
--  发布时间:2014/5/6 20:53:00
--  窗口查询

在查询窗口中,有一个textbox1,table1,table1是绑定gdzc表的,我想实现当文本框中输入资产编号或类型等等之类的,能够查询出来结果,下面是代码,可以运行代码的时候出现错误,求大侠们帮我修改一下。

Dim tbl As Table = Tables("gdzc")
If e.Form.Controls("TextBox1")="" Then
    tbl.Filter = ""
Else
    tbl.Filter = "资产编号  like \'%"& e.form.controls("TextBox1").text & "%\'or 类型 like\'%"&  e.Form.Controls("TextBox1").text & "%\'or 名称 like\'%"&  e.Form.Controls("TextBox1").text & "%\'or 部门1 like\'%"&  e.Form.Controls("TextBox1").text & "%\' or 部门2 like\'%"&  e.Form.Controls("TextBox1").text & "%\' or 使用部门 like\'%"&  e.Form.Controls("TextBox1").text & "%\' or 使用人员 like\'%"&  e.Form.Controls("TextBox1").text & "%\' or 目前状态 like\'%"&  e.Form.Controls("TextBox1").text & "%\' or 经办人员 like\'%"&  e.Form.Controls("TextBox1").text & "%\' or 资产来源 like\'%"&  e.Form.Controls("TextBox1").text & "%\'"
End If
 DataTables("gdzc").LoadFilter = tbl.Filter
DataTables("gdzc").Load()


--  作者:有点甜
--  发布时间:2014/5/6 21:02:00
--  

目测代码没有错,提示什么错误?

 

试一下

 

Dim tbl As Table = Tables("gdzc")
If e.Form.Controls("TextBox1")="" Then
    tbl.Filter = ""
Else
    tbl.Filter = "资产编号 like \'%" & e.form.controls("TextBox1").text & "%\' or 类型 like \'%" & e.Form.Controls("TextBox1").text & "%\' or 名称 like \'%" & e.Form.Controls("TextBox1").text & "%\' or 部门1 like \'%" & e.Form.Controls("TextBox1").text & "%\' or 部门2 like \'%" &  e.Form.Controls("TextBox1").text & "%\' or 使用部门 like \'%" &  e.Form.Controls("TextBox1").text & "%\' or 使用人员 like \'%" &  e.Form.Controls("TextBox1").text & "%\'  or 目前状态 like \'%" &  e.Form.Controls("TextBox1").text & "%\' or 经办人员 like \'%" &  e.Form.Controls("TextBox1").text & "%\' or 资产来源 like \'%" &  e.Form.Controls("TextBox1").text & "%\'"
End If
DataTables("gdzc").LoadFilter = tbl.Filter
DataTables("gdzc").Load()

[此贴子已经被作者于2014-5-6 21:05:15编辑过]

--  作者:xiaohuli
--  发布时间:2014/5/6 21:14:00
--  
提示错误如图所示:
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20140506211336.jpg
图片点击可在新窗口打开查看

--  作者:xiaohuli
--  发布时间:2014/5/6 21:16:00
--  

我将原先的代码改了一下,改为:

Dim txt As String = e.Form.Controls("TextBox1")
Dim tbl As Table = Tables("gdzc")
If txt = "" Then
    tbl.Filter = ""
Else
    txt = "\'%" & txt & "%\'"
    tbl.Filter = " 类型 like " & txt & "or 名称 like " & txt & " or 部门1 like " & txt & " Or 部门2 like " & txt & " or 使用部门 like " & txt & " or 使用人员 like " & txt & " or 目前状态 like " & txt & " or 经办人员 like " & txt & " or 资产来源 like " & txt & ""
End If
 DataTables("gdzc").LoadFilter = tbl.Filter
DataTables("gdzc").Load()

 

出现的错误是就发的图片。


--  作者:lsy
--  发布时间:2014/5/6 21:18:00
--  
Dim tbl As Table = Tables("gdzc")
If e.Form.Controls("TextBox1") .Text = "" Then
    tbl.Filter = ""
Else

--  作者:有点甜
--  发布时间:2014/5/6 21:21:00
--  

这样改

 

Dim txt As String = e.Form.Controls("TextBox1").Text
Dim tbl As Table = Tables("gdzc")
If txt = "" Then
    tbl.Filter = ""
Else
    txt = "\'%" & txt & "%\'"
    tbl.Filter = " 类型 like " & txt & "or 名称 like " & txt & " or 部门1 like " & txt & " Or 部门2 like " & txt & " or 使用部门 like " & txt & " or 使用人员 like " & txt & " or 目前状态 like " & txt & " or 经办人员 like " & txt & " or 资产来源 like " & txt & ""
End If
 DataTables("gdzc").LoadFilter = tbl.Filter
DataTables("gdzc").Load()


--  作者:xiaohuli
--  发布时间:2014/5/6 21:22:00
--  

谢谢lsy老师


--  作者:xiaohuli
--  发布时间:2014/5/6 21:24:00
--  
谢谢有点甜。
--  作者:xiaohuli
--  发布时间:2014/5/6 21:33:00
--  

老师,还有一个查询问题,如图所示:
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20140506212420.jpg
图片点击可在新窗口打开查看
我想实现,当开始日期和结束日期都未输入时,类型一列的值我都已经取到了,选择一种类型就会从gdzc表中加载出来,若是开始日期和结束日期都输入,就加载该

时间段的数据,若是三个都输入了,那就满足这三个条件的加载过来,下面的代码不能满足我的要求,不知改如何修改。请老师帮忙改改。

Dim Filter As String
Tables("固定资产").Filter = ""
With e.Form.Controls("DateTimePicker1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        \'Filter = Filter & "zt = \'" & .Value & "\'"
        Filter = Filter & " 购置日期 >= \'" & .Value & "\' "
    End If
End With
With e.Form.Controls("DateTimePicker2")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        \'Filter = Filter & "zt = \'" & .Value & "\'"
        Filter = Filter & " 购置日期 <= \'" & .Value & "\' "
    End If
With e.Form.Controls("ComboBox1")
 
    If .Value IsNot Nothing Then
        Filter = "类型 = \'" & .Value & "\'"
    End If
End With
DataTables("固定资产").LoadFilter = Filter
DataTables("固定资产").Load()


--  作者:有点甜
--  发布时间:2014/5/6 21:38:00
--  

这样

 

Dim Filter As String = "1=1 "

With e.Form.Controls("DateTimePicker1")
    If .Value <> Nothing Then
        Filter = Filter & " and 购置日期 >= #" & .Value & "# "
    End If
End With
With e.Form.Controls("DateTimePicker2")
    If .Value <> Nothing Then
        Filter = Filter & " and 购置日期 <= #" & .Value & "# "
    End If
With e.Form.Controls("ComboBox1")
    If .Value > "" Then
        Filter = " and 类型 = \'" & .Value & "\'"
    End If
End With
Tables("固定资产").Filter = ""
DataTables("固定资产").LoadFilter = Filter
DataTables("固定资产").Load()