Microsoft Access 掲示板

サブフォームの値をすぐに計算など / 10

11 コメント
views
4 フォロー
10

3で提示したコードの条件にレコード件数が0もつけ加えるといいでしょう。

Private Sub Form_Unload(Cancel As Integer)
    If Me.埋め込み1.Form.Recordset.RecordCount = 0 Or Me.埋め込み1.Form!SumF2.Value <> Me.埋め込み1.Form!SumF4.Value Then
        Cancel = True
        Me.埋め込み1.SetFocus
    End If
End Sub

Private Sub 埋め込み1_Exit(Cancel As Integer)

    Me.埋め込み1.Form.Requery 'レコード保存
     If Me.埋め込み1.Form.Recordset.RecordCount = 0 Then
        Cancel = True
        MsgBox "明細データを1件以上入力してください"
    ElseIf Me.埋め込み1.Form!SumF2.Value <> Me.埋め込み1.Form!SumF4.Value Then
        Cancel = True
        MsgBox "F2とF4の合計が合っていません!"
    End If
End Sub

これでサブフォームのレコード件数が0のときはフォームを閉じれなくなります。

ただし、これだけではメインレコード移動は規制できません。
レコード移動時イベントでは、レコード移動した後に発生するしキャンセルできないので。

いろいろ考えてみましたが、難しそうですね。
レコード移動時イベントで、サブのレコード件数が0のメインのレコードがないかチェックして、あればそこにレコード移動するという感じでするとか、ぐらいかな。
ちょっと面倒そうですね。

通報 ...