- ベストアンサー
Accessのテキストボックスの日付null時の書式設定について
- Accessのテキストボックスに日付を入力する際、未入力の場合に表示される書式設定について質問です。
- 現在、「____年__月__日」と表示されるように書式設定しているのですが、フォーカスが移動すると値が消えず、手動で削除する必要があるため、不便に感じています。
- VBAで対応する必要があり、それが面倒だと感じています。他の書式設定でも正常に動作するので、日付の場合にはnullの書式設定はできないのでしょうか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
フォームのプロパティーとVBAを使います 日付ボックスの上に警告のテキストボックスを重ねます 警告ボックスに次のプロパティーを設定します ・データタグ内の編集ロックを「はい」 ・書式タグ内の 背景スタイルを「透明」 ・その他タグ内のTabストップを「いいえ」 VBAを日付のイベントに次のようにコーディングします --------------------------------------------- Private Sub 日付_LostFocus() If 日付 > 0 Then 警告 = "" Else 警告 = "__年__月__日" End If End Sub --------------------------------------------- 結果添付のようなフォームが出来上がりました
その他の回答 (5)
- kkkkkm
- ベストアンサー率66% (1719/2589)
MS P明朝ではなくてMS 明朝にしてみたらいかがですか
お礼
日付の場合はnullの書式設定が不可能であるのならば、 その案を考えてみます。 回答ありがとうございます。
- kkkkkm
- ベストアンサー率66% (1719/2589)
> アンダーバーと数字の文字幅が異なるため アンダーバーなくていいのではないですか。
- kkkkkm
- ベストアンサー率66% (1719/2589)
> テキストボックスにフォーカスが当たっていないときにも > "____年__月__日" > と表示させたいのです。 テキストボックスを透明にしてその下(裏)にラベルで年月日をそれぞれ作成して位置合わせしたらいかがですか。
補足
それだと文字入力したときに 背景のラベルが重なって見えてしまいます。 仮にテキストボックスとラベルの大きさをぴったり同じにして、同じ位置に文字が来るようにしても MS P明朝 フォントを使っているので、 アンダーバーと数字の文字幅が異なるため 文字位置がずれてしまいます。
- chayamati
- ベストアンサー率41% (260/624)
今晩はExcelと違ってフィールのプロパティーが豊富にあります この機能を使って入力ミスを川上で回避しましょう 1.テーブルのプロパティー 1.1データ型を日付/時刻型にする これで入力はカレンダー入力になる 1.2.書式を yyyy/mm/dd(aaa) 又は ge/mm/mm(aaa) と 曜日も表示します 1.3.規定値を =DATE() Excelの=TODAY() 1.4.値要求を「はい」にする ここで定義したプロパティーはフォーム、レポートに反映される 2.フォームのプロパティー 2.5.その他タグのヒントテキストにコメントを入れると マウスを近づけると表示される
補足
その辺の設定はすでにしておりまして、 後はテキストボックスが未入力の時に "____年__月__日"と表示させたいのです。 実は印刷用も兼ねているフォームでして、 テキストボックスに枠線が存在しない為、 未入力で何も表示されていないと そこに入力欄があること自体が分かりづらいのです。 そこで日付入力する部分があることをわかりやすくするために未入力時に "____年__月__日"と表示させておきたいのです。 あと、今日の日付が入るわけではないので =DATE()とかは使えないです。 あと日付の場合はカレンダー入力があるのでまだいいのですが、時刻入力でも同じような問題がありまして、 時刻入力の場合は日付と違ってキーボードでの入力が必須なのでより深刻です。 (「__時__分」をdeleteやbackspaseで削除しなければならない) 質問本文を日付じゃなくて時刻にすればよかったと後悔しています
- kkkkkm
- ベストアンサー率66% (1719/2589)
書式を 日付 (L) データの定型入力を 西暦日付 9999\年99\月99\日;0;_ にしておけばいかがでしょう。
補足
悪くはないのですが この方法だと テキストボックスが未入力の状態で テキストボックスにフォーカスが当たっていない時に なにも表示されません。 テキストボックスにフォーカスが当たっていないときにも "____年__月__日" と表示させたいのです。
お礼
回答ありがとうございます。 やはり、VBAでどうにかするのが一番よさそうですね。 Microsoftのhelpでは テキストフィールドや数値フィールドまたは通貨フィールドの書式設定ではNull (未定義)の書式設定があったので、 日付と時刻のフィールドを書式設定でもnullの書式設定ができるんじゃないかと思ってたんですが、helpにはなぜか日付と時刻のフィールドの場合のみnullの書式設定についての言及がないんですよね。 若干面倒ですが、VBAで対応していくことにしました。 ありがとうございます。