以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何用按钮实现查询表的筛选和导出?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=103644)

--  作者:magus1123
--  发布时间:2017/7/13 13:42:00
--  [求助]如何用按钮实现查询表的筛选和导出?
感谢老师一直提供的支持与帮助!

现在又遇到了一个问题想请教一下老师。

现在整体查询和编译已经基本完成,想用窗体实现查询表的条件导出。

在窗口中设定几个条件控件,然后用按钮一键筛选,导出excel表格。

文本框已经绑定到列,但是代码不知道要怎么写。。

感谢老师!

尝试用过
tables("表名").filter("筛选表达式")
这种多条件的不知道要怎么写,因为这几个条件有时候是只筛选其中一两个条件。

图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2017/7/22 1:13:41编辑过]

--  作者:有点甜
--  发布时间:2017/7/13 14:16:00
--  

参考代码

 

Dim cbx1 As WinForm.CheckedComboBox = e.Form.Controls("CheckedComboBox1")
Dim cbx2 As WinForm.CheckedComboBox = e.Form.Controls("CheckedComboBox2")
Dim cbx3 As WinForm.CheckedComboBox = e.Form.Controls("CheckedComboBox3")
Dim filter As String = "1=1"
If cbx1.Text > "" Then
    filter &= " and 产品种类_产品大类 = \'" & cbx1.text & "\'"
End If
If cbx2.Text > "" Then
    filter &= " and 供应商 = \'" & cbx2.text & "\'"
End If
If cbx3.Text > "" Then
    filter &= " and 标记 = \'" & cbx3.text & "\'"
End If
msgbox(filter)
Tables("查询_采购关联").filter = filter

 

http://www.foxtable.com/webhelp/scr/1058.htm

 


--  作者:magus1123
--  发布时间:2017/7/13 15:26:00
--  
谢谢老师!已经成功了!

另外还有一个疑问

现在这三张表的关联,如果表“产品供应商”没有填写该产品对应的供应商,则在查询表 采购关联 中不会显示出该产品,有没有方式可以检查该关联?做到 如果没有填写产品供应商,就弹出一个对话框显示有产品未设置供应商。必须全部设置完成后才能执行同步表生成采购关联表。

--  作者:有点甜
--  发布时间:2017/7/13 15:33:00
--  

 改成左连接即可

 

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170713153238.png
图片点击可在新窗口打开查看

--  作者:magus1123
--  发布时间:2017/7/13 16:56:00
--  
感谢老师!
还有一个问题,如果筛选条件是复选框,那代码应该怎么修改呢?

--  作者:有点蓝
--  发布时间:2017/7/13 17:13:00
--  
http://www.foxtable.com/webhelp/scr/1058.htm

参考付款状态的用法

--  作者:magus1123
--  发布时间:2017/7/13 17:23:00
--  
好的老师!我先研究一下
--  作者:magus1123
--  发布时间:2017/7/13 17:42:00
--  
老师,我写的代码执行了之后如果是每个选项单选的话没问题,但是如果是选项是多选的话筛选结果就为空了。。改了几次结果都一样,麻烦老师帮忙看看

Dim Filter As String
With e.Form.Controls("CheckedComboBox1")
    If .Value IsNot Nothing Then
        Filter = "产品种类_产品大类 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("CheckedComboBox2")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "供应商 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("CheckedComboBox4")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "品名 = \'" & .Value & "\'"
    End If
End With
If Filter > "" Then
    Tables("查询_采购关联").Filter = Filter
End If
[此贴子已经被作者于2017/7/13 17:43:40编辑过]

--  作者:magus1123
--  发布时间:2017/7/13 17:54:00
--  
问题已解决!

成功代码如下,以供参考:


Dim Filter As String = "1=1"
With e.Form.Controls("CheckedComboBox1")
    If .Value IsNot Nothing Then
        Filter &= " and 产品种类_产品大类 in (\'" & .Text.Replace(",", "\',\'") & "\')"
    End If
End With
With e.Form.Controls("CheckedComboBox2")
    If .Value IsNot Nothing Then
        Filter &= " and 供应商 in (\'" & .Text.Replace(",", "\',\'") & "\')"
    End If
End With
With e.Form.Controls("CheckedComboBox4")
    If .Value IsNot Nothing Then
        Filter &= " and 品名 in (\'" & .Text.Replace(",", "\',\'") & "\')"
    End If
End With
If Filter > "" Then
    Tables("查询_采购关联").Filter = Filter
End If