Here is example of how I open same form for different purposes:
for edit mode:
DoCmd.OpenForm "form name", , , "Submit.LabNum='" & strLabNum & "'", , , "Edit"
for view only:
DoCmd.OpenForm "form name", , , "Submit.LabNum='" & strLabNum & "'", acFormReadOnly, , "ViewData" & ":" & strSource
for new record:
DoCmd.OpenForm "form name", , , acFormAdd, , "New"
Then code behind the opened form:
Code:
Private Sub Form_Open(Cancel As Integer)
With Me
If .OpenArgs Like "View*" Then
.AllowEdits = False
.tbxRet.ControlSource = "Ret"
.tbxRet.BackColor = RGB(204, 255, 204)
If .OpenArgs = "ViewData:Button" Then
.btnCancel.Caption = "Quit Data View"
.btnFinish.Caption = "&Continue"
.btnFinish.SetFocus
ElseIf .OpenArgs = "ViewData:DoubleClick" Then
.btnFinish.Visible = False
.btnCancel.Caption = "Close"
End If
End If
End With
End Sub
However, I have not done this with form/subform arrangement but should work.