• 締切済み

VB.NET Validation について

VB.NET 超初心者ですのでお願いします。 TxtBoxにて1.0 から10.0まで少数第1位までのInputをするためRangeControlValidationをつけています。Max=10.0 Min=1.0 でTypeはDoubleです。(DecimalがTypeにないため) 11 とか99.00などの少数1位や2位のInputに対しては、ValidationからのErrormessageはでます。max10.0より大きいからです。しかし、3.89や9.000などRange内でも少数2位、3位を入れたときにでもErrorMessageを出したいのですが、ValidationのPropertyではできないのでしょうか。やはりhardCodingがいるのでしょうか。そうであれば、どのようにすればいいのでしょうか。ご指導いただければ幸いです。

みんなの回答

  • rk_les
  • ベストアンサー率63% (23/36)
回答No.1

コードを出してください。 あとValidatingもしくはValidatedで十分です。

mspokemon
質問者

補足

ありがとうございました。

関連するQ&A

  • VB6からDLLへの構造体受け渡し

    VB6からCで作成したDLLに構造体を受け渡したいのですが上手くいきません。 構造体にはLong型やDouble型、それに他の構造体も含まれておりC側も同様にしているつもりなのですが文字化けしてしまいます。下記に入力しているのコードを記載しましたので分かる方がいましたら助けてください。 尚、下記の構造体の「method」までは問題無く取得できるのですが「success_interlinkage」のDouble型からの変数は文字化けした数字になってしまいます。宜しくお願い致します。 [VB側] Public Type PackageProcessingInfo_i brightness As Long contrast As Long smoothtype As Long smoothlevel As Long method As Long success_interlinkage As Double min_interlinkage As Double max_interlinkage As Double min_point As CvPoint max_point As CvPoint corner_point As CvPoint End Type Public Type CvPoint_i x as Long y as Long End Type [C側] typedef struct _PackageProcessingInfo { int brightness; int contrast; int smoothtype; int smoothlevel; int method; double success_interlinkage; double min_interlinkage; double max_interlinkage; CvPoint min_point; CvPoint max_point; CvPoint corner_point; } PackageProcessingInfo; typedef struct _CvPoint { int x; int y; } CvPoint;

  • ラベルのマークアップ

    <input name="price_min" type="text" value="" id="price_min" />~ <input name="price_max" type="text" value="" id="price_max" />円 このようなフォーム要素があるとき、 どのようにラベル付けをするのが妥当なのでしょうか? <label> 価格:<br> <input name="price_min" type="text" value="" id="price_min" />~ <input name="price_max" type="text" value="" id="price_max" />円 </label> このように、ひとつの<label>に対して二つのコントロールを含めることはできるのでしょうか? 現在は<span>価格</span> のように<span>タグで代用しています。 ぜひアドバイスをお願いします。

    • ベストアンサー
    • HTML
  • VBからExcelのデータを参照するには?

    VBからExcelのデータを参照するには? ExcelのA列を、参照しようとしています。 このA列には数字も混じっています。 例えば A123 abc 456 qwer のように、4行あったとします。 VBのソースコードは、次の通り --------------------- Dim elSequence(10) As String i = 0 Do Until objSheet.Range("a2").Offset(i,0).Value = "" elSequence(i) = objSheet.Range("a2").Offset(i,0).Value i += 1 Loop --------------------- 問題は、Excelのセルに「数字だけの場合(上記の例で4行目)」で、VBはこれを、文字列として扱わずにDouble型と認識してしまいます。 例え、Excelのセルを、プロパティの文字列指定としても「456」はDouble型になってしまいます。 Excelから受け取ったデータを、文字列への変換はどのようにしたら良いですか。 参考になりそうなWeb等でも構いませんので、教えていただけませんか。

  • No such validation エラー

    struts validator にて検証チェックを行いたく作成をしましたが、上記のエラーが出てしまいました。 エラーは以下のようになっています  org.apache.commons.validator.ValidatorException: No such validation method: org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest) at org.apache.commons.validator.ValidatorAction.loadValidationMethod ちなみにstrutsconfigは以下の通りとなっております。  <form-beans> <form-bean name="userRegistForm" type="blog.userRegistForm"> <form-property name="login_name" type="java.lang.String"/> <form-property name="nick_name" type="java.lang.String"/> <form-property name="email" type="java.lang.String"/> </form-bean> </form-beans> <action-mappings> <action path="/userRegist" type="blog.userRegistAction" name= "userRegistForm" input="/userRegist.jsp" scope="session" validate="true"> <forward name="success" path="/register_2.jsp" /> </action> jspの画面からlogin_name、nick_name、emailの入力欄を空欄のまま登録ボタンを押すと、userRegistFormに値がセットされた後、blog.userRegistAction.doに画面が遷移します(なにも表示されません)  また、validation.xmlは以下の通りとなっております。  ~中略~  <form-validation> <formset> <form name="userRegistForm"> <field property="login_name" depends="required"> <msg name="required" key="errors.empty" /> <arg name="required" key="string.login_name" position="0"/> </field> <field property="nick_name" depends="required"> <msg name="required" key="errors.empty"/> <arg name="required" key="string.nick_name" position="0"/> </field> <field property="email" depends="required,email"> <msg name="required" key="errors.empty"/> <arg name="required" key="string.email" position="0"/> <msg name="email" key="errors.email"/> <arg name="email" key="item.id" position="0"/> </field> </form> </formset> </form-validation>  また、userRegistFormは以下の通りとなっております。  private String login_name; private String nick_name; private String email; public userRegistForm() { login_name=null; nick_name=null; email=null; } public String getLogin_name() { return login_name; } public void setLogin_name(String loginName) { login_name = loginName; } public String getNick_name() { return nick_name; } public void setNick_name(String nickName) { nick_name = nickName; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; となっておりますが、エラーの原因がよくわかりません。 ご教授の程よろしくお願い申し上げます。

  • 型「double」「decimal」「float」について教えて下さい

    型「double」「decimal」「float」について教えて下さい。 VB2010とSQL Server 2008 R2 で開発を行っている初心者です。 単価が銭単位(例えば0.01円=1銭)の商品の金額計算を するとき、最初に変数を「Double」を使って、最後に小数点以下 のまるめ処理を行っていたところおかしな金額計算されてしまい ました。 具体的には、 Dim intSuryo As Integer Dim dblTanka As Double Dim dblKingaku As Double Dim marumeKingaku As Double If tbSuryoArray(i).Text <> Nothing Then If tbTankaArray(i).Text <> Nothing Then dblKingaku = 0 dblKingaku = intSuryo * dblTanka Select Case intMarumeKubun Case 1 : marumeKingaku = Math.Truncate(dblKingaku) '切り捨て Case 2 : marumeKingaku = Math.Round(dblKingaku, 0, MidpointRounding.AwayFromZero) '四捨五入 Case 3 : marumeKingaku = Math.Ceiling(dblKingaku) '切り上げ End Select のコードを書いて計算すると、(単価)4.31×(数量)5000 の計算が、 本来「21550」にならなければいけないのに「21549」になってしまいます。 いろいろ調べてみた結果、変数の型を「Double」にするのがいけなくて、 「Decimal」にすると誤差がなくなるということで、変数をすべて「Decimal」 に直したところ、誤差の現象がでなくなったので問題は解決しました。 問題がもうひとつおきました。 データベースの単価の型も変える必要があるかと思い、 SQL Server内のテーブルの単価のカラムを「float」から「decimal(18,0)」に 変えたところ、既に格納されている値がすべて整数に変わってしまいました。 何やらわけがわからず戸惑っていますが、同じ「Decimal」でもVBとSQL Server では利用方法が異なるのでしょうか? またVBでの「Double」と「Decimal」の使い分け、 SQL Serverでの「float」と「decimal」の使い分け、 について教えて下さい。 よろしくお願いします。

  • vb2005のcomboboxについて

    <form name="frm1"> <select name="permit"> <option value="0">いいよ</option> <option value="3">駄目!</option> </select> <input type="button" value="OKv" onClick='alert(frm1.permit.value)'> <input type="button" value="OKt" onClick='alert(frm1.permit.text)'> </form> Web上でこういうセレクトボックスがあったとして、画面上では「駄目!」が選択されているとします。 ここで「OKv」ボタンをクリックすると、その セレクトボックスpermit のvalueである"3"が表示されます。 ここで「OKt」ボタンをクリックすると、その セレクトボックスpermit のtextである"駄目!"が表示されます。 ウェブ上ではたったこれだけのことなんですが。 が、これをvb.net(vb 2005)でやろうとするとどうするのかわかりません・・。 comboboxのどこのプロパティに何をどうセットするのでしょうか。 ちょっと調べてみるとDataSource をセットして、DisplayMember がどうとか出てきましたが、そういうことをしないといけないのでしょうか。 こちらはDataSource も何もなく、手動で(コード上で)valueとtextを設定・取得したいだけなんですけど・・。 何か凄い間違ってるような気もするのですが・・そうでしたらその旨ご指摘くださいますようお願いします。

  • エクセルマクロ

    エクセルマクロでダブルクリックしたら入力規制を解除するようにしたいです。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _ Cancel As Boolean) With Selection.Validation .Delete .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _ :=xlBetween .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .IMEMode = xlIMEModeNoControl .ShowInput = True .ShowError = True End With End Sub でうまくいったのですが、シートの保護をしていると対象セルを保護しない、にしていてもできません。 何かよい方法はありませんか? 入力規制をしてリストを選択にしている場所に、直接入力したい場合があるのでそれを簡単にダブルクリックで解除できないか、というのが狙いです。 よろしくお願い致します。

  • Struts2のValidation後のパラメータ

    Struts2のValidation機能を利用して入力チェックを行っているのですが、 入力画面表示時にGETパラメータを使用している場合、バリデーションエラーでINPUT画面に戻った際にGETパラメータが消えてしまいます。 Struts2: 2.3.15を使用しています 入力画面(index.jsp)は"simple/index.action?id=aa"のようにURLにGETでIDを指定する形式で表示します。(画面上に「ID:aa」が表示されます) 次にタイトル未入力のまま「確認」ボタンを押すとValidationが実行されてエラーメッセージとともに入力画面に戻ってくるのですが、「ID:」と表示され、Actionクラス(Index.java)のidが未設定の状態になります。 Validationエラー後もidがセットされ「ID:aa」が表示されるようにするにはどうすれば良いのでしょうか? Struts2 を触り始めて間もないですので質問自体が的外れかもしれません・・・ 何かアドバイスをいただけたら幸いです。 よろしくお願いいたします。 サンプルコードを以下に示します。 [struts.xml] <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="simple" extends="struts-default"> <action name="index" method="index" class="simple.action.Index"> <result name="success">/index.jsp</result> </action> <action name="confirm" method="confirm" class="simple.action.Index"> <result name="success">/confirm.jsp</result> <result name="input">/index.jsp</result> </action> </package> </struts> [Index.java] package simple.action; import com.opensymphony.xwork2.ActionSupport; public class Index extends ActionSupport{ private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } public String index(){ return SUCCESS; } public String confirm(){ return SUCCESS; } } [Index-confirm-validation.xml] <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> <validators> <!-- タイトルの必須入力チェック--> <field name="title"> <field-validator type="requiredstring"> <message>タイトルを入力してください</message> </field-validator> </field> </validators> [index.jsp] <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <%@ taglib prefix="sj" uri="/struts-jquery-tags"%> <!DOCTYPE html> <html> <body> ID:<s:property value="id" /> <s:form action="confirm"> <s:textfield name="title" label="タイトル" ></s:textfield> <s:submit value="確認"></s:submit> </s:form> </body> </html>

    • ベストアンサー
    • Java
  • エクセル入力規則のマクロについての質問です。

    エクセル入力規則のマクロについての質問です。  excel2003 os=WindowsXP の環境です。  E列の10行目から57行目、I列の10行目から60行目に1から9999までの数字のみ入力可能の条件を設定しようと下記のプログラムを作ったのですが、全く動いてくれません。ご教授のほどよろしくお願いします。  Private Sub Worksheet_Activate() Range("e10:e48").Select With Selection.Validation .Delete .Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, Formula1:="0", Formula2:="9999" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "入力制限があります" .InputMessage = "" .ErrorMessage = "登録は9999までしか登録できません。9999以下のの数字を入力下さい。" .IMEMode = xlIMEModeAlpha .ShowInput = True .ShowError = True End With Range("i10:i60").Select With Selection.Validation .Delete .Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, Formula1:="0", Formula2:="9999" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "入力制限があります。" .InputMessage = "" .ErrorMessage = "登録は9999までしか登録できません。9999以下のの数字を入力下さい。" .IMEMode = xlIMEModeAlpha .ShowInput = True .ShowError = True End With End Sub

  • VB6でWEBのラジオボタンの操作方法がわかりません

    始めまして、VB初心者です。 VB6でWEBのラジオボタンの操作方法が解りません。 以下のようなHTMLのWEBページがあります。 ラジオボタンをVB6にて操作(チェック)したいのですがどうしても出来ません。 テキスト入力の項目には入力できました。 IE.Document.All("test").Value = "テスト" 上記にてテストと入力できました。 HTMLソース <table> <tr> <td>選択してください </td> <td colSpan="2"><!-- <select name="j_type"> <option value="10">A</option> <option value="11">B</option> <option value="20">C</option> <option value="30">D</option> <option value="40">E</option> <option value="50">F</option> <option value="99">G</option> </select> <label><input type="checkbox" value="10" name="jArr[]">A</label>&nbsp; <label><input type="checkbox" value="11" name="jArr[]">B</label>&nbsp; <label><input type="checkbox" value="20" name="jArr[]">C</label>&nbsp; <label><input type="checkbox" value="30" name="jArr[]">D</label>&nbsp; <label><input type="checkbox" value="40" name="jArr[]">E</label>&nbsp; <label><input type="checkbox" value="50" name="jArr[]">F</label>&nbsp; <label><input type="checkbox" value="99" name="jArr[]">G</label>&nbsp;<br> </td> </table> </table> <p> </p> <table> <tr> <td>選択しましたか?</td> <td><label><input type="radio" CHECKED value="0" name="c_exp">はい</label> <label><input type="radio" value="1" name="c_exp">いいえ</label></td> </table> 自分で作った(ホームページ作成ソフト)WEBにVBから操作したいと思ったのですが、単純にvalueにて数値を入れてもだめなのでしょうか? 宜しくお願いいたします。

専門家に質問してみよう