VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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

です。どうすれば自分の願いどおりの動作となるのか、いろいろと試したのですが、
結果は同じ・・・。もう、手段を探せないところまできているのですが、
なにか、よい方法など、ありませんでしょうか?


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -