Occorre individuare qual'è la parte di codice che ti da errore... non disponendo dei dati veri posso solo consigliarti di agire cosi:
Crea una copia della Maschera DDT e cancella la sottomaschera.
nella form load della copia di DDT lascia solo
strKeys = Split(Me.OpenArgs, "|")
Me.xTipo = strKeys(0)
Me.xIdDdt = strKeys(1)
Me.xComm = strKeys(2)
Me.xSubLot = strKeys(3)
Me.xCdCli = strKeys(4)
Me.xDtStart = strKeys(5)
Me.xDIS = strKeys(6)
Me.xQta = strKeys(7)
If Not IsNull(Me.DVIDGRUP) Or Me.DVIDGRUP > 0 Then
xIdGrup = Me.DVIDGRUP
End If
xDtStartM = DateAdd("d", -8, Me.xDtStart)
di seguito in un altro pulsante di RientriParziali metti questo codice:
If Me.CTIDDDTG > 0 And IsNumeric(Me.CTIDDDTG) Then
Else
Me.CTIDDDTG = 0
End If
On Error Resume Next
If CurrentProject.AllForms("nuovamaschera").IsLoaded Then
DoCmd.Close acForm, "DDT Vendita"
End If
DoEvents
DoCmd.OpenForm "nuovamaschera", , , "DVIDGRUP=" & Me.CTIDDDTG, , , "RP|" & Me.CTIDDDTG & "|" & Me.CTNMCOM & "|" & Me.CTSUBLOT & "|" & Forms![Commessa]!CMCDCLI & "|" & Me.CTDATA & "|" & Forms![Commessa]!CMNMDIS & "|" & Me.CTQTACS
fai un po di prove così ci accertiamo che il problema è li...
ps:
x piacere metti il tag code nei post... basta selezionare il codice che hai scritto e premere "Code"
saluti