|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
ACCESS 2000 campo contatore dinamico
Come posso fare per avere un campo contatore in una tabella che mi numera progressivamente a partire da 1, ma che quando cancello un record mi coservi la numerazione progressiva?
Cioè se ho 5 record e ne cancello uno, vorrei che il campo contatore mi rinumerasse i record: prima 1 2 3 4 5 dopo 1 2 3 4 |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
Vorrei che mi facesse questo anche quando cancello un record direttamente nella tabella.
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Temo che non si possa fare, i campi contatore non sono modificabili
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Mar 2001
Messaggi: 2871
|
Quote:
ps. se ho detto una boiata censuratemi, datemi fuoco e bannatemi!
__________________
Affittasi questo spazio pubblicitario a sole donne belle e giovani. |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Riprendi la numerazione dal contatore più alto, ma quella dei record esistenti non cambia...
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
In passato ho verificato che addirittura eseguendo un AddNew seguito da un CancelUpdate, il "contatore" salta ugualmente un valore al prossimo inserimento.
In effetti non è richiesto che un contatore proceda senza buchi (per queste cose puoi usare dei comuni campi numerici di appoggio), ma è specificamente studiato per garantire l'univocità dei valori; alcuni dbms (postgresql ad esempio) consentono di modificare il valore di un campo contatore, una volta lo ho fatto e ho capito subito che la "cura" è peggiore del "male". Riguardo alla compattazione, non sapevo che avesse questo effettu sui contatori.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Mar 2001
Messaggi: 2871
|
Le cose sono due: o la compattazione di Access 2002 lavora in maniera diversa (non credo) oppure quando c'è l'integrità referenziale rimangono dei buchi.
Il problema è che non è bello consegnare un db vuoto che comincia da id 10. Anche se nella documentazione del programma c'è un sistema un po' complicato per azzerare le chiavi...ma forse non ne vale la pena. Saluti. ps. Sto pensando di valutare FileMaker per creare delle applicazioni, visto che con access spesso si deve mettere mano al codice vbe. Che ne dite?
__________________
Affittasi questo spazio pubblicitario a sole donne belle e giovani. |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Una soluzione c'è per azzerare i contatori...
Fai un nuovo DB edimporti da quello vecchio solo la struttura di tutte le tabelle... |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Si, questo mnetodo l'ho utilizzato a volte e funziona. E' però un pò macchinoso, puoi farlo qualche volta, ma non in continuazione.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Certo...
Un altro modo simile all'altro è di copiare solo la struttura della tabella all'interno del database corrente, cancellare la tabella precedente e rinominare la tabella creata con il nome di quella precedente... Magari questo metodo è più facilmente automatizzabile... |
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
Allora tanto vale che cancello il campo contatore per poi inserirlo di nuovo!
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Mar 2001
Messaggi: 2871
|
Quote:
Ho provato così e funziona!! Ciao, Fabio
__________________
Affittasi questo spazio pubblicitario a sole donne belle e giovani. |
|
|
|
|
|
|
#13 |
|
Member
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
|
Il mio scopo era quello di farlo in automatico ogni volta che cancello un record direttamente dentro la tabella!
E' chiaro che manualmente basta cancellale il campo ID per poi reinserirlo, ma come si può fare perchè la cosa avvenga automaticamente ogni volta che cancello un record? |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:04.



















