• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:accessのtextboxの日付nul時書式設定)

Accessのテキストボックスの日付null時の書式設定について

このQ&Aのポイント
  • Accessのテキストボックスに日付を入力する際、未入力の場合に表示される書式設定について質問です。
  • 現在、「____年__月__日」と表示されるように書式設定しているのですが、フォーカスが移動すると値が消えず、手動で削除する必要があるため、不便に感じています。
  • VBAで対応する必要があり、それが面倒だと感じています。他の書式設定でも正常に動作するので、日付の場合にはnullの書式設定はできないのでしょうか?

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

  • ベストアンサー
  • chayamati
  • ベストアンサー率41% (260/624)
回答No.6

フォームのプロパティーとVBAを使います 日付ボックスの上に警告のテキストボックスを重ねます 警告ボックスに次のプロパティーを設定します ・データタグ内の編集ロックを「はい」 ・書式タグ内の 背景スタイルを「透明」 ・その他タグ内のTabストップを「いいえ」 VBAを日付のイベントに次のようにコーディングします --------------------------------------------- Private Sub 日付_LostFocus() If 日付 > 0 Then 警告 = "" Else 警告 = "__年__月__日" End If End Sub --------------------------------------------- 結果添付のようなフォームが出来上がりました

iori16
質問者

お礼

回答ありがとうございます。 やはり、VBAでどうにかするのが一番よさそうですね。 Microsoftのhelpでは テキストフィールドや数値フィールドまたは通貨フィールドの書式設定ではNull (未定義)の書式設定があったので、 日付と時刻のフィールドを書式設定でもnullの書式設定ができるんじゃないかと思ってたんですが、helpにはなぜか日付と時刻のフィールドの場合のみnullの書式設定についての言及がないんですよね。 若干面倒ですが、VBAで対応していくことにしました。 ありがとうございます。

その他の回答 (5)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.5

MS P明朝ではなくてMS 明朝にしてみたらいかがですか

iori16
質問者

お礼

日付の場合はnullの書式設定が不可能であるのならば、 その案を考えてみます。 回答ありがとうございます。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.4

> アンダーバーと数字の文字幅が異なるため アンダーバーなくていいのではないですか。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

> テキストボックスにフォーカスが当たっていないときにも > "____年__月__日" > と表示させたいのです。 テキストボックスを透明にしてその下(裏)にラベルで年月日をそれぞれ作成して位置合わせしたらいかがですか。

iori16
質問者

補足

それだと文字入力したときに 背景のラベルが重なって見えてしまいます。 仮にテキストボックスとラベルの大きさをぴったり同じにして、同じ位置に文字が来るようにしても MS P明朝 フォントを使っているので、 アンダーバーと数字の文字幅が異なるため 文字位置がずれてしまいます。

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.2

今晩はExcelと違ってフィールのプロパティーが豊富にあります この機能を使って入力ミスを川上で回避しましょう 1.テーブルのプロパティー 1.1データ型を日付/時刻型にする  これで入力はカレンダー入力になる 1.2.書式を yyyy/mm/dd(aaa) 又は ge/mm/mm(aaa) と  曜日も表示します 1.3.規定値を =DATE() Excelの=TODAY() 1.4.値要求を「はい」にする ここで定義したプロパティーはフォーム、レポートに反映される 2.フォームのプロパティー 2.5.その他タグのヒントテキストにコメントを入れると  マウスを近づけると表示される

iori16
質問者

補足

その辺の設定はすでにしておりまして、 後はテキストボックスが未入力の時に "____年__月__日"と表示させたいのです。 実は印刷用も兼ねているフォームでして、 テキストボックスに枠線が存在しない為、 未入力で何も表示されていないと そこに入力欄があること自体が分かりづらいのです。 そこで日付入力する部分があることをわかりやすくするために未入力時に "____年__月__日"と表示させておきたいのです。 あと、今日の日付が入るわけではないので =DATE()とかは使えないです。 あと日付の場合はカレンダー入力があるのでまだいいのですが、時刻入力でも同じような問題がありまして、 時刻入力の場合は日付と違ってキーボードでの入力が必須なのでより深刻です。 (「__時__分」をdeleteやbackspaseで削除しなければならない) 質問本文を日付じゃなくて時刻にすればよかったと後悔しています

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

書式を 日付 (L) データの定型入力を 西暦日付 9999\年99\月99\日;0;_ にしておけばいかがでしょう。

iori16
質問者

補足

悪くはないのですが この方法だと テキストボックスが未入力の状態で テキストボックスにフォーカスが当たっていない時に なにも表示されません。 テキストボックスにフォーカスが当たっていないときにも "____年__月__日" と表示させたいのです。

関連するQ&A