Possiedo un'applicazione VB6/Access che occasionalmente incontra un problema con seme seme campo autonumber errato.Reimposta seme automatico
Diciamo che esiste una tabella MYTABLE con un ID campo numerico (che è anche la chiave primaria). Diciamo che al momento il valore massimo dell'ID è 1000. Quando l'applicazione inserisce un nuovo record (il valore dell'ID non viene fornito esplicitamente), per qualche motivo decide che il prossimo valore del campo autonumber è 950 (e non 1001 come dovrebbe essere) - quindi si verifica un errore di violazione della chiave primaria.
Ho trovato un articolo della Knowledge Base che descrive i miei sintomi: http://support.microsoft.com/kb/884185. In breve, essi suggeriscono di eseguire una query:
ALTER TABLE MYTABLE ALTER COLUMN ID COUNTER(1001,1)
Quando provo a fare questo, non riesce con "tipo di dati di campo non valido"
Il problema viene risolto se apro il database in Access e fare compatta/ripara, ma ho bisogno di essere in grado di risolvere tali problemi all'interno dell'applicazione: è installata su un paio di migliaia di PC in tutto il mondo e chiedere alle persone di compattare/riparare con Access non è un'opzione.
Uso DAO DBEngine.CompactDatabase
per eseguire la compattazione/riparazione all'interno dell'applicazione, ma non risolve il problema di seed e sono necessari alcuni trucchi aggiuntivi.
Spero che qualcuno ha un'idea per una soluzione, sono davvero vicino alla disperata
Grazie a tutti
fuori curosity, stai chiudendo il tavolo ** ** prima di correre 'ALTER TABLE ALTER MYTABLE COLONNA ID COUNTER (1001, 1) '? –
Se il codice si trova in un Access MDC/ACCDB, la lingua è VBA, non VB6. Si prega di precisare. – Fionnuala
@Otaku: Sì, sicuro Questa query ha esito negativo sia quando viene eseguita all'interno di Access che quando viene eseguita tramite DAO. La cosa strana è questa: se in Access I cancella il campo autonumber e poi creo esattamente lo stesso campo, la query funziona. Sembra che ci siano diversi tipi di tipi di numeri autonome, ma non riesco a capire quale sia questa differenza – Incidently