I think this is the logic required. This shows you the date of the first 10 review visits.
You could make it a function. It depends on exactly what you are trying to do.
Code:
'---------------------------------------------------------------------------------------
' Procedure : patientVisits
' Author : mellon
' Date : 04-May-2017
' Purpose :The initial review occurs 28 days after admission.
'After that initial review date, they are reviewed every 84 days.
'---------------------------------------------------------------------------------------
'
Sub patientVisits()
Dim rs As DAO.Recordset
Dim db As DAO.Database
Dim i As Integer
Dim AdmitDate As Date: AdmitDate = #5/16/2012#
10 On Error GoTo patientVisits_Error
20 Dim InitialReview As Integer: InitialReview = 28
30 Dim FollowUpReview As Integer: FollowUpReview = 84
40 Dim NumReviews As Integer: NumReviews = 10
50 For i = 1 To NumReviews
60 If i = 1 Then
70 Debug.Print "DateReview-" & i & " " & DateAdd("d", InitialReview, AdmitDate)
80 Else
90 Debug.Print "DateReview-" & i & " " & DateAdd("d", (FollowUpReview * i), AdmitDate)
100 End If
110 Next i
patientVisits_Exit:
120 Exit Sub
patientVisits_Error:
130 MsgBox "Error " & err.number & " in line " & Erl & " (" & err.Description & ") in procedure patientVisits of Module AWF_Related"
140 Resume patientVisits_Exit
End Sub
Results:
DateReview-1 13-Jun-2012
DateReview-2 31-Oct-2012
DateReview-3 23-Jan-2013
DateReview-4 17-Apr-2013
DateReview-5 10-Jul-2013
DateReview-6 02-Oct-2013
DateReview-7 25-Dec-2013
DateReview-8 19-Mar-2014
DateReview-9 11-Jun-2014
DateReview-10 03-Sep-2014