改变文本框字段失去焦点



我正在制作一个数据库与访问2007。我有一个用于呼叫中心输入客户信息的表单;姓名、地址、电话等

有一个用于信用卡号的字段,而我们应该将它们输入为前4个数字,最后一个数字为1234xxxxxxxx4321

我想确保如果他们确实输入它们,它保留第一个和最后4个数字,但在字段失去焦点时将其他字符更改为"x"。谁能告诉我该怎么做?

事先感谢您对此事的帮助。

如果您只存储前4位和后4位数字,则以下操作有效。修改函数validCreditCardNumber(),使其具有您想要应用的任何检查。

Function validCreditCardNumber(creditCardNumber) As Boolean
    If Len(creditCardNumber) = 12 Then
        validCreditCardNumber = True
    Else
        validCreditCardNumber = False
    End If
End Function
Private Sub cbxCreditCardNumber_LostFocus()
    If validCreditCardNumber(cbxCreditCardNumber) Then
        cbxCreditCardNumber.Text = Left(cbxCreditCardNumber.Text, 4) & "xxxxxxxx" & Right(cbxCreditCardNumber.Text, 4)
    End If
End Sub

如果你想存储整个数字,但只隐藏屏幕上的数字,那么我认为输入遮罩是你正在寻找的。

你所需要的只是在你的表单代码中有这样的东西。

Private Sub txtCC_LostFocus()
      txtCC.Text = Left(txtCC, 4) & String(8, "x") & Right(txtCC, 4)
End Sub

那么您看到的就是将被存储在DB中的内容。ie.1234xxxxxxxx4321

我假设你不想在你的数据库中保留整个CC#。这是一个大禁忌,除非你花了大量的时间。资金来满足PCI合规性。这里有一些关于PCI的信息:http://www.pcicomplianceguide.org/pcifaqs.php

没有可用于部分屏蔽字符串条目的输入掩码。您将需要使用自定义函数来更改输入的数据。最好的方法可能是将表中的字段链接到一个隐藏的文本框。然后,您可以让一个可见文本框对隐藏文本框中的值应用一些函数,从而在可见文本框的LostFocus事件中将字符更改为"X"。但是,当您更改隐藏文本框时,它还必须将数据写入隐藏文本框。

最新更新