mah .. io non ci capisco più nulla!!!! 
ho cambiato la global.asa in questo modo ed ora funziona alla perfezione:
codice:
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
Application("ActiveUsers") = 0
End Sub
Sub Session_OnStart
Session.Timeout = 10
'Incremento il numero di utenti all'inizio di una nuova sessione
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") + 1
Aggiornamenti
Controlla
Application.UnLock
End Sub
Sub Session_OnEnd
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") - 1
Application("Update") = Application("Update")
Application("Pulizia") = Application("Pulizia")
Application.UnLock
End Sub
sub Aggiornamenti
set conn = Server.CreateObject("ADODB.Connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("mdb-database\NOMEDB.mdb")
set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT MAX(Campo1) AS aggiorna "
sql = sql & "FROM "
sql = sql & "(SELECT MAX(Inserito) AS Campo1 FROM TblDown "
sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblEletti "
sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblFoto "
sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblFotoRaccolta "
sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblIniziative "
sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblLinks "
sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblLinksCat "
sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblMemphis "
sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblNews "
sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblPagine)"
rs.open sql, conn, 3, 3
update = Mid(rs("aggiorna"),7,2) & "/" & Mid(rs("aggiorna"),5,2) & "/" & Left(rs("aggiorna"),4)
rs.Close()
Set rs = Nothing
if IsNull(Application("Update")) or Application("Update") <> update then
Application("Update") = update
else
Application("Update") = Application("Update")
end if
conn.Close
set Conn = Nothing
end sub
Sub Controlla
if IsNull(Application("Pulizia")) or Application("Pulizia") <> Date() or Application("Pulizia") = "" then
Call Pulisci(DateAdd("d",-5,Date()),DateAdd("m",-1,Date()))
Application("Pulizia") = Date()
else
Application("Pulizia") = Application("Pulizia")
end if
End Sub
Sub Pulisci(data1,data2)
aaaa = Year(data1)
mese = Month(data1)
giorno = Day(data1)
if mese < 10 then
mm = "0" & mese
else
mm = mese
end if
if giorno < 10 then
gg = "0" & giorno
else
gg = giorno
end if
newsletter = aaaa&mm&gg
aaaa1 = Year(data2)
mese1 = Month(data2)
giorno1 = Day(data2)
if mese1 < 10 then
mm1 = "0" & mese1
else
mm1 = mese1
end if
if giorno1 < 10 then
gg1 = "0" & giorno1
else
gg1 = giorno1
end if
iniznews = aaaa1&mm1&gg1
'elimino gli iscritti in attesa della newsletter
set conn1 = Server.CreateObject("ADODB.Connection")
conn1.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("mdb-databaseNOMEDB.mdb")
conn1.Execute = "DELETE FROM TblNewsletter WHERE Attivo = 'N' AND (VariazioneMail < '" & newsletter & "' OR (Iscrizione < '" & newsletter & "' AND IsNull(VariazioneMail)))"
'archivio le iniziative
set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM TblIniziative WHERE Al < '" & iniznews & "'"
rs.open sql, conn1, 3, 3
if not rs.eof then
do while not rs.eof
rs("Archivio") = "S"
rs.update
rs.movenext
loop
end if
rs.close
set rs = nothing
'archivio le news
set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM TblNews WHERE Inserito < '" & iniznews & "'"
rs.open sql, conn1, 3, 3
if not rs.eof then
do while not rs.eof
rs("Archivio") = "S"
rs.update
rs.movenext
loop
end if
rs.close
set rs = nothing
conn1.close
set conn1 = nothing
End Sub
</SCRIPT>
se qualcuno ha voglia di dare un occhio e magari capisce perchè non andava gliene sarei grato almeno capisco anche io dove sbagliavo 
Alla fine da quel che ho capito io le var non le assegnava o non ne manteneva i valori assegnati
un ultimissima cosa ... secondo voi per quanto riguarda la seconda parte che archvia, e quindi imposta a S i campi archivio, è meglio fare in quel modo oppure è ancora meglio qualcosa del tipo:
codice:
Sub Pulisci(data1,data2)
aaaa = Year(data1)
mese = Month(data1)
giorno = Day(data1)
if mese < 10 then
mm = "0" & mese
else
mm = mese
end if
if giorno < 10 then
gg = "0" & giorno
else
gg = giorno
end if
newsletter = aaaa&mm&gg
aaaa1 = Year(data2)
mese1 = Month(data2)
giorno1 = Day(data2)
if mese1 < 10 then
mm1 = "0" & mese1
else
mm1 = mese1
end if
if giorno1 < 10 then
gg1 = "0" & giorno1
else
gg1 = giorno1
end if
iniznews = aaaa1&mm1&gg1
set conn1 = Server.CreateObject("ADODB.Connection")
conn1.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("mdb-databaseNOMEDB.mdb")
'elimino gli iscritti in attesa della newsletter
conn1.Execute = "DELETE FROM TblNewsletter WHERE Attivo = 'N' AND (VariazioneMail < '" & newsletter & "' OR (Iscrizione < '" & newsletter & "' AND IsNull(VariazioneMail)))"
'archivio le iniziative
conn1.Execute = "UPDATE TblIniziative SET Archivio = '"S"' WHERE Al < '" & iniznews & "'"
'archivio le news
conn1.Execute = "UPDATE TblNews SET Archivio = '"S"' WHERE Inserito < '" & iniznews & "'"
conn1.close
set conn1 = nothing
End Sub