Newsgroup: it.comp.appl.access
Titolo: Errore strano!

Ho realizzato un database separando le tabelle dal resto. Premetto che il
collegamento delle tabelle l'ho effettuato utilizzando queste righe di
codice all'apertura della maschera principale per consentire di aprire il db
contenente i dati, protetti da password:
For Each i In db.TableDefs
    If i.Connect <> "" Then
        On Error Resume Next
        DoCmd.DeleteObject acTable, i.Name
        On Error GoTo 0
    End If
Next i
ChkPassword
LocalPassword = Pass_Word_
On Error GoTo Form_Open_Err
If LocalPassword = "" Then
    Set RemoteDB = DBEngine.Workspaces(0).OpenDatabase(T_FileName)
Else
    Set RemoteDB = DBEngine.Workspaces(0).OpenDatabase(T_FileName, False,
False, ";PWD=" & LocalPassword)
End If
On Error GoTo 0
Set RSt = RemoteDB.OpenRecordset("t_DefaultLinks")
    If RSt.RecordCount = 0 Then
        MsgBox "t_DefaultLinks  in  " & T_FileName & "  è vuota." & vbCrLf &
"Collegamenti non aggiornati."
        Exit Sub
    End If
' Collega tutte le tabelle elencate in (remote) t_DefaultLinks, che contiene
i nomi 'delle tabelle da collegare
Do Until RSt.EOF
    Set NewLinkedTable = db.CreateTableDef(RSt![TableName])
    NewLinkedTable.Connect = ";DATABASE=" & T_FileName
    NewLinkedTable.SourceTableName = RSt![TableName]
    db.TableDefs.Append NewLinkedTable
Link_Continua:
    On Error GoTo 0
    RSt.MoveNext
Loop
RemoteDB.Close
In fase di chiusura del db faccio scollegare, sempre da codice, le tabelle
per non farle consultare in caso di apertura con il tasto SHIFT del db
contenente le maschere.
Bene, tutto funziona alla perfezione nel 99% dei casi.
A volte però, nel momento in cui lascio il db aperto ridotto ad icona
(magari per un pò di tempo) e poi vado a consultare gli archivi mi compare
il messaggio di errore di runtime n.3343 o 64330 che mi avvisa: "FORMATO DI
DATABASE NON RICONOSCIUTO", riferendosi al db contenente le tabelle.
Quest'ultimo, inoltre, anche dopo la chiusura del programma rimane aperto
(file con estensione ldb con icona visualizzante un ingranaggio meccanico).
Sono quindi costretto a ripristinare il db contenente le tabelle (altrimenti
non si apre), per mia fortuna finora sempre concluso con successo.
In conclusione, vorrei capire il perchè questo succede (non solo a me visto
che è capitato anche ad un mio amico che usa lo stesso programma su un altro
pc) e soprattutto il perchè accade ogni tanto (e non solo a me visto che è
capitato anche ad un mio amico che usa lo stesso programma su un altro pc).
Spero (spero) di essere stato sufficentemente chiaro.
Grazie.

    db.TableDefs.Append NewLinkedTable
qui aggiungerei:
db.tabledefs.refresh
--
make it idiot proof and someone will make a better idiot.
--
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/

Grazie per i consigli. Li ho gią attuati.
Mi č venuto un sospetto.
Sulla maschera principale contenente il codice per collegare le tabelle ho
inserito un evento "Timer" per far lampeggiare una etichetta (messaggio
d'avviso) in determinati casi.
Non č che per caso questo evento timer, che va a controllare costantemente i
dati di una tabella, ogni tanto mi fa andare in tilt tutto?
Mah! Errore stupido ma fastidioso, soprattutto perchč viene fuori quando gli
pare.

dati di una tabella, ogni tanto mi fa andare in tilt tutto?
mmmh... a questopunto potrebbe anche essere... ci vorrebbe una prova
empirica, cioe' prova ad eliminare il lampeggio...
