Ok, chiaro ..
Credo di essere riuscito ad ottenere quello che ti serve..
però ci sarebbe un'aggiunta da effettuare sul tuo mdb..
prendiamo una tabella simile alla tua, ma fatta in quest'altro modo:
id --> contatore autoincrementante
campo1 --> numero ordinato crescente
campo2 --> valore da aggiornare
In poche parole dovresti aggiungere l'id autoincrementante..
A questo punto, con la seguente query ricavi il risultato voluto (in sola lettura):
SELECT
T1.id,
T1.campo1,
T2.campo1,
IIf(T1.campo1=T2.campo1,0,1) AS Risultato
FROM
TABELLA_DATI AS T1
LEFT JOIN TABELLA_DATI AS T2
ON T1.id+1=T2.id;
Per aggiornare il campo due, basta utilizzare una UPDATE JOIN:
UPDATE
TABELLA_DATI AS T1
LEFT JOIN TABELLA_DATI AS T2 ON T1.id+1=T2.id
SET
T1.campo2 = IIf(T1.campo1=T2.campo1,0,1);
Questo dovrebbe aggiornarti la tabella correttamente..
Ora provo a spiegare quello che ho fatto..
Come puoi vedere dalla prima SELECT, tramite l'id posso mettere in SELF JOIN (una join da una tabella a se stessa) la TABELLA_DATI. La relazione non è una join basata sulla semplcie uguaglianza di campi, ma è fondata sul legame tra l'id della seconda e l'id+1 della prima. In questo modo, pongo il record di una in relazione col successivo della stessa. La funzione IIF mi serve per controllare se i due campi, ora disposti sulla stessa riga, sono uguali ed in caso positivo, metto lo 0.
Con l'update aggiorno il campo "campo2" utilizzando la UPDATE JOIN, con la relazione indicata nella select (che ho scritto solo per farti cogliere la relazione e ciò che otterrai).
Fammi sapere se è quello che volevi..
ciao!
Alx81 =)
http://blogs.dotnethell.it/suxstellino