• ベストアンサー

VisualBasicのテキストボックスの入力規則について

VisualBasic6.0のテキストボックスに入力規則を設定したいのですが、例えば、テキストボックスに日付データの「2002/5/10」と入力しなければならないのに「金曜日」と入力したときに、「入力規則に従っていません。」等のエラーメッセージを表示させたいのですが、こんなことできますか? できるとすればどのようにすればよいのでしょうか? 困っています。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#2494
noname#2494
回答No.2

日付が正当な物かどうかを調べるには、 IsDate関数を使うと出来ます。 メッセージ自体の表示の仕方はMizyuさんの回答を参考にしてみて下さい。 何か分からないことがあればまたどうぞ~。

momo-chan
質問者

お礼

無事に解決することができました。ありがとうございました。

その他の回答 (1)

  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.1

LostForcusイベントを使えばできます。 テキストボックスからフォーカスが移動したときにイベントが発生します。 Private Sub Text1_LostFocus() If <条件式> Then Call Msgbox("入力規則に従っていません。」",vbOkOnly) End if End Sub 条件式のところにはフォーマットチェックの関数を自作して入れてみるとやりやすいです。

momo-chan
質問者

お礼

無事に解決することができました。ありがとうございました。

momo-chan
質問者

補足

>条件式のところにはフォーマットチェックの関数を自作して入れてみるとやりやすいです。 フォーマットチェックの関数はどのように作ればよいのですか? 申し訳ありませんが、よろしくお願いします。

関連するQ&A

  • Access フォームの入力規則設定がわかりません

    いつもお世話になっております。 Access2010で、フォーム内テキストボックスに日付を入力しており、 入力規則に反している日付に対しエラー表示させています。 複数の入力規則の設定は可能でしょうか? 具体的には以下の場合の(2)の設定がわかりません。 日付A 日付B 日付C があり (1)日付Bは 日付Aの日にちを含め以降であればよい   ですので、 日付Bの入力規則は >=[日付A] Or Is Null としました (2)日付Cは 日付Bの日にちを含め以降であればよい   もしくは日付Bに何も入力されていなければ   日付Aの日にちを含め以降であればよい 日付Cの入力規則を >=[日付B] Or Is Null のみですと、日付Bに何も 入力されていないと、日付C入力後エラーメッセージが返されてしまいます。 宜しくお願い致します。

  • テキストボックスがなくなる!?

    更新前処理のイベントプロシージャで、入力すればテキストボックス表示・未入力ならばテキストボックス非表示に設定しました。そのときはうまくいくのですが、いったんフォームを閉じて新たに開けると、入力しているのに元のテキストボックスしか表示されていなくて、でも、レコードのデータは消えてないのです。このほかに設定しないとだめなんですか?

  • パラメータの入力ダイアログボックスに入力規則を設定したいのですが。

    WinXP,Access2002使用しています。 入力された日付以前のデータを抽出するパラメータクエリを作りました。このパラメータの入力ダイアログボックスに年月日を入力する際、「2007/02/06」と入力するのは面倒なので、(効率化のため)「070206」と入力して「2007/02/06」となるように入力規則を設定したいんです。 パラメータの入力ダイアログボックスに入力規則を設定する方法をおしえてください!!!よろしくおねがいします!!!

  • 【Excel・マクロ】コンボボックス・テキストボックスからのデータの入力について

    教えて下さい! 今シートにはA列に日付(2003/1/1~2010/12/31)、B列からI列の1行目には項目名が入っています。 これから行いたいことは、別マクロで表示させたフォームのコンボボックスから日付を選択し、同じフォーム上にある項目名に沿った8つのテキストボックスにデータを入力することにより、そのデータがシートに反映されるというものを作成したいのです。 データが入力される部分は選択された日付の行の、各項目名と交わる部分となります。 (例)        |あああ|いいい|ううう・・・ 2003/1/1 |    |    | 2003/1/2 |    |    | 2003/1/3 |    |    | ※上の表だとコンボボックスから2003/1/2を選択し、テキストボックス「いいい」部分にデータを入力するとC3セルにデータが入力されます。 コンボボックスにデータを表示させることは出来るのですが、そこから先(この日付を選んでテキストに入力して・・・)が出来ません。 よろしければ、記述を教えて頂きたいと思います。 宜しくお願い致します。

  • excel、VBA、フォーム、コンボボックスの入力規則の設定

    excelでフォームを使ってシートにデータの入力をしているのですが、 日付の入力で○月○日のところを月、日それぞれ、コンボボックスを使って2桁の文字列入力にしています。例えば4月のところは「4」ではなく、「04」と入力します。  コンボボックスなので、直接入力もできるため、たまに一桁で入力してしまうことがあり、計算結果が狂うことが起こっています。このミスを防ぐため、入力先のセル自体に入力規則(2桁のみ可)を設定しましたが、フォームからの入力ではエラーとならず、そのまま入力されてしまいます。  リストボックスを使ってリストのみから入力できるようにすればよいのかもしれませんが、コンボボックスの方がなにかと都合がよいのでコンボボックス自体に入力規則を設定できればと思っています。何かよい方法があるでしょうか?

  • Excel2007の入力規則に関する質問

    EXCEL2007の入力規則に関する質問です。 表の中に記載された日付から7日以内の日付しか入力ができないようにしたい場合、 どのような設定をすればいいのでしょうか? 私のとった方法 「入力規則」の<日付>の<次の値の間>を選びます。 <次の日付から>のボックスに既存の日付と-7を入力 <次の日付まで>のボックスに既存の日付を入力しました。 しかし実際にセルに7日以内の日付を入力してもエラーが出ます。 どのような設定をすればいいのでしょうか? 分かる方お願いします。

  • エクセルVBA フォームのテキストボックスの入力規則

    エクセル2000を使用しています。 VBAでフォームを作成しています。日付の入力項目をテキストボックスで 作りたいのですが、”yyyy/mm/dd”の形式で入力するようテキストボックスの中に表示し、それ以外の入力形式を制限するにはどのようにしたらよいでしょうか。

  • アクセスにて、フォームのテキストボックスの値をテーブルにコピーしたい

    初めて質問させていただきます。宜しくお願いします。 アクセスで、 ===フォーム上にある非連結テキストボックスに、日付を入力し、コマンドボタンをクリックすると、テーブルにある日付のデータをクリアし、その後フォーム上のテキストボックスに入力した日付を挿入===の方法を教えていただきたいと思います。 CurrentDb.Execute "DELETE * FROM T_設定日;" CurrentDb.Execute "INSERT INTO T_設定日(設定日) VALUES ('Me![年月日]');" 上記でやってみたところ、データのクリアはされるのですが、その後、テキストボックスに入れた日付は入りません。エラーは出ません。 アクセス初心者で、分かりにくい説明と思いますが、宜しくお願いします。

  • テキストボックスの入力で困っています

    アクセス2010で請求書を作成しています 請求データベースの入力フォーム上の(商品コード)テキストボックス(非連結)に入力して、その値を使い、Dlookupで商品コードデータベースから商品名を入力フォーム上の(商品名)テキストボックスに表示させています 商品コードデータベース上で商品コードを長整数型で設定してあります 商品コードには、40011などの整数型の範囲を超えたデータがあります いろいろな理由から、商品コードは主キーに設定せず、インクリメント型でもありません 入力フォーム上の(商品コード)テキストボックスに整数型の範囲(-32768から32767)なら正常に動作します しかし整数型の範囲を超えて入力すると、「このフィールドに入力した値が正しくありません」が表示され、先に進めません 申し訳ありませんが、何か打開策をお知らせいただけると幸いです

  • 非連結テキストボックスの数字入力について

    どうしても分からないので質問します 今、アクセス97にてフォームを作成しています 構成はメインフォーム + サブフォーム ×2です コードを入力するテキストボックスをメインフォームに作成したのですが実際入力してみると桁溢れの場合、 「実行時エラー’3163’:フィールドが小さすぎるため、追加しようとするデータの量を受け入れることができません。データの量を少なくして、挿入または貼り付けを行なってください。」とエラーメッセージが表示されてしまいます エラーを出ないようにするにはどうすればいいのでしょうか? 宜しくお願いします

専門家に質問してみよう