2013-06-13 5 views
0

2007 년 액세스 권한이있는 데이터베이스를 만들고 있습니다. 고객 정보를 입력 할 수있는 콜 센터 양식이 있습니다. 이름, 주소, 전화 번호 등.Lost Focus에서 TextBox 필드 변경

가 신용 카드 번호 필드는 우리가 수 ie.1234xxxxxxxx4321 나는 그들이 그들에 입력 할 경우 있는지 확인하려면

4 개 숫자 성과로 입력 해야하는 동안은 유지하는 것이 처음과 마지막 4 자리 숫자이지만 필드가 포커스를 잃을 때 다른 문자를 "x"로 변경합니다. 누구든지이 작업을 수행하는 올바른 방향으로 나를 가리킬 수 있습니까?

이 문제에 대한 모든 도움을 미리 감사드립니다.

답변

1

양식 코드에는 다음과 같은 것이 필요합니다.

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

그러면 DB에 저장되는 내용이 표시됩니다. ie.1234xxxxxxxx4321

DB에 전체 CC#을 실제로 보관하고 싶지 않다고 가정합니다. PCI 준수를 위해 막대한 시간을 & 번 지출하지 않으면 엄청난 노 응답입니다. PCI에 대한 정보는 다음과 같습니다. http://www.pcicomplianceguide.org/pcifaqs.php

+1

Nope. 이 db가 보호되지 않기 때문에 저장하지 않으려합니다. 이것은 우연히 또는 누군가 새로운 사람에 의해 저장되지 않도록하기위한 것입니다. 그리고 우리는 큰 벌금으로 타격을 입습니다. – Chuck

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 

전체 숫자를 저장하고 화면의 숫자 만 숨기려면 입력 마스크가 찾고있는 것입니다.

0

문자열 항목의 부분적인 마스킹에 사용할 수있는 입력 마스크가 없습니다. 사용자 정의 함수를 사용하여 입력 된 데이터를 변경해야합니다. 이 작업을 수행하는 가장 좋은 방법은 아마도 테이블의 필드를 숨겨진 텍스트 상자에 연결하는 것입니다. 그런 다음 보이는 텍스트 상자에 숨겨진 텍스트 상자의 값에 일부 기능을 적용하여 보이는 텍스트 상자의 LostFocus 이벤트에서 문자를 "X"로 변경할 수 있습니다. 그러나 변경하면 숨겨진 텍스트 상자에 데이터를 써야합니다.