经典的asp替换文本组合

时间:2013-07-03 22:55:38

标签: string ms-access asp-classic replace query-string

我正在努力实现这一目标。

我正在通过经典ASP网站从msAccess2000数据库中搜索电话号码。

相同的电话号码可以作为以下之一存储在数据库中。

(212) 212-2122
212)2122122
2122122122
212-212-2122
212-2122122

还有很多其他组合,你明白了。

理想情况下,我会做类似

的事情
strWhere ="Where replace(replace(Phone,'(',''),'-','') = '" & replace(replace(strPhone,"(",""),"-","") & "'"

但MS ACCESS不允许(至少我的版本)远程调用替换功能。

这让我有一个我能想到的选择,创建一个迭代所有替换组合的函数并将其添加到查询中,如下所示:

 strWhere ="Where Phone in (" & PhoneReplace(strPhone) & ");"

该函数应生成一个包含此格式的所有组合的字符串。     '2122122122', '(2122122122', '(212)2122122',......

如何最好地编写该功能?

有更好的主意吗?

1 个答案:

答案 0 :(得分:0)

没有承诺,但是Bing-Fu让我这样将Replace功能添加到您的查询中(来自tech-archive.net

创建一个新模块:

Function ReplaceText(StringIn as String) as String 
Dim NewString as String 
NewString = Replace(StringIn,"xyz","abc") 
ReplaceText = NewString 
End function 

从查询中调用它:

ChangedText:ReplaceText([FieldName]) 

另一种选择是使用LIKE并在任何地方放置通配符 - 这将允许任何格式进入,并假设您的值始终包含10个数字,并且搜索条件包含10个数字,它只会找到有效匹配。

where Phone like '%2%1%2%2%1%2%2%1%2%2%'

此外,由于您的表中记录太少,您甚至可以检索整个表并在应用程序中进行过滤,甚至不会注意到性能差异。