rbianco
17-03-2004, 09:31
Ciao a tutti.
Un db che ho costruito con Access 2000, in momenti random, quando tento di aggiungere nuovi record usando le maschere da me create mi dà errore.
La cosa che voglio evidenziarvi è che, facendo un "Compatta e Ripristina database", tutto torna a posto: ri-eseguo le identiche operazioni che prima mi davano errore, e funziona tutto!
Il punto ovviamente è che non voglio dover dare un "Compatta e Ripristina database" due volte al giorno, senza capirne il motivo.
Pensavo una causa potesse essere la dimensione della tabella principale, ma ho guardato le specifiche dei file MDB e siamo ben lontani dai limiti massimi, sia di dimensioni/quantità dei dati contenuti (tabelle, campi, tutto) sia di MB occupati dal file MDB stesso.
Se non arrivo ad una soluzione, sarebbe ugualmente interessante una macro o q.c. del genere in modo che, ad ogni apertura (o chiusura) del db, venisse comandato un "Compatta e Ripristina database" in automatico - soluzione temporanea, ma probabilmente efficace. :)
Questo il TRANCIO di codice (tipo pizza-al-pezzo :D) nel quale capita l'errore, in particolare tentando l'esecuzione della riga marcata con "<<<<<<":
Private Sub pulsanteSalva_CLICK()
On Error GoTo ERRORE
Set MIODB = DBEngine.Workspaces(0).Databases(0)
Set MIOSET = MIODB.OpenRecordset("tabellaClienti", DB_OPEN_TABLE)
MIOSET.MoveLast
nuovoID = (MIOSET![IDCliente] + 1)
MIOSET.AddNew
MIOSET![IDCliente] = nuovoID
MIOSET![RagioneSociale] = testoNuovoCliente
MIOSET.Update <<<<<<<<<<<<<<<<<<<<<<
MIOSET.Close
MsgBox ("Aggiungere i rimanenti dettagli nella Gestione Clienti.")
Global_ApriProx = True
DoCmd.Close
Exit Sub
ERRORE:
MsgBox "Errore!"
Exit Sub
End Sub
Grazie per il vostro commento.
Un db che ho costruito con Access 2000, in momenti random, quando tento di aggiungere nuovi record usando le maschere da me create mi dà errore.
La cosa che voglio evidenziarvi è che, facendo un "Compatta e Ripristina database", tutto torna a posto: ri-eseguo le identiche operazioni che prima mi davano errore, e funziona tutto!
Il punto ovviamente è che non voglio dover dare un "Compatta e Ripristina database" due volte al giorno, senza capirne il motivo.
Pensavo una causa potesse essere la dimensione della tabella principale, ma ho guardato le specifiche dei file MDB e siamo ben lontani dai limiti massimi, sia di dimensioni/quantità dei dati contenuti (tabelle, campi, tutto) sia di MB occupati dal file MDB stesso.
Se non arrivo ad una soluzione, sarebbe ugualmente interessante una macro o q.c. del genere in modo che, ad ogni apertura (o chiusura) del db, venisse comandato un "Compatta e Ripristina database" in automatico - soluzione temporanea, ma probabilmente efficace. :)
Questo il TRANCIO di codice (tipo pizza-al-pezzo :D) nel quale capita l'errore, in particolare tentando l'esecuzione della riga marcata con "<<<<<<":
Private Sub pulsanteSalva_CLICK()
On Error GoTo ERRORE
Set MIODB = DBEngine.Workspaces(0).Databases(0)
Set MIOSET = MIODB.OpenRecordset("tabellaClienti", DB_OPEN_TABLE)
MIOSET.MoveLast
nuovoID = (MIOSET![IDCliente] + 1)
MIOSET.AddNew
MIOSET![IDCliente] = nuovoID
MIOSET![RagioneSociale] = testoNuovoCliente
MIOSET.Update <<<<<<<<<<<<<<<<<<<<<<
MIOSET.Close
MsgBox ("Aggiungere i rimanenti dettagli nella Gestione Clienti.")
Global_ApriProx = True
DoCmd.Close
Exit Sub
ERRORE:
MsgBox "Errore!"
Exit Sub
End Sub
Grazie per il vostro commento.