如何测试 MS Access 宏中函数的结果

问题描述 投票:0回答:1

我正在尝试将邮政编码传递给我创建的函数。 如果邮政编码有效,我需要该函数返回 VALID。 然后我想测试返回以显示错误消息(如果无效)。

我的职能是:

Public Function IsUKPostCode(strInput As String)
'
' Uses a regular expression to validate the format of a postcode.
'
Dim RgExp As Object
Set RgExp = CreateObject("VBScript.RegExp")
'
' Clear the function value
'
IsUKPostCode = ""
'
' Check if we have a value to test
'
If strInput = "" Then
  IsUKPostCode = "No Post Code entered"
  Exit Function
End If
'
' This is the regular expression that validates the postcode
RgExp.Pattern = "^[A-Z]{1,2}\d{1,2}[A-Z]?\s\d[A-Z]{2}$"
'
' Does the input string match the pattern?
'
If RgExp.Test(strInput) = True Then
  IsUKPostCode = "Valid"
  End If
End Function

我使用以下命令从 MS Access 宏调用该函数:

RunCode IsUKPostCode([Forms]![People maintenance]![People.Post Code]

然后我想测试返回结果以显示一条消息。 谁能帮忙给出正确的 If 语句吗?

以上描述就足够了。

vba ms-access
1个回答
0
投票

使用 VBA 代码完全做到这一点可能会更容易。

无论如何,这里有一种使用 Access 宏来完成此操作的方法。首先,向函数添加 Else 子句可能是个好主意,以防两种情况都有返回值

Public Function IsUKPostCode(strInput As String) As String
    ' Uses a regular expression to validate the format of a postcode.
    Dim RgExp As Object
    Set RgExp = CreateObject("VBScript.RegExp")
    
    ' Clear the function value
    IsUKPostCode = ""
    
    ' Check if we have a value to test
    If strInput = "" Then
        IsUKPostCode = "No Post Code entered"
        Exit Function
    End If
    
    ' This is the regular expression that validates the postcode
    RgExp.Pattern = "^[A-Z]{1,2}\d{1,2}[A-Z]?\s\d[A-Z]{2}$"
    
    ' Does the input string match the pattern?
    If RgExp.Test(strInput) = True Then
        IsUKPostCode = "Valid"
    Else
        IsUKPostCode = "Invalid Post Code"
    End If
End Function

使用宏中的函数 在 MS Access 宏中,您想要调用该函数、存储结果,然后根据结果显示一条消息。

您可以通过以下方式做到这一点:

创建临时变量:使用临时变量来存储

IsUKPostCode
的返回值。

使用 If 语句:根据此变量的值,显示适当的消息。

设置方法如下:

a。在宏中创建临时变量 转到宏设计视图。

  • 创建一个新的

    SetTempVar
    操作来存储函数的结果:

  • 名称:

    PostCodeResult
    (或任何其他有意义的名称)

  • 表情:

    IsUKPostCode([Forms]![People maintenance]![People.Post Code])

b。添加条件语句

设置临时变量后,使用 If 操作检查 PostCodeResult 的值:

  • 状况:

    [TempVars]![PostCodeResult] = "Valid"

  • 如果条件为真,请使用

    MessageBox
    操作显示类似“邮政编码有效”的消息。

  • 添加 Else 子句,以便在邮政编码无效时显示不同的消息:

  • 消息框:“输入的邮政编码无效。”

c。清理临时变量

在If语句之后,使用RemoveTempVar来清理临时变量: 名称: 邮政编码结果

© www.soinside.com 2019 - 2024. All rights reserved.