• 締切済み

アクセスでメッセージボックスを表示させたい。

アクセスのデータベースで、あるテーブルが日付の入力になっています。 あとで計算したいので、日にちまできちんと入力してほしいのですが、 9月末、とか 5月ごろ、という入力する人が多いです。 そこで、テーブルをデータ型(日付)にして定型入力を指定しました。 すると、間違った入力をした場合、 「このフィールドに入力した値が不正です。」 というメッセージボックスが表示されます。 でも、このままではどのように入力したらいいか伝わらないので、 メッセージボックスを 「日にちまで入力してください。」 という形で表示させたいのですが、どうしたらいいですか? 教えてください。

みんなの回答

  • yoisho
  • ベストアンサー率64% (331/516)
回答No.2

フォームからではなくて、テーブルに直接データを入力されている場合でしたら、エラーメッセージを別途メッセージボックスで表示することはできないと思います。 エラーメッセージは変更できませんが、テーブルのフィールドの「定型入力」を設定してやれば、入力の仕方について多少はわかりやすくなるのではないでしょうか。 具体的には、たとえば「定型入力」欄に「9999\年99\月99\日;0;_」と入れてみてください。 テーブルをレコードソースにしてフォームを作り、このフォームからデータ入力を行えば、#1の selenityさんがおっしゃるように、エラー処理をユーザーで設定できます。

satoko1228
質問者

お礼

メッセージの変更ってできないんですねー。知らなかったです。この方法でわかってもらうことにしました。ありがとうございました。

  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

日付を入力する「テキストボックス」のプロパティに「フォーカス喪失時」という所にエラー処理を書けばお望みのメッセージボックスを表示できますよ。

関連するQ&A

  • チェックボックス access2003

    既存のデータベースからaccessを使って検索を行っています 表示させるテーブルの中でひとつだけ 0と1どちらかが入力されているフィールドがあります それをフォームで表示する際にチェックボックスで表示させたいのですが どのようにすればよいのでしょうか? ご存知の方よろしくお願いいたします

  • ACCESS97のコンボボックスについて

    入社して、名刺を貰う機会が多い為、名刺を管理するものを初歩的な参考書を見てACCESS97で作りたいと思います。テーブルで数名の氏名・会社名・部署名・役職・住所を作りました。良く分からなかったので、この1つのテーブルを基にパラメータを使って検索する「検索用画面」と新しいレコードが表示される「新規入力画面」をクエリーとフォームを別々に作りました。検索用画面は、これで良しとします。しかし、新規入力画面は、同会社名が多いので、コンボボックスを作り今まで登録したものからも選べる様にもしたいです。新しいレコードでは、表示されませんが、▼で前のレコード(既に入力してあるデータ)に戻ると、エラーメッセージで「このフィールドに入力した値が不正です。例えば、数値型のフィールドに文字列を入力しました。」と出てきてしまいます。コンボボックスいうのは、コンボボックスウィザードで「テーブルまたはクエリーを表示する」を選び、表示させたいものを選ぶだけでは、いけないのでしょうか・・。くだらない質問で申し訳ありませんが、回答の方宜しくお願いします。

  • SQL文。特定の月間の値のみを表示したい

    Access VBAを利用しています。フォームにテキストボックスを置いてユーザーに日付を入力してもらおうとしています。Accessのテーブル、Table1のDateフィールドには日付が入っています。2009/10/01みたいに8桁で入っています。 やりたいことは、フォームのテキストボックスに日付を2009/10みたいに入力してもらいます。実行ボタンを押すと、そうすると2009/10/1から2009/10/31までの10月の値のみをselect文でひっぱってきたいと思っています。ここで指定の日付のみをひっぱってくるselect文が思いつきません。2009/10/1のみの値を引っ張ってくるselect文はわかるのですが、10月の間、11月の間など月指定の場合、どうやって引っ張ってくるのかご教授お願いいたします。

  • accessで未入力の場合にメッセージボックスを表示したい

    アクセスのフォーム(テキストボックス)が、未入力の場合メッセージボックスを表示したいです。 【追加条件】 1.テーブルで”入力規則”、”エラーメッセージ”は使わない。 2.vbaは使わない。 3.マクロの”条件”のみで処理する。 ---------------------------------------------------- vbaを使っての方法はあるみたいですが、マクロだけで入力判定をして、未入力の場合にメッセージボックスを表示する方法はないでしょうか?

  • ACCESS2003でテーブルと一致したときだけメッセージを表示するには?

    はじめまして、アクセスでデータベースを作成していたのですが、わからないことが出てきてしまい困っております。 フォーム上で、テキストボックスに入力した文字列(テキスト形式)をテーブル内のデータと照合し、一致すれば「保留対象の商品です」、なければ「保留対象の商品ではありません」といったテキストボックスを表示できるようなボタンを作りたいのです。 登録条件を変更するのではなく、メッセージが表示できさえすれば良いのです。 IFとDcount、msgboxを組み合わせることで表示できるような気はするのですが、エラーが出てしまい、作動してくれません。 私の書いたVBAコードは IF Dcount("フィールド名","テーブル名","フィールド名="" & Me!テキストボックス名") = 1 Then Msgbox "保留対象の商品です" Else msgbox "保留対象の商品ではありません" End IF 結局、テキストボックスに入力されたデータと対象のテーブル内データを検索し、一致するデータを数えて、1個のときにメッセージを出すようにしてみたのです。 しかし、うまく動いてくれません。。 詳しい方がいらっしゃったらアドバイスいただければ幸いです。 よろしくお願いいたします。

  • アクセスVBA テキストボックス入力値からの参照

    マイクロソフトアクセス初心者です。 現在、アクセスでデータベースを作成しています。 2つのフォーム(フォーム(1)、フォーム(2))、2つのテーブル(入力情報、マスタ)、2つのテーブルをもとにした1つのレポートを作成しています。 『フォーム(1)』のテキストボックスAに入力された値を、Dlookup関数で『フォーム(2)』のテキストボックスBに数値を参照しています。 『フォーム(2)』のテキストボックスに表示された値を、『フォーム(2)』に設置されたコマンドボタンをクリックすると、VBAで『テーブル入力情報』のフィールドAに入力されるようにしています。フィールドAについてのマスタとなるテーブルが『テーブルマスタ』です。 リレーションシップを設定せず、ただ単に値を入力することは出来るのですが、レポートを作成するにあたって、『テーブル入力情報』と『テーブルマスタ』のフィールドAに1(テーブルマスタ)対多(テーブル入力情報)のリレーションシップを設定したいと思っています。 リレーションシップを設定し、テキストボックスBに表示された数値を『テーブル入力情報』に入力する際、『テーブルマスタ』から該当するデータを選択して『テーブル入力情報』に入力されるようにしたいと思うのですが、現状では、リレーションシップを設定すると、入力値が真っ白になってしまい、レポートにも入力したデータが反映されません。 ちなみに、入力する際はフィールドA=Me.テキストボックスBのようにしています。 何か良い解決策がありましたら、是非教えていただけませんでしょうか? 分かり難い文章かと思いますが、どうぞ宜しくお願い申し上げます。

  • コンボボックスで違うフィールドを表示

    アクセス2000を使用しています。 コンボボックスの値集合ソースにテーブル/クエリを指定し、料金テーブルを指定しています。 <料金テーブル>にはフィールドが2つあります。 ID 料金 1 1000 2 2000 3 3000 という具合ですが、便利上つけていますが、IDはコンボボックスに表示したくありません。 1000、2000、3000というのだけ選択できるようにするにはどうしたらよいのでしょうか? 連結列でできたような気がしたのですが、どう試してもできませんでした。

  • accessで年度の表示をさせたい

    いつもお世話になります。過去ログ参照し、いろいろやってみましたが、どうしても解決できないのでよろしくお願いします。 商品の売上の管理をするDBをつくろうとしています。 テーブルに会社マスタとして、会社名と会社IDが、商品マスタには商品名と商品IDが、伝票には伝票番号、会社番号、商品番号、日付、年度のフィールドが作ってあります。 伝票を入力するためのフォームとクエリも作成しています。 伝票を入力するフォームに年度というテキストボックスを作成し、コントロールソースに=IIf(Month([txt])<4,Format(DateAdd("yyyy",-1,[日付のテキストボックス名]),"gggee" & "年度"),Format([日付のテキストボックス名],"gggee" & "年度")) を入力し、日付が決定されると年度を表示されるようにしたかったわけです。 本来、日付のフィールドはデータ型に、「日付/時刻型」を選んでおり、日付カレンダーの表示により、目的の日にちを選択することでyyyy/mm/ddの表示をさせているものです。定型入力の欄は空白になっています。 ところが、フォームをデザインビューで開くと年度の欄に「#Name?」 の表示が出てしまいます。基本的なことなのでしょうが、わかりやすく説明していただけないでしょうか? あと、~月度のような考え方はどのようにしたらよいでしょう?

  • Accessで西暦の年だけ表示したい

    Accessでテーブルを作っているのですが、年だけを表示したい箇所があります。 データ型を日付/時刻型にし、書式を「yyyy\年」と設定しました。 しかし、実際年を入力してみると「入力した値が不正です」とエラーになってしまいます。 月まで入れると表示はされるんです。 月の表示はしたくないのですが、他にどこか設定漏れがあるんでしょうか? おねがいします。

  • アクセス コンボボックス 月を順番に表示するには?

    日付型のフィールドにたくさんの日付が入っていて、 フォームのコンボボックスで、 Format([Tテーブル]![日付],"m\月") としたら、 画像のように 10月 11月 12月 1月 という順番になってしまいます。 1月 2月 3月 とするにはどうすればいいでしょう? 値リストで12個設定するしかないですか? 並べ替えは昇順にしてもしなくても同じです。 「固定の値」は、はいにしています。

専門家に質問してみよう