ragazzi ho questo problema:

devo ordinare alcuni record in una tabella access bindata a una datagrid modificando l'indice di ordinamento tramite 2 pulsanti "UP" e "DOWN"

mi spiego meglio:

SELECT * FROM Tab1 ORDER BY indiceORD

ID|Descrizione|indiceORD|
--|----------|---------|
1 |record1 | 3 |
2 |record2 | 6 |
3 |record3 | 9 |

devo poter spostare su e giu qualsiasi di questi record naturalmente selezionandoli nella datagrid agganciando l'id e l'indice dell'ordine.

teoricamente se seleziono il primo record con id 1 e premo il pulsante "DOWN" dovrei avere la seguente situazione aggiornando l'ordine:

UPDATE Ordine SET indiceORD = 7 WHERE ID= 1

ID|Descrizione|indiceORD|
--|----------|---------|
2 |record2 | 6 |
1 |record1 | 7 |
3 |record3 | 9 |

il problema principale si verifica quando seleziono il record con id 2 e premo "down" :

ID|Descrizione|indiceORD|
--|----------|---------|
1 |record1 | 7 |
2 |record2 | 8 |
3 |record3 | 9 |

gli indici sono attaccati in maniera tale da non permettere alcun spostamento sia in alto che in basso....

spero di essermi spiegato al meglio.....

sapete consigliarmi un algoritmo o un metodo migliore per risolvere il problema??

grazie anticipate