eu não sei exatamente o que você precisa, mas quando eu preciso fazer um filtro eu utilizo direto na SQL
<%
Dim SQL, rst, Contador, i, Pagina, Origem, Nome
Nome = Request("Nome") 'valor do parâmetro
Pagina = trim(Request("Pag")) 'página a ser exibida
SQL = "SELECT Filmes.[Codigo do filme], Filmes.[Codigo da categoria], Filmes.[Tipo produto], Categorias.[Nome da categoria], Filmes.[Nome do filme] FROM Categorias INNER JOIN Filmes ON Categorias.[Codigo da categoria] = Filmes.[Codigo da categoria] WHERE Filmes.[Nome do filme] Like %" & Nome & "% ORDER BY Categorias.[Nome da categoria], Filmes.[Nome do filme];"
Set rst = server.createobject("adodb.recordset")
rst.open SQL, vgdb, 1, 1
if rst.eof then
Response.Redirect("Default.asp")
end if
if Pagina = "" then Pagina = 1 'se a página vier em branco mostra a primeira
Contador = ((Pagina - 1) * 42 ) + 1 'registro inicial (exemplo página2: (2 -1) * 42 + 1 = 42 + 1 = 43 -> registro inicial = 43 )
rst.pagesize = 42 'número de registros por página
rst.absolutepage = Pagina 'página a ser motrada
%>