我正在制作一个具有 2007 年访问权限的数据库。我有一个表格供呼叫中心输入客户信息;姓名、地址、电话号码等。
有一个信用卡号码字段,虽然我们应该将它们作为前 4 个数字输入,最后作为数字输入,即 1234xxxxxxxx4321
我想确保他们是否确实输入了它们,因为它保留了第一个和最后 4 个数字,但当字段失去焦点时将其他字符更改为“x”。谁能指出我如何做到这一点的正确方向?
提前感谢您在此问题上的所有帮助。
我正在制作一个具有 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
然后你看到的是将存储在数据库中的内容。即1234xxxxxxxxx4321
我假设您实际上不想将整个 CC# 保留在数据库中。除非您花费大量时间和金钱来满足 PCI 合规性,否则这是一个巨大的禁忌。以下是有关 PCI 的一些信息:http ://www.pcicomplianceguide.org/pcifaqs.php
没有可用于部分屏蔽字符串条目的输入掩码。您将需要使用自定义函数来更改输入的数据。最好的方法可能是将表中的字段链接到隐藏的文本框。然后,您可以让一个可见文本框对隐藏文本框中的值应用一些函数,以在可见文本框的 LostFocus 事件中将字符更改为“X”。但是,当您更改数据时,它也必须将数据写入隐藏的文本框。