给楼主两个函数,自己修改搜索代码吧。这是我开发的一个系统中用到的。用空格模糊匹配多个关键词,用+号同时匹配多个关键词。两个可以同时使用。
function keyword(str)
arrstr=split(str," ") '将输入的字符串根据空格分开,获得一个数组
max=ubound(arrstr) '得出这个数组的维数,即输入的关键字个数
if max=0 then '如果max等于0说明只输入了一个关键字,那么就不需要循环处理
sql1=sql1&" 节目名称 like '%" & replace(arrstr(i),"+","%") & "%' " '节目名称模糊搜索
else '如果含有多个关键字,采用循环处理sql语句
for i=0 to max '如果关键字很多,我们要求每一个搜索都要匹配每一个关键字,通过循环来实现
if i=0 then '写入下面sql语句作为开头,仔细研究一下下面的代码
sql1=sql1&" 节目名称 like '%" & replace(arrstr(i),"+","%") & "%' or " '节目名称模糊搜索
else
if i=max then '如果循环到最后一个关键字,写入下面sql语句作为结尾
sql1=sql1&" 节目名称 like '%" & replace(arrstr(i),"+","%") & "%' " '节目名称模糊搜索
else '如果关键自己不是开头的也不是结尾的,那么循坏写入下面的sql语句
sql1=sql1&" 节目名称 like '%" & replace(arrstr(i),"+","%") & "%' or " '节目名称模糊搜索
end if
end if
next '循环结束
end if
sql=sql&" and ("&sql1&")"
keyword=sql
end function
function redword(str,vt) '将查询的关键字红色输出
if str="" then
redword=vt
exit function
end if
str=replace(str,"+"," ")
arrstr1=split(str," ") '将输入的字符串根据空格分开,获得一个数组
max=ubound(arrstr1) '得出这个数组的维数,即输入的关键字个数
for i=0 to max
vt=replace(vt,arrstr1(i),"<font color=red>"&arrstr1(i)&"</font>")
next
redword=vt
end function