如何限制表单字段的字符数

问题描述 投票:2回答:2

我有一个带有未绑定注释字段的表单,我们希望限制其中的字符数。为了使事情尽可能干净,并确认它不是别的东西,我创建了一个带有两个未绑定文本框的新表单。 “Text0”是输入数据的位置,“Text1”是计数器。

Private Sub Text0_Change()
    If Not IsNull(Me.Text0.Text) Then
        If Len(Me.Text0.Text) > 20 Then
            Dim resp As Integer
            resp = MsgBox("Exceeded the number of characters allowed.", vbOKOnly, "Too long")
            Me.Text0 = Left(Me.Text0, 20)
        End If
        Me.Text1 = Len(Me.Text0.Text) & _
        " /20 characters used."
    Else
        Me.Text1 = "0 /20 characters used."
    End If

End Sub

对这个问题。如果您开始输入数据一切正常,它会计算长度。但是,当它达到限制时,框会出现,但是一旦你单击OK它就会使该字段空白。

我也试图提出一个验证规则但是在失去焦点之前它不会触发。

你如何防止它杀死已输入的数据?实际的字段限制要长得多,并且重新输入注释不会飞。

vba ms-access access-vba
2个回答
2
投票

...当它达到限制时,框出现但是一旦你点击OK它就会空白。你如何防止它杀死已输入的数据?

改变这一行......

Me.Text0 = Left(Me.Text0, 20)

......对......

Me.Text0.Text = Left(Me.Text0.Text, 20)

Me.Text0.Text赋值表达式改变时,该变化保留了Left()的前20个字符。你的原始代码“杀死已经输入的数据”的原因是因为Me.Text0意味着Me.Text0.Value,而不是Me.Text0.Text


0
投票

您不需要任何代码。只需在文本框中使用输入掩码设置即可。

在输入掩码中,只需键入AAAAA(其中20个)。

这样,您根本不需要代码,用户只能输入任意数量的字符。

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