I can only imagine that works up to now because you haven't clicked No yet. The view parameter is still before the name parameter, which is backwards:
DoCmd.OpenForm acNormal, "frmSelTerrDS"
Why not just present one message box instead of forcing an unnecessary response?
Code:
Private Sub Form_Load()
Dim result As Integer
If Me.RecordsetClone.RecordCount = 0 Then
Result = MsgBox ("No Records Found." & vbCrLf & vbCrLf & "Would you like to display another Group?")
If Result = vbYes Then
DoCmd.OpenForm, "frmSelTerrDS", acNormal
Else
DoCmd.Close
Exit Sub
End If
End If
DoCmd.Close acForm, "frmSelTerrDS"
End Sub
Not sure I see the point/need for opening a form that is already open but I guess it works? The implication is that it's not open but your posts read like it is, so why wouldn't it become active when you just close the datasheet form (assuming it was the last form that was active). Usual approach would be to simply close the 2nd form then the 1st becomes active - or you hide #1, open #2 and if you close #2, make #1 visible again.
Please use code tags (# on posting toolbar) with proper indentation. Makes it so much easier to read, no? Besides, it stops the forum from doing wonky things to your code.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.