I have a continuous form that contains a subform. Each form has its own table. I'm trying to loop thru the subforms recordset. Sometime it works other times it doesn't, not sure what I'm missing.
Here is the code I'm using for this section:
Code:
Private Sub cmdUpdateSub_Click()
Forms!frmDASHBOARD.SetFocus
DoCmd.Minimize
Forms!frmTestRequests_Main.SetFocus
Dim Style
Dim x As Integer
Dim rstTestRequests As DAO.Recordset
Forms!frmTestRequests_Main!cboNewProjectStatus.SetFocus
Set rstTestRequests = Me.frmSubTestRequests_Subform.Form.RecordsetClone
If (Forms!frmTestRequests_Main!cboNewProjectStatus.Text = "") Then
Style = vbYes + vbCritical
MsgBox "Fill Project_Status and then Click Update Release Record agiain.", Style, "Missing Information"
Exit Sub
End If
If (IsNull(Forms!frmTestRequests_Main![txtRelease_Counter].Value)) Then
'Must be the first iteration, add 1 to the txtRelease_Counter box
Forms!frmTestRequests_Main![txtRelease_Counter].Value = 0
End If
x = Forms!frmTestRequests_Main![txtRelease_Counter].Value
rstTestRequests.FindFirst x
If rstTestRequests.NoMatch Then
'Nothing
Else
Me.frmSubTestRequests_Subform.Form.Bookmark = rstTestRequests.Bookmark
End If
Select Case x
Case 1
ContinueReleaseNext (x)
Forms!frmTestRequests_Main!frmSubTestRequests_Subform.SetFocus
If (Not Me.frmSubTestRequests_Subform.Form.Recordset.EOF) Then
Me.frmSubTestRequests_Subform.Form.Recordset.MoveNext
'continue loop
x = x + 1 '2
End If
Forms.frmTestRequests_Main.[txtRelease_Counter] = x
ContinueReleaseNext (x)
Forms!frmTestRequests_Main!frmSubTestRequests_Subform.SetFocus
If (Not Me.frmSubTestRequests_Subform.Form.Recordset.EOF) Then
Me.frmSubTestRequests_Subform.Form.Recordset.MoveNext
x = x + 1 '3
End If
Forms.frmTestRequests_Main.[txtRelease_Counter] = x
ContinueReleaseNext (x)
Forms!frmTestRequests_Main!frmSubTestRequests_Subform.SetFocus
If (Not Me.frmSubTestRequests_Subform.Form.Recordset.EOF) Then
Me.frmSubTestRequests_Subform.Form.Recordset.MoveNext
x = x + 1 '4
End If
Forms.frmTestRequests_Main.[txtRelease_Counter] = x
ContinueReleaseNext (x)
Case 2
ContinueReleaseNext (x)
Forms!frmTestRequests_Main!frmSubTestRequests_Subform.SetFocus
If (Not Me.frmSubTestRequests_Subform.Form.Recordset.EOF) Then
Me.frmSubTestRequests_Subform.Form.Recordset.MoveNext
x = x + 1
Forms.frmTestRequests_Main.[txtRelease_Counter] = x
ContinueReleaseNext (x)
End If
Case 3
ContinueReleaseNext (x)
Forms!frmTestRequests_Main!frmSubTestRequests_Subform.SetFocus
If (Not Me.frmSubTestRequests_Subform.Form.Recordset.EOF) Then
Forms.[frmTestRequests_Main].[frmSubTestRequests_Subform].Form.[Recordset].MoveNext
x = x + 1
Forms.frmTestRequests_Main.[txtRelease_Counter] = x
ContinueReleaseNext (x)
End If
Case 4
ContinueReleaseNext (x)
Forms!frmTestRequests_Main!frmSubTestRequests_Subform.SetFocus
If (Not Me.frmSubTestRequests_Subform.Form.Recordset.EOF) Then
Forms.[frmTestRequests_Main].[frmSubTestRequests_Subform].Form.[Recordset].MoveNext
x = x + 1
Forms.frmTestRequests_Main.[txtRelease_Counter] = x
ContinueReleaseNext (x)
End If
End Select
End Sub
Here is an image of the forms:
Basically, for each of the Main records, there will be four possible Releases. After setting a Release to True the Main table is updated to reflect this as a new record.
I'm not sure what at times I can't get the recordset to move to the next record?
Thanks,
Jeff