Microsoft Access 掲示板

日付のフォームにテキストを入れる

4 コメント
views
4 フォロー

度々すみません。
Excelの頃からずっと悩んでいることがあり、投稿いたします。
日付を入れるフォームを作った際、日付以外の文字を入れたいことがよくあります。
たとえばtodoリストで普段は日付を入れるところに「必要なし」と入れるなど。

Accessになると、日付入力はカレンダーで非常に便利なので尚更気になっております。
しかしながら、「必要なし」の可能性がある場合は
普通のテキストフォームにして、日付を手打ちするしか解決法はないのでしょうか。
解決法はないとは思っているのですが、お尋ねしてみたく投稿しました。失礼いたしました。

cerophan
作成: 2020/06/26 (金) 14:49:19
通報 ...
1
hiroton 2020/06/26 (金) 17:41:26 85dae@f966d

標準のカレンダー機能はデータ形式(書式)を必要とする入力支援機能なのでそのままでは無理ですね

ユーザーフォームを使ってなんとかするか、
カレンダーダイアログ日付入力関数 祝日表示対応版

逆に、通常のテキスト入力にしたいときだけひと手間かけるとかでしょう

'テキストボックスをダブルクリックしたら通常のテキストを入力できるようにする'
Private Sub textbox_DblClick(Cancel As Integer)
    Me.textbox.Format = ""
End Sub

Private Sub textbox_Enter()
    Me.textbox.Format = "yyyy/m/d"
End Sub
3
cerophan 2020/06/29 (月) 13:22:18 0029a@1c915 >> 1

なるほど、こんなことができるのですね。勉強になりました!ありがとうございます。

2

Accessはデータベースなので、まずはテーブル設計からはじめる必要があります。
テーブル設計では、フィールドのデータ型をどうするかは重要です。
それが正しく設定されていないと、検索とか抽出、集計というデータベースとしての機能が使いづらくなります。

日付を格納するフィールドは日付/時刻型にすべきです。そこには日付や時刻しか入力できません。
テキスト入力が必要なら別にテキスト型のフィールドを用意するべきです。
「必要なし」だけでいいなのら、Yes/No型のフィールドでもいいでしょう。

フォーム上では、Yes/No型のチェックボックスをチェックしたら、VBAで日付のフィールドをNullにするようにします。
テキスト型の場合は、何かテキストを入力したら日付フィールドをNullにするようします。

4
cerophan 2020/06/29 (月) 13:25:01 0029a@1c915

やはりそうですよね。
>フィールドをNullにするようします
なるほど、そういったことも必要になるのですね。勉強になりました!ありがとうございます。