尝试在Access中使用VBA强制字符串为特定长度

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

我对 VBA 很陌生。所以我不知道从哪里开始解决这个问题。 我有一个电话号码条目,为了避免将来出现错误,我想强制输入的数据为空/空或长度为 7 或 10,如果长度不正确,用户将无法离开该字段。

我尝试使用

IF
语句来确认长度,并且在不满足条件时能够弹出一个消息框,但我不知道如何在输入正确的长度之前保持焦点。

Private Sub InspWkPhone_AfterUpdate()
    Me.Refresh
    If Len(Me.InspWkPhone) <> 7 Then
        If Len(Me.InspWkPhone) <> 10 Then
            MsgBox (" Check Phone # MISSING digits! ")
        End If
    End If
End Sub
vba ms-access
1个回答
0
投票

如果您使用

Select Case
方法,您可以将接受条件合并到一行中。 与嵌套的
If ... Then
块相比,我更喜欢它。 看看你的想法。

我放弃了

Me.Refresh
,因为我没有看到这里有什么好处。

您可以使用控件的

SetFocus
方法将焦点保持在此处。

Private Sub InspWkPhone_AfterUpdate()
    Select Case Len(Nz(Me.InspWkPhone.Value, vbNullString))
    Case 0, 7, 10
        ' length of value is acceptable so nothing needs to be done
    Case Else
        MsgBox "Check Phone # MISSING digits!"
        Me.InspWkPhone.SetFocus
    End Select
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.