0

サブフォーム コントロールを含むフォームがあります。メイン フォームのフィールドには計算されたデフォルト値があります (1 は =Date() で、もう 1 つは DLast() です)。ユーザーはこれらのフィールドを変更できるはずですが、ほとんどの場合、デフォルト値は正しいため、ユーザーはサブフォームにスキップできます。サブフォームはメイン フォームのレコードに接続されており、ユーザーがメイン フォーム コントロールのいずれにも触れない場合、サブフォームにレコードを追加することはできません。続行するには、メイン フォーム レコードの 1 つのデフォルト値を再入力する必要があります。

私の考えは、これをメインフォームモジュールに追加することでした:

Private Sub Form_Open(Cancel As Integer)
    DoCmd.RunCommand acCmdSaveRecord
End Sub

デフォルト値を使用してレコードを作成し、ユーザーがフォームを終了するときに変更を保存または削除するかどうかを尋ねる何かを追加する必要があります。しかし、うまくいきません。レコードは作成されません。レコードを作成するには、デフォルト値を「変更」する必要があります。

PSそれを変更してForm_Loadフォームを壊します

4

1 に答える 1

0

日付にデフォルト値を使用する代わりに、コードを使用して日付をコントロールに書き込みます。これにより、コントロールがフィールドにバインドされている限り、レコードが強制的に作成されます。

Private Sub Form_Current()
    If Me.NewRecord Then
        Me.ADate = Date
    End If
End Sub
于 2012-06-29T12:07:25.740 に答える