在Lost Focus上更改TextBox字段

时间:2013-06-13 19:03:14

标签: sql vba ms-access-2007

我正在创建一个访问2007的数据库。我有一个呼叫中心表格,用于输入客户信息;姓名,地址,电话号码等。

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

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

提前感谢您对此事的所有帮助。

3 个答案:

答案 0 :(得分: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

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

答案 1 :(得分:1)

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

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

然后你看到的是将存储在数据库中的内容。 ie.1234xxxxxxxx4321

我将假设你不想在你的数据库中保留整个CC#。这是一个巨大的禁忌,除非你花费大量时间和钱来满足PCI合规要求。以下是有关PCI的一些信息:http://www.pcicomplianceguide.org/pcifaqs.php

答案 2 :(得分:0)

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