0

こんばんは、誰かがこれを理解するのを手伝ってくれますか?それを行う方法はそれほど複雑ではないと思いますが、私はそれを理解することができません.

4つのフィールド
IDを取得しました
営業時間 営業時間
閉店時間
日付

たとえば、[営業時間] が 8 [営業時間] が 16 の場合、[営業時間] は新しい既存のレコードでデフォルトで 16 になります。

このコードを営業時間のデフォルト値プロパティに配置しますが、既存のレコードではなく、新しいレコードのみに配置します。

=Nz(DMax("[閉店時間]","PlantTransaction"))

実際に発生する必要があるのは、レコード 1 の営業時間 8 と営業時間 16 のレコードを入力すると、サブフォームに既に 4 つのレコードがあることです。レコード 2 の営業時間は、4 つの既存のレコードをスキップし、自動的にレコード 5 のような新しいレコード
前もって感謝します。

4

1 に答える 1

0

Access フォームの [既定値] プロパティは、新しいレコードに対してのみ機能します。必要なのは、新しいレコードと既存のレコードの両方に対してそれを行うためのコードです。サブフォームのCurrentイベントでは、次のようなものが機能するはずです。

Private Sub Form_Current()
    Dim rst As DAO.Recordset

    If IsNull(txtOpening) Then
        Set rst = Me.RecordsetClone
        If rst.RecordCount > 0 Then
            If Me.NewRecord Then
                rst.MoveLast
            Else
                rst.Bookmark = Me.Bookmark
                rst.MovePrevious
            End If
            txtOpening = rst!Closing
        End If
    End If
End Sub

IF ステートメントは、IsNull(txtOpening)既に入力されている場合に、現在のレコードの開始値を上書きしないようにするためのものです。ユーザーがレコードを入力したときに常に上書きする場合は、削除できます。

于 2013-04-30T16:51:42.380 に答える