Per rispondere a Weierstrass al 2100 spero di aver smesso di smanettare.
per Alex in effetti il codice che ho messo non è completo ho messo solo la parte dove mi dava l' errore
il codice completo è:
rsAdo1.Open "SELECT IdGenerale, [Cod Cliente], [Id Listino], Inquadramento, matricola, giorno, mese, anno, tipo_assenza, val_assenza " & _
"FROM CalendarioPresenze " & _
"WHERE (anno = " & TempVars!TempAnno & ") AND (Inquadramento = " & TempVars!TempInq & ") AND (IdGenerale = " & TempVars!AggIdGenerale & ")" & _
"ORDER BY IdGenerale, anno, mese, giorno", cnG
'Calcolo I Giorni di Malattia
Do Until rsAdo1.EOF = True
'Se il Tipo di Assenza è uguale ad M o ad MA allora inizia la malattia
If (rsAdo1!tipo_assenza = "M") Or (rsAdo1!tipo_assenza = "MA") Then
IdGeneraleMalattia = rsAdo1!IdGenerale
MatricolaMalattia = rsAdo1!matricola
DataInizioMalattia = rsAdo1("giorno") & "/" & rsAdo1("mese") & "/" & rsAdo1("anno")
DataFineMalattia = rsAdo1("giorno") & "/" & rsAdo1("mese") & "/" & rsAdo1("anno")
For i = 1 To 370
rsAdo1.MoveNext
If (Left(rsAdo1!tipo_assenza, 1) = "M") Then
DataFineMalattia = rsAdo1("giorno") & "/" & rsAdo1("mese") & "/" & rsAdo1("anno")
If rsAdo1.EOF = True Then
Exit For
End If
Else
Exit For
End If
Next
'CONTROLLO se ci sono DOMENICHE in mezzo alla malattia
domeniche = DateDiff("ww", DataInizioMalattia, DataFineMalattia, 1)
'CALCOLO la durata della malattia
GiorniMalattia = DateDiff("d", DataInizioMalattia, DataFineMalattia) + 1 - domeniche
'GENERO il progressivo della malattia
Dim rsAdo3 As ADODB.Recordset
Set rsAdo3 = New ADODB.Recordset
rsAdo3.Open "SELECT Count(durata_gg) AS ConteggioDidurata_gg " & _
"FROM TabellaMalattieTemp WHERE (IdGenerale=" & IdGeneraleMalattia & ")", cnG
Progressivo = rsAdo3("ConteggioDidurata_gg") + 1
'INSEIRSCO tutto Nella TabellaMalattieTemp
rsAdo2.Open "SELECT * FROM TabellaMalattieTemp ", cnG, 3, 3
rsAdo2.AddNew _
Array("Progressivo", "CodiceCliente", "IdGenerale", "data_inizio", "data_fine", "durata_gg", "Anno", "Mese", "matricola", "Id Listino", "Inquadramento"), _
Array(Progressivo, TempVars![CodCliente], IdGeneraleMalattia, DataInizioMalattia, DataFineMalattia, GiorniMalattia, rsAdo1!Anno, rsAdo1!Mese, MatricolaMalattia, rsAdo1![Id Listino], rsAdo1!Inquadramento)
rsAdo2.Update
rsAdo2.Close
rsAdo3.Close
End If
IdGeneraleMalattia = ""
MatricolaMalattia = ""
DataInizioMalattia = ""
DataFineMalattia = ""
'Vado Al Record Successivo
rsAdo1.MoveNext
Loop
rsAdo1.Close
forse così ti è chiaro perchè ho messo un doppio ciclo in modo che quando identifico la malattia la metto in una tabella