0

Access 2007 でデータベースを作成しています。コール センターが顧客情報を入力するためのフォームがあります。名前、住所、電話番号など

クレジット カード番号のフィールドがあり、最初の 4 つの数字と最後の数字 ie.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

次に、DBに保存されるものが表示されます。ie.1234xxxxxxxx4321

CC#全体を実際にDBに保持したくないと仮定します。PCIコンプライアンスを満たすために膨大な時間とお金を費やさない限り、それは非常に難しいことです. PCI に関する情報は次のとおりです: http://www.pcicomplianceguide.org/pcifaqs.php

于 2013-06-13T23:19:47.207 に答える
0

文字列エントリの部分的なマスキングに使用できる入力マスクはありません。入力したデータを変更するには、カスタム関数を使用する必要があります。これを行う最善の方法は、テーブル内のフィールドを非表示のテキスト ボックスにリンクすることです。次に、可視テキスト ボックスの LostFocus イベントで、非表示テキスト ボックスの値に何らかの関数を適用して、文字を "X" に変更することができます。ただし、非表示のテキスト ボックスを変更するときは、データをそのテキスト ボックスに書き込む必要もあります。

于 2013-06-13T20:06:47.617 に答える