0

私はデータベースシステムを更新するマークをやっています。各テキスト ボックスの値を 100 未満に制限する必要があります。100 を超える場合、または数値でない場合、メッセージ ボックスがポップアップし、ユーザーが間違いを変更するまでデータは保存されません。どうすればいいですか?

4

2 に答える 2

2

Hiren Pandya に同意しますが、自分の見解も追加すると思いました。

文字列を数値に変換するのは簡単ではありませんが、VB6 のValCInt、 CDBl などの関数を使用すると、必要な動作に近い動作が得られることに注意してください。(これらのリンクの一部は VB.Net 用ですが、それでも価値があります)。ユーザー入力を自分で検証するときは、桁のグループ化、正/負、小数点記号などについて考えていることを確認する必要があります。ほとんどの場合、組み込み関数で十分です。

Private Sub Text1_Change()
    On Error GoTo Err_Handler
    Dim text As String
    text = Text1.text
    If IsNumeric(text) = True Then

        'If you only want integers...
        Dim value As Integer
        value = Val(text)
            If value <= 100 And value > 0 Then
            'The value is good so whatever stuff you need to do
            'And then leave the procedure
            Exit Sub
        End If
    End If

    'Let everything else fall through here...
Err_Handler:
    MsgBox "Invalid input."
    'Other stuff to prevent saving
End Sub
于 2013-03-23T18:36:43.480 に答える
1

テキスト ボックスのプロパティで、MaxLength を 2 に設定します。

メッセージが必要な場合は、テキスト ボックスの変更イベントで、次のことができます。

If Len(txtBox.Text)>2 then msgbox...

次に、メッセージ ボックスにメッセージを追加します。

必要に応じて、より詳細に説明できます。以下のようなもの...

Private Sub Text1_Change()
If Len(Text1) > 6 Then
    Text1 = " "    
    MsgBox "Not more than six"    
    Text1.SetFocus    
End If
End Sub
于 2013-03-23T18:17:26.457 に答える