Access VBA 中的 Right() 函数
Posted
技术标签:
【中文标题】Access VBA 中的 Right() 函数【英文标题】:Right() function in Access VBA 【发布时间】:2018-03-23 18:59:54 【问题描述】:如果右边的第 8 个字符等于特定值,是否有一个函数会返回某个值?
如果字符串末尾的 8 位有“P”,我希望它返回一个特定的文本字符串。我认为 Right() 函数会起作用,但它显然不只是寻找一个特定的值。
这是我暂时无法正常工作的:
ElseIf Right(rst![DocNo / ERNo / PONo], 8) = "P" Then
sAdditionalText = "<Font face='Calibri'>" _
& "Please work with Purchasing to make the necessary corrections. <BR><BR>" _
& "<b>Please be advised that the funds from this check will remain as a charge against the FOAPALs utilized in the transaction until this matter is resolved.</b> <br><br>"
【问题讨论】:
【参考方案1】:Right
返回所有 8 个字符,而不仅仅是第 8 个字符。
您可以通过多种方式解决此问题:
使用LIKE
和Right
测试特定的第一个字符:
ElseIf Right(rst![DocNo / ERNo / PONo], 8) LIKE "P*" Then
使用Left
和Right
的组合来选择该特定字符:
ElseIf Left(Right(rst![DocNo / ERNo / PONo], 8),1) = "P" Then
使用StrReverse
和Mid
选择该特定字符:
ElseIf Mid(StrReverse(rst![DocNo / ERNo / PONo]), 8, 1) = "P" Then
使用Mid
和Len
选择特定字符(少于8 个字符的字符串会出错)
ElseIf(Mid(rst![DocNo / ERNo / PONo], Len(rst![DocNo / ERNo / PONo])-7, 1) = "P" Then
使用Like
仅用于测试特定位置的字符
ElseIf rst![DocNo / ERNo / PONo] LIKE "*P???????" Then '7 questionmarks
【讨论】:
我想在给定位置匹配字符的选项将比基于 StrReverse / LIKE 的解决方案执行得更好,如果性能很重要的话。以上是关于Access VBA 中的 Right() 函数的主要内容,如果未能解决你的问题,请参考以下文章