Originariamente inviato da Lak3d
Scusa, ma hai letto quello che ti ho scritto?
Se devi basarti in base al'update della data nella tabella secondaria fai come ti ho detto usando una variabile che ti specifica quando viene cambiata la data (quello che avviene con un trigger AFTER UPDATE):
codice:
SQL=UPDATE Tabella_Secondaria SET(Data=#NyovaData#)
DataAggiornata=True
If (DataAggiornata) then
Set rs=Conn.OpenRecordset("Tabella")
Val1=rs("2006")
Val2=rs("2007")
SQL="UPDATE Nome_Tabella SET (Colonna_2007=" & Val2-1 & ", Colonna_2006=" & Val1+1 & ")"
End if
Scusa ma ero fermo alla risposta di Optime 
Comunque avrei risolto così, spero si possa ottimizzare:
codice:
'RECUPERO ID RECORD IN QUERYSTRING
strID = request.querystring("ID")
'RECUPERO DAL FORM L'ANNO PREVISTO
strData_prevista = request.form("Data_prevista")
'RECUPERO DAL FORM L'ANNO EFFETTIVO
strData_effettiva = request.form("Data_effettiva")
'RECUPERO IL NUMERO DI UNITA' DA MOVIMENTARE
strN = request.form("n")
'AGGIORNO LA TABELLA SECONDARIA
strSQL = "UPDATE TBL_SEC set ... where id = "& strID
conn.execute StrSQL
'ESEGUO LA QUERY DI SELEZIONE SULLA TABELLA GENERALE
sSQL = "select * FROM TBL_GEN where id = "& strID
Set rs = server.CreateObject("ADODB.Recordset")
rs.Open sSQL, conn, 3, 3
'SE DATA EFFETTIVA E' UGUALE A 2006
if strData_effettiva = 2006 then
S_mov = rs("2006") + (strN)
Sql = "UPDATE TBL_GEN set "
Sql = Sql & " 2006 = "& S_mov &" "
Sql = Sql & " where id = "& strID
'SE DATA EFFETTIVA E' UGUALE A 2007
ElseIf strData_effettiva = 2007 then
S_mov = rs("2007") + (strN)
Sql = "UPDATE Prog_Petersen set "
Sql = Sql & " 2007 = "& S_mov &" "
Sql = Sql & " where id = "& strID
'SE DATA EFFETTIVA E' UGUALE A 2008
ElseIf strData_effettiva = 2008 then
S_mov = rs("2008") + (strN)
Sql = "UPDATE Prog_Petersen set "
Sql = Sql & " 2008 = "& S_mov &" "
Sql = Sql & " where id = "& strID
End if
'SE DATA PREVISTA E' 2006
if strData_prevista = 2006 then
S_mov = rs("2006") - (strN)
SQLL = "UPDATE TBL_GEN set "
SQLL = SQLL & " 2006 = "& S_mov &" "
SQLL = SQLL & " where id = "& strID
ElseIf strData_prevista = 2007 then
S_mov = rs("2007") - (strN)
SQLL = "UPDATE TBG_GEN set "
SQLL = SQLL & " 2007 = "& S_mov &" "
SQLL = SQLL & " where id = "& strID
ElseIf strData_prevista = 2008 then
S_mov = rs("2008") - (strN)
SQLL = "UPDATE TBL_GEN set "
SQLL = SQLL & " 2008 = "& S_mov &" "
SQLL = SQLL & " where id = "& strID
End if
'ESECUZIONE DELLE DUE QUERY
conn.execute Sql
conn.execute Sqll
'CHIUDO E DISTRUGGO RS
rs.Close
Set rs = Nothing
'CHIUDO E DISTRUGGO CONNESSIONE
conn.Close
Set conn = Nothing