经典的asp替换文本组合



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

我正在通过经典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)21221222',。。。。。。

如何最好地编写该函数

有更好的主意吗?

没有承诺,但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%'

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

最新更新