hatena
hatena
2019/05/04 (土) 16:38:19
そのような場合は、既定値プロパティを使うといいです。
既定値プロパティは新規レコードで、入力する前に既定の値を表示しておくものです。
まず、日付ですが、入力する日に、その日のデータを入力するなら、Date() の日付を既定値に設定しておけばいいですね。
前日のデータを入力するなら、Date()-1 の日付を既定値に設定します。
社員IDは、最初は空白にしておいて、入力したら、その値を既定値に設定するようにすれば、次の新規レコードから、前に入力した値が表示されます。
フォームのコードは下記のようになります。
Private Sub Form_Load()
Me.日付.DefaultValue = "#" & Format(Date, "yyyy/mm/dd") & "#"
DoCmd.GoToRecord , , acNewRec
End Sub
Private Sub 社員ID_AfterUpdate()
Me.社員ID.DefaultValue = Me.社員ID
End Sub
Private Sub 日付_AfterUpdate()
Me.日付.DefaultValue = "#" & Format(Me.日付.Value, "yyyy/mm/dd") & "#"
End Sub
サンプルファイルの上記以外の修正点
社員IDをテキストボックスからコンボボックスに変更した。
リストは、社員ID と 社員名の2列表示にした。社員名のコントロールソースをコンボボックスの2列目の値を参照するようにした。
=[社員ID].[Column](1)
クエリの社員名にしておくと、マスタの社員名を更新する恐れがあるし、新規レコードで社員IDの規定値に対応する社員名が表示されないため。社員名の「タブストップ」を「いいえ」にした。社員名は入力する必要がないので。
通報 ...