- ベストアンサー
VB 3つの条件
1、テキストボックスに0が入力された際、msgboxでエラー表示を出す 2、何も入力しないと同じくエラーを出す 3、数字以外の文字を入力するとエラーを出す このプログラミングが両立して出来ません><。 1と2が出来て3が出来なくなり 2と3が出来ると1が出来なくなる状態です どのようにプログラミングすれば良いか教えてください;;
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
単純に順番にチェックすればよいと思います。 (記載はVB6.0で記載していますがアルゴリズムとしては.Netでも同じなので) ’空白ならエラーで抜ける if trim$(TextBox.text)="" then call msgbox("エラー") exit function end if ’数値以外ならエラーで抜ける if isnumeric(TextBox.text)=false then call msgbox("エラー") exit function endif ’0ならエラーで抜ける if TextBox.text=0 then call msgbox("エラー") exit function endif これが一番単純な方法です。 個人的にはもっと効率を考えてチェックしますが、 (そもそもTextBoxのIMEModeを数値のみにすれば、ひとつのIF文だけで事足りますので) 一番シンプルな方法として記載しておきます。 もし、そのほかに条件があり、それが原因で両立できないとおっしゃっているならばその他の条件を記載してください。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
プログラムは(1)同時に出来ないこと(2)同時にする必要の無いことがほとんどです。 コンピュターの処理速度が上がり、次のステップの処理は感覚的には同時的に行われるように見えるので。 >1と2が出来て3が出来なくなり 2と3が出来ると1が出来なくなる状態です 何を言って居るのか判ら無い。初心者的袋小路思考に入っているような。 プログラムは1ステップずつ処理されるのです。初心者的に言えばコード1行ずつです。 ーー それより初心者は、テキストボックスを使うとき、コマンドボタン(Caption「入力」など)を1つ設けて、コマンドボタンのクリックイベントの中で入力されたデータチェックをするようお勧めする。 1文字入れたらチェックするなどやると難しいのだ。そういうことを考えてませんか。 >テキストボックスに0が入力された際、 は、コマンドボタンがくりっくされた時点で 「テキストボックスのValueが0か」 >何も入力しないと同じく 「テキストボックスのValueが空白か」 >、数字以外の文字を入力するとエラーを出す テキストボックスのValue全体がIsNumericか、や1文字1文字が数字か、などチェックする。 上記コードは順に書き連ねる。 エラーがわかった次の行で、エラーコメントを表示するか、1つの文字列(下記s)に連ねて最後に出せば良い 各段階で s=s&errCOMT1 s=s&errCOMT2 s=s&errCOMT3 をしておき、最後にラベルにでもsを表示する手もある。
- nattocurry
- ベストアンサー率31% (587/1853)
> 1と2が出来て3が出来なくなり > 2と3が出来ると1が出来なくなる状態です それぞれ、どういうプログラム(どういう条件式)にしたのかを提示しましょう。