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

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

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

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

我们首先要用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

代码截图:

代码讲解:

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

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

下面看代码的运行:

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

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

原文链接:,转发请注明来源!