投稿日 | : 2002/09/24(Tue) 15:40 |
投稿者 | : ラルフ |
Eメール | : |
URL | : |
タイトル | : 数値入力・文字入力 |
はじめたばかりの私にとって、非常に助かるこのサイト。
利用させてもらっています。今回、下記に挙げるような問題を抱えており、
MSFlexGrid内の「数字入力以外は認めない」部分を参考にしようと
しましたが、自分の思うような動作をしないなど、お手上げになって
しまい、書き込んだ次第です。
VS-FlexGridを使い、Oracleで作った2つのテーブルからデータを
取り込んで表示させているのですが、数字以外の入力は認めない
(0〜100とマイナス値あり)、文字入力以外は認めないイベントを作成
したいのですが、ヘルプを用いて、ValidateEdit(ByVal Row As Long,
ByVal Col As Long, Cancel As Boolean)を使うと、正しい値をはじく
だけでなく、正しい値さえもはじいてしまうのです。
参考にしたのは
Sub fg_ValidateEdit(ByVal Row As Long, _
ByVal Col As Long, Cancel As Boolean)
Dim c$
' 各列に異なる正当性検査を定義します。
Select Case Col
Case 1 ' 列1には文字列入力だけを許可
c = Left$(fg.EditText, 1)
If Ucase$(c) < "A" Or UCase$(c) > "Z" Then _
Beep: Cancel = True
Case 2 ' 列2には0より大きい数値の入力だけを許可
If Val(fg.EditText) <= 0 Then _
Beep: Cancel = True
End Select
End Sub
です。どうすれば自分の願いどおりの動作となるのか、いろいろと試したのですが、
結果は同じ・・・。もう、手段を探せないところまできているのですが、
なにか、よい方法など、ありませんでしょうか?