Ciao ho un problema con una maschera e una sottomaschera basata su query parametrica

In pratica la sottomaschera basata sulla query dovrebbe mostrare i record in base all' inserimento di uno o due criteri (intervallo date o cognome e nome)

In realtà il tutto funzionava solo impostando l' intervallo date,una volta aggiunto come criterio il cognome e il nome il risultato è stato la moifica dei criteri della query (cancellati) oppure la cancellazione dell' intera query

Questa è la query:
codice:
SELECT Promotori.CognomeNomePromotore, PaghePromot.DataRitAcconto, PaghePromot.SPAssegno, PaghePromot.Assegno, PaghePromot.SPBonifico, PaghePromot.Bonifico, PaghePromot.Contanti, Sum(([PagaOraNetta]*[OreLavorate])) AS Totale, PaghePromot.PagamEffettuato
FROM Promotori INNER JOIN (PaghePromot INNER JOIN PaghePromVoci ON PaghePromot.ID_PagheProm=PaghePromVoci.ID_PagheProm) ON Promotori.ID_Promotore=PaghePromot.Promotore
WHERE (((PaghePromot.DataRitAcconto) Between Forms!MostraPagaPromotori!DataInizio And Forms!MostraPagaPromotori!DataFine)) Or (((Promotori.CognomeNomePromotore)=Forms!MostraPagaPromotori!ControlloNome))
GROUP BY Promotori.CognomeNomePromotore, PaghePromot.DataRitAcconto, PaghePromot.SPAssegno, PaghePromot.Assegno, PaghePromot.SPBonifico, PaghePromot.Bonifico, PaghePromot.Contanti, PaghePromot.PagamEffettuato;
e questo è il codice che ho messo nella maschera principale
codice:
Private Sub MostraPagaPromotori_Click()

     'Verifica che la data di fine sia successiva alla data di inizio. 
    If DataFine < DataInizio Then
        MsgBox "La data di fine deve essere successiva alla data di inizio."
        DataInizio.SetFocus
        Exit Sub
    End If

     '  Crea una istruzione SQL utilizzando il criteri di ricerca immesso dall'utente 
     '  e imposta la proprietà OrigineRecord della ControlloPagamentiPromotori. 
    

    Dim strSQL
    Dim qdf As New QueryDef
    


      '  Crea l'istruzione SELECT. 
    strSQL = "SELECT Promotori.CognomeNomePromotore, PaghePromot.DataRitAcconto, PaghePromot.SPAssegno, PaghePromot.Assegno, PaghePromot.SPBonifico, PaghePromot.Bonifico, PaghePromot.Contanti, Sum(([PagaOraNetta]*[OreLavorate])) AS Totale, PaghePromot.PagamEffettuato "
    strSQL = strSQL & "FROM Promotori INNER JOIN (PaghePromot INNER JOIN PaghePromVoci ON PaghePromot.ID_PagheProm = PaghePromVoci.ID_PagheProm) ON Promotori.ID_Promotore = PaghePromot.Promotore "
    strSQL = strSQL & "WHERE (((PaghePromot.DataRitAcconto Between #" & Format(Me!DataInizio, "mm/dd/yyyy") & "#"
    strSQL = strSQL & " And #" & Format(Me!DataFine, "mm/dd/yyyy") & "#) "
    strSQL = strSQL & "OR ((Promotori.CognomeNomePromotore) = ([Forms]![MostraPagaPromotori]![ControlloNome]))) "
    strSQL = strSQL & "GROUP BY Promotori.CognomeNomePromotore, PaghePromot.DataRitAcconto, PaghePromot.SPAssegno, PaghePromot.Assegno, PaghePromot.SPBonifico, PaghePromot.Bonifico, PaghePromot.Contanti, PaghePromot.PagamEffettuato;"
      ' Ora salviamo la query come nuovo oggetto nel db corrente! 
       ' (prima ne eliminiamo l'eventuale istanza precedente! 
    On Error Resume Next
    DoCmd.DeleteObject acQuery, "ControlloPagamentiPromotori"
    qdf.Name = "ControlloPagamentiPromotori"
    qdf.SQL = strSQL
    CurrentDb.QueryDefs.Append qdf
    Set qdf = Nothing
        
      '  Imposta la proprietà OrigineRecord della SottomascheraMostraVendite. 
    Me!SottoMPagaPromotori.Form.RecordSource = "ControlloPagamentiPromotori"
    Me.Testo51.Requery
      

    
    
    '  Se i criteri non sono soddisfatti da alcun record, reimposta la proprietà OrigineRecord della sottomaschera, 
      '  visualizza un messaggio e attiva la casella di testo Data di inizio. 
    If Me!SottoMPagaPromotori.Form.RecordsetClone.RecordCount = 0 Then
        Me!SottoMPagaPromotori.Form.RecordSource = "SELECT CognomeNomePromotore FROM Promotori WHERE False;"
        MsgBox "Nessun record corrisponde ai criteri immessi.", vbExclamation, "Nessun record trovato"
        Me!DataInizio.SetFocus
    Else
          '  Attiva i controlli della sezione Corpo. 
        AttivaControlli Me, acDetail, True
          ' Sposta il punto di inserimento nella ControlloPagamentiPromotori. 
        Me!SottoMPagaPromotori!CognomeNomePromotore.SetFocus
        
    End If
  
  
 
 End Sub