推扬网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
推扬网 › 门户 ›互联网动态 › 查看内容

filter是什么意思中文(filter动词)

2020-4-18 00:48| 发布者: admin| 查看: 225| 评论: 0

摘要: 大家好,今日继续讲解VBA数据库解决方案,今日讲解的是第75讲,内容是:记录集中筛选(Filter)的用法。 我们在操作EXCEL表格的时候,筛选是经常用到的,可以解决很多数据处理的问题,那么记录集中可否能做到筛选呢?答案 ...

大家好,今日继续讲解VBA数据库解决方案,今日讲解的是第75讲,内容是:记录集中筛选(Filter)的用法。

我们在操作EXCEL表格的时候,筛选是经常用到的,可以解决很多数据处理的问题,那么记录集中可否能做到筛选呢?答案当然是肯定的。今日我们的内容就是讲解记录集的筛选,当然我们也可以在取得记录集的时候用WHERE来前期实现此功能,今日我们讲的是后期实现的办法。

实例,我们有如下的工作表数据:

在大数据查询中,对记录集筛选(Filter)的实现

我们首先要用ADO连接方法,取得这个工作表的记录集,这个并不难,然后我们用筛选的方法得到民族为汉的记录,然后把筛选的结果反馈。

下面看我给出的代码:

Sub mynzRecords_75() '第75讲 记录集中筛选(Filter)的用法

Dim cnADO, rsADO As Object

Dim strPath, strSQL As String

Dim myData() As Variant

Dim myTitle() As Variant

Dim myResult() As Variant

Worksheets("75").Select

Cells.ClearContents

Set cnADO = CreateObject("ADODB.Connection")

Set rsADO = CreateObject("ADODB.Recordset")

strPath = ThisWorkbook.FullName

cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 12.0;hdr=yes;imex=1';" _

& "data source=" & strPath

strSQL = "SELECT * FROM [数据8$]"

rsADO.Open strSQL, cnADO, 1, 3

rsADO.Filter = "民族='汉'"

For Each Field In rsADO.Fields

[a1].Offset(0, i) = Field.Name

i = i + 1

Next

Range("a2").CopyFromRecordset rsADO

rsADO.Close

cnADO.Close

Set rsADO = Nothing

Set cnADO = Nothing

End Sub

代码截图:

在大数据查询中,对记录集筛选(Filter)的实现

代码讲解:

1 上述代码实现了记录集的筛选功能,也就是说,记录集也可以如同工作表一样的筛选,

2 rsADO.Filter = "民族='汉'" 这句就是实现筛选的语句,要注意写法。Filter将返回一个针对 Recordset 对象中数据的过滤器。

下面看代码的运行:

在大数据查询中,对记录集筛选(Filter)的实现

上述为返回的结果,正是我们需要的结果。

这里需要再补充一点,刚才我讲过,关于Recordset对象Filter属性,是可以在形成记录集的前用WHERE语句来实现的,可见一样的结果有多种的实现手段,不要拘泥于一种思路,但有的资料上记载,用FILTER不如用WHERE实现速度快。这一点还望大家注意。


鲜花

握手

雷人

路过

鸡蛋

最新评论

推荐阅读
精彩推荐

广告服务|投稿要求|禁言标准|版权说明|免责声明|手机版|小黑屋|推扬网 ( 粤ICP备18134897号 )|网站地图 | 邮箱:vayae@hotmail.com

GMT+8, 2026-9-29 03:59 , Processed in 0.133935 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部