Sql 更改失去焦点时的文本框字段

Sql 更改失去焦点时的文本框字段,sql,vba,ms-access-2007,Sql,Vba,Ms Access 2007,我正在用access 2007制作一个数据库。我有一个表格供呼叫中心输入客户信息;姓名、地址、电话号码等 信用卡号有一个字段,我们应该先输入前四个号码,然后输入最后一个号码,即1234xxxxxxxx4321 我想确定他们是否输入了第一个和最后4个数字,但当字段失去焦点时,会将其他字符更改为“x”。有人能告诉我怎么做的正确方向吗 提前感谢您在这件事上提供的所有帮助。如果您只存储前4位和后4位数字,则以下操作有效。修改函数validCreditCardNumber()以进行您想要应用的任何检查 F

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

信用卡号有一个字段,我们应该先输入前四个号码,然后输入最后一个号码,即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

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

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

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

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

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

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

Private Sub txtCC_LostFocus()
      txtCC.Text = Left(txtCC, 4) & String(8, "x") & Right(txtCC, 4)
End Sub
然后您看到的是将存储在数据库中的内容。ie.1234xxxxxxxx4321


我假设你不想把整个CC保存在数据库中。这是一个巨大的禁忌,除非您花费大量的时间和金钱来满足PCI法规遵从性。这里有一些关于PCI的信息:

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

Private Sub txtCC_LostFocus()
      txtCC.Text = Left(txtCC, 4) & String(8, "x") & Right(txtCC, 4)
End Sub
然后您看到的是将存储在数据库中的内容。ie.1234xxxxxxxx4321


我假设你不想把整个CC保存在数据库中。这是一个巨大的禁忌,除非您花费大量的时间和金钱来满足PCI法规遵从性。这里有一些关于PCI的信息:

没有。我不想将其存储,因为此数据库将不受保护。这只是为了确保一个不会被意外或新的人储存,我们会被罚款。我不想将其存储,因为此数据库将不受保护。这只是为了确保一个不会被意外或新的人存储,我们会被罚款。