次レコード=新規レコードということなので、月初メータのテキストボックスの規定値プロパティに同一車番内での月末メーターの最大値を設定すればいいでしょう。
使用年月の規定値も同一車番内での最大値に1月を加算した日付を設定すればいいでしょう。
サブフォームのレコード移動時のイベントプロシージャを下記のように記述してください。
vba
1Private Sub Form_Current()
2 Dim maxYM
3 If Me.NewRecord Then
4 maxYM = DMax("使用年月", "走行メータ", "車番='" & Me.Parent!車番 & "'")
5 If IsNull(maxYM) Then
6 Me.使用年月.DefaultValue = ""
7 Me.月初メーター.DefaultValue = ""
8 Else
9 Me.使用年月.DefaultValue = "#" & DateAdd("m", 1, maxYM) & "#"
10 Me.月初メーター.DefaultValue = _
11 Nz(DMax("月末メーター", "走行メータ", "車番='" & Me.Parent!車番 & "'"), 0)
12 End If
13 End If
14End Sub
.DefaultValue
の前の部分は該当のテキストボックス名にしてください。
追記
使用年月、あるいは月末メーターを入力した時点で、新規レコードに反映させたい場合のコード例
vba
1Private Sub 使用年月_AfterUpdate()
2 Dim maxYM
3 If IsDate(Me.使用年月.Value) Then
4 maxYM = DMax("使用年月", "走行メータ", "車番='" & Me.Parent!車番 & "'")
5 If IsNull(maxYM) Then
6 maxYM = Me.使用年月.Value
7 ElseIf maxYM < Me.使用年月.Value Then
8 maxYM = Me.使用年月.Value
9 End If
10 Me.使用年月.DefaultValue = "#" & DateAdd("m", 1, maxYM) & "#"
11 End If
12End Sub
13
14Private Sub 月末メーター_AfterUpdate()
15 Dim maxM
16 If Not IsNull(Me.使用年月.Value) Then
17 maxM = Nz(DMax("月末メーター", "走行メータ", "車番='" & Me.Parent!車番 & "'"),0)
18 If maxM < Me.月末メーター.Value Then maxM = Me.月末メーター.Value
19 Me.月初メーター.DefaultValue = maxM
20 End If
21End Sub
実際に動作確認はしてませんので、微修正が必要かもしれません。