我正在尝试将邮政编码传递给我创建的函数。 如果邮政编码有效,我需要该函数返回 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 代码完全做到这一点可能会更容易。
无论如何,这里有一种使用 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来清理临时变量: 名称: 邮政编码结果