PDA

View Full Version : [VB6] Diminuire il Contatore


mardavikia
30-11-2007, 19:02
Ciao a tutti

Ho un grosso problema.

Ho creato una semplice rubrica in VB6 (si ho iniziato a smanettarci ora :D )
funziona tutto, l'unico problema che ho è che quando vado a cancellare un record dal DB (Access 2003) Ovviamente il contatore non viene modificato, mi spiego:

Es

ID 1 Nome: Gino
ID 2 Nome: Paolo
ID 3 Nome: Mario

Se io cancello ID 2 e vado poi ad aggiungere un'altro nominativo questo prende ID 4.

Esiste un modo che quando cancello un nominativo il contatore vada a scalare su tutti gli altri? Mi Rispiego

Es

ID 1 Nome: Gino
ID 2 Nome: Paolo
ID 3 Nome: Mario

Se Cancello ID 2 Nome: Paolo, ID 3 Nome: Mario diventa ID 2 Nome: Mario


Se mi sono spiegato male mi scusassero :P

Grazie a chi mi risponderà :)

Jam3s
30-11-2007, 19:32
Non dipende da vb 6 ma dal database e direi che non si può fare quello che chiedi (ed è cmq sconsigliabile).
Il punto è che quell'ID è sicuramente settato come chiave primaria cioè come campo che identifica univocamente un record e come tale non può essere modificato.
Se proprio vuoi un contatore puoi mettere un altro campo che non sia una chiave primaria ma che setti tu e magari decidi di impostare programmaticamente al primo intero che non sia già presente nel db in quella colonna.
Ti sconsiglio cmq di fare in modo che qnd si cancella un utente cambiano i contatori di tutti gli altri perchè dovresti fare molte scritture in sequenza ed è un'operazione cmq onerosa, potresti fare in modo che una nuova voce prende il posto di quella vecchia.

ES.
ID(chiave primaria) Contatore(intero) Nome
1 1 Mario
2 2 Paolo
3 3 Anna

Se cancelli Paolo le altre voci restano esattamente come sono e alla creazione
di una nuova voce (Giovanni) avresti:


ID(chiave primaria) Contatore(intero) Nome
1 1 Mario
3 3 Anna
4 2 Giovanni