0

我正在制作一个具有 2007 年访问权限的数据库。我有一个表格供呼叫中心输入客户信息;姓名、地址、电话号码等。

有一个信用卡号码字段,虽然我们应该将它们作为前 4 个数字输入,最后作为数字输入,即 1234xxxxxxxx4321

我想确保他们是否确实输入了它们,因为它保留了第一个和最后 4 个数字,但当字段失去焦点时将其他字符更改为“x”。谁能指出我如何做到这一点的正确方向?

提前感谢您在此问题上的所有帮助。

4

3 回答 3

2

如果您只存储前 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

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

于 2013-06-13T19:44:01.393 回答
1

您所需要的只是表单代码中的类似内容。

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

于 2013-06-13T23:19:47.207 回答
0

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

于 2013-06-13T20:06:47.617 回答