Foxtable(狐表)用户栏目专家坐堂 → [求助]如何用按钮实现查询表的筛选和导出?


  共有3319人关注过本帖树形打印复制链接

主题:[求助]如何用按钮实现查询表的筛选和导出?

帅哥哟,离线,有人找我吗?
magus1123
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:94 积分:862 威望:0 精华:0 注册:2017/7/9 3:59:00
[求助]如何用按钮实现查询表的筛选和导出?  发帖心情 Post By:2017/7/13 13:42:00 [只看该作者]

感谢老师一直提供的支持与帮助!

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

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

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

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

感谢老师!

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

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

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:94 积分:862 威望:0 精华:0 注册:2017/7/9 3:59:00
  发帖心情 Post By:2017/7/13 15:26:00 [只看该作者]

谢谢老师!已经成功了!

另外还有一个疑问

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/13 15:33:00 [只看该作者]

 改成左连接即可

 

 


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

 回到顶部
帅哥哟,离线,有人找我吗?
magus1123
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:94 积分:862 威望:0 精华:0 注册:2017/7/9 3:59:00
  发帖心情 Post By:2017/7/13 16:56:00 [只看该作者]

感谢老师!
还有一个问题,如果筛选条件是复选框,那代码应该怎么修改呢?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/7/13 17:13:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
magus1123
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:94 积分:862 威望:0 精华:0 注册:2017/7/9 3:59:00
  发帖心情 Post By:2017/7/13 17:23:00 [只看该作者]

好的老师!我先研究一下

 回到顶部
帅哥哟,离线,有人找我吗?
magus1123
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:94 积分:862 威望:0 精华:0 注册:2017/7/9 3:59:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:94 积分:862 威望:0 精华:0 注册:2017/7/9 3:59:00
  发帖心情 Post By: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

 回到顶部