使用Microsoft Access 2010
我有[box_no]的字段。我需要运行一个查询来获取范围内所有框号的列表。这是我的问题....几个盒子号码前面有一个字母(通常是字母“T”),有几个没有。如果我在查询中使用*Like* '*'+[Search Box Number]+'*'
,我在搜索带或不带字母的方框时没有问题。我可以在查询中使用*Between [beginning box number] And [ending box number]*
来检索一系列的箱号,只要我包含相应的字母即可。是否有一个字符串或者我可以写的东西来获得我想要的结果?
示例:我想检索包装箱号为732913000到732914000的报告.732913000到73213055在开头没有字母。 73213056在开头有字母T(T73213056)。无论起始字符如何,我都需要确保所有框号都出现在报告中。
我希望这是有道理的! : - )
答案 0 :(得分:0)
您可以在VBA中设置一个函数,如果它不是数字,则去除前导字符,然后在查询中使用该函数。
该功能将是;
Function StripChar(BoxNumber As String) As String
If IsNumeric(Left(BoxNumber, 1)) Then
StripChar = BoxNumber
Else
StripChar = Right(BoxNumber, Len(BoxNumber) - 1)
End If
End Function
然后,您可以在查询中使用该功能;
SELECT BoxNumber, StripChar([BoxNumber]) AS Stripped
FROM <YourTable> WHERE (StripChar([BoxNumber]) Between 100 And 200));
您可以使用SQL将整个事物放在一起,但是使用它可能更容易,因为您可以轻松修改VBA函数以进行调整。