Microsoft Access 掲示板

コンボボックスの連携に伴うもとになるクエリの値について / 7

29 コメント
views
4 フォロー
7

そのような場合は、既定値プロパティを使うといいです。
既定値プロパティは新規レコードで、入力する前に既定の値を表示しておくものです。

まず、日付ですが、入力する日に、その日のデータを入力するなら、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の規定値に対応する社員名が表示されないため。

  • 社員名の「タブストップ」を「いいえ」にした。社員名は入力する必要がないので。

通報 ...