Senza la pretesa che sia senza errori (scritto al volo) e volutamente senza aver dato nomi diversi ai parametri della sub :
public sub MiaSub(rstdetfat as ADODB.recordset, intNumFattura as integer, intAnno as integer, str13 as string, strPag as string, rstdit as ADODB.recordset)
'
' Questa sub, anche se aiuta a spezzare la mega routine NON è certamente ben congegnata
' Lo scopo è solo quello di mostrare la sintassi per poter separare il 'Codicione' in 'codicilli'
'
' La sub è dichiara come Public ma potrebbe anche essere dichiarata come Private (da valutare)
'
' I nomi dei parametri sono stati volutamente mantenuti uguali ai nomi delle variabili del chiamante
'
With rstdetfat
.AddNew
.Fields("IdFattura") = intNumFattura
.Fields("IdUnitàMisura") = 2
.Fields("Anno") = intAnno
If Month(Date) = 1 Then 'controlla il n° del mese NON la sua denominazione
.Fields("Descrizione") = str13 & UCase(Format(DateAdd("m", -1, (Date)), "mmmm")) & " " & Year(DateAdd("yyyy", -1, Date))
.Fields("Quantità") = rstdit("Paghe") * 2
Else
.Fields("Descrizione") = strPag & UCase(Format(DateAdd("m", -1, (Date)), "mmmm")) & " " & Year(Date)
.Fields("Quantità") = rstdit("Paghe")
End If
.Fields("Importo") = rstdit("QuotaPaghe") '* rstdit("Paghe")
.Fields("IdAliquotaIva") = 8
End With
Return
Così richiami la sub :
MiaSub(rstdetfat, intNumFattura, intAnno, str13, strPag, rstdit )
P.S. - La tua mega routine, nell'insieme, è quanto di peggio possa incontrare chi dovesse farci manutenzione (e questo vale anche per chi l'ha scritta).
Impara a separare il codice in piccole routine (sub / function) magari riutilizzabili ....