【问题标题】:Right() function in Access VBAAccess VBA 中的 Right() 函数
【发布时间】: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>" 

【问题讨论】:

    标签: string function ms-access vba


    【解决方案1】:

    Right 返回所有 8 个字符,而不仅仅是第 8 个字符。

    您可以通过多种方式解决此问题:

    1. 使用LIKERight 测试特定的第一个字符:

      ElseIf Right(rst![DocNo / ERNo / PONo], 8) LIKE "P*" Then
      
    2. 使用LeftRight 的组合来选择该特定字符:

      ElseIf Left(Right(rst![DocNo / ERNo / PONo], 8),1) = "P" Then
      
    3. 使用StrReverseMid 选择该特定字符:

      ElseIf Mid(StrReverse(rst![DocNo / ERNo / PONo]), 8, 1) = "P" Then
      
    4. 使用MidLen 选择特定字符(少于8 个字符的字符串会出错)

      ElseIf(Mid(rst![DocNo / ERNo / PONo], Len(rst![DocNo / ERNo / PONo])-7, 1) = "P" Then
      
    5. 使用Like 仅用于测试特定位置的字符

      ElseIf rst![DocNo / ERNo / PONo] LIKE "*P???????" Then '7 questionmarks
      

    【讨论】:

    • 我想在给定位置匹配字符的选项将比基于 StrReverse / LIKE 的解决方案执行得更好,如果性能很重要的话。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多