In case anyone needs the solution I ended up with for themselves: I finally used RunCode in my macro. So, the Action= RunCode and the Function Name is mcrComparedParts_Part_2(). The query sqCompare_Parts_Matched_1st contains the record count that determines when to stop - DCount("*", "sqCompare_Parts_Matched_1st") will be < 1 if there are no more matches to process.

Within the VB code of the macro this is what the code says:
Function mcrComparedParts_Part_2()

If DCount("*", "sqCompare_Parts_Matched_1st") > 1 Then

DoCmd.RunMacro "mcrComparedPartsRepeated", , ""
Do Until DCount("*", "sqCompare_Parts_Matched_1st") < 1
DoCmd.RunMacro "mcrComparedPartsRepeated", , ""
End If