以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]单表多字段组合查询  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=34248)

--  作者:laoshu4569
--  发布时间:2013/6/3 17:20:00
--  [求助]单表多字段组合查询
在窗口中有多个TextBox 代表多个字段 sql查询条件 是从上述TextBox中读取出来然后进行查询 可是 当单独查询某个字段时 没有问题 可是 两个字段一组合查询查询结果不正确了 其实我知道可以对TextBox判断为空 然后在写条件组合查询  可是假如我有很多字段 有什么好点的方法吗

我的需求呢就是 单独字段查询时可查 任意字段组合查询时 也可查询出来 其实看了那个代码就知道 组合查询为什么不对了  尽量不去判断TextBox为空 但是有的是一定要判断为空
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目14.rar

可是字段太多了 一个个去判断为空 很麻烦 有什么解决的办法吗

要用sql查询  我之前做的是  先加载全部数据 然后用的内部表查询办法 可是 假如数据量超过万条以上 先加载就很慢 我现在就是想不加载 直接从数据库查 然后返回到表中
[此贴子已经被作者于2013-6-3 17:21:33编辑过]

--  作者:Bin
--  发布时间:2013/6/3 17:22:00
--  
遍历当前窗口的所有文本框,然后操作即可.可以省下N多重复代码.也可以写一个全局函数来处理


--  作者:laoshu4569
--  发布时间:2013/6/3 17:24:00
--  
能写个小事例 我看看吗  图片点击可在新窗口打开查看谢谢了
--  作者:Bin
--  发布时间:2013/6/3 17:25:00
--  
帮助都写得这么清楚了.还不会吗?图片点击可在新窗口打开查看
--  作者:laoshu4569
--  发布时间:2013/6/3 17:27:00
--  
遍历是会 可是在写语句的时候 该怎么去写呢
--  作者:Bin
--  发布时间:2013/6/3 17:28:00
--  
.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目14.table


--  作者:laoshu4569
--  发布时间:2013/6/3 17:32:00
--  
可是 我要是在写查询语句的时候  不一定每个查询条件都要满足 比如10个字段中只满足2个   加上遍历那个 该怎么写呢
--  作者:Bin
--  发布时间:2013/6/3 17:35:00
--  
什么意思啊? 空值的话就不拼接是吗? 这样只能一个个判断.没捷径.
--  作者:狐狸爸爸
--  发布时间:2013/6/3 17:44:00
--  

呵呵,帮助不是有个类似的例子吗:

http://www.foxtable.com/help/topics/1058.htm

 

帮助是查询,不是加载,但是道理都一样,目的是根据输入的内容合成条件表达式,逐个输入框判断,逐个条件累加,最后再根据合成的条件筛选或加载。

[此贴子已经被作者于2013-6-3 18:10:30编辑过]

--  作者:laoshu4569
--  发布时间:2013/6/5 10:01:00
--  
Dim Filter As String 
If Connections("DA").SourceType = 1 Then \'Access数据源
With e.Form.Controls("ComboBox3")
    If .value IsNot Nothing Then
     Filter= Tables("检索查询_Table1").Fill("Select * From [档案新标准] Where 机构 =\'" & .value & "\'","DA",False)
    End If
End With
With e.Form.Controls("ComboBox4")
If .value IsNot Nothing Then
If Filter > "" Then
         Filter = Filter & " And "
       End If
    Filter = Tables("检索查询_Table1").Fill("Select * From [档案新标准] Where 保管期限 =\'" & .value & "\'","DA",False)
    End If
End If
If Filter > "" Then
    Tables("检索查询_Table1").Filter =  Filter
End If

要是这么判断 中间 那个Filter =之后语句该怎么写呢