以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]筛选能否用加载条件来取代  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=107455)

--  作者:jjjeyes
--  发布时间:2017/9/28 12:34:00
--  [求助]筛选能否用加载条件来取代
有个数据库,用的是外部数据源sql
想从“学生信息表”中将部分学生导入到“班级明细表”中,原来设置了个“筛选”按钮,代码如下:


图片点击可在新窗口打开查看此主题相关图片如下:tim截图20170928122830.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:筛选.txt



可是“学生信息”表的数据量很大,有几万条,每次打开都有些慢。所以我想,是否能将整个“筛选”用“加载”的意思代替。打开软件的时候先不加载数据,打开“导入学生”窗口后根据文本框输入的内容来加载“学生信息表”数据。


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

请问用“加载”来代替“筛选”是否可行?应该在哪个事件中写什么样的代码?


[此贴子已经被作者于2017/9/28 12:34:44编辑过]

--  作者:有点甜
--  发布时间:2017/9/28 13:04:00
--  

Dim nms() As String = {"年级","班级","学号","姓名"}  \'定义一个组合框数组
Dim sps() As String = {"\'","\'","\'","\'"} \'定义一个间隔符数组
Dim bjf() As String = {" = "," = "," = "," = "} \'定义一个比较符合数组
Dim fds() As String = {"年级","班级","学号","姓名"} \'定义比较的列
Dim filter As String
For i As Integer = 0 To nms.length -1
    If e.Form.controls(nms(i)).value IsNot Nothing Then
        If filter > "" Then
            filter = filter & " And "
        End If
        filter = filter & fds(i) & bjf(i) & sps(i) & e.Form.controls(nms(i)).value & sps(i)
    End If
Next
Tables("导入学生_学生信息表").datatable.loadfilter = filter

Tables("导入学生_学生信息表").datatable.load