24/03/2025 - amorosik ha scritto:
Si, e' probabile che non abbia capito quello che vuoi dire, cosa volevi dire esattamente?
Se vedi l'esempio di codice sopra, la prima riga e' un TableDefs.Delete, perche' dici "..se non cancelli le tabelle.."?
Il suggerimento sarebbe stato questo:
Dim tdf As DAO.TableDef
' Sulle Tabelle senza DELETE/APPEND
Set tdf = DBEngine(0)(0).TableDefs("TuaTabella")
tdf.Connect = vbNullString
tdf.RefreshLink
' All'apertura il contrario
Set tdf = DBEngine(0)(0).TableDefs("TuaTabella")
tdf.Connect = "Tua Connection String"
tdf.RefreshLink
Detto questo, ho fatto una prova e pare che la Connect property sia cancellabile ma senza effetto, quindi si cancella se la metti a vbNullstring e se la rileggi non è valorizzata, ma aprendo la Linked pare continui a funzionare, e questo è probabilmente il motivo per il quale anche nel caso di SWITCH del BE, sono stati evidenziati vari malfunzionamenti, ed è sempre consigliato di fare il DELETE(alla chiusura), il CREATE e APPEND.
Quindi quello che ti avevo suggerito sopra non serve a nulla, ora io in realtà non l'ho mai usato, per il semplice fatto che non ho mai notato rallentamenti così pesanti, è anche vero che non ho mai avuto la necessità di collegare 600 Tabelle, nel mio caso massimo un centinaio o giù di li.
Io tuttavia mi muovevo in questo modo che potrebbe realmente avere un impatto importante e fossi in te se non lo hai già testato lo proverei:
1) Su AutoExec Aprivo un RS Fittizio ad una Tabella di servizio creata appositamente, basta una cosa simile "SELECT * FROM DummyTable WHERE 1=0", va bene anche una Maschera in modalità Hidden, da mantenere APERTO per tutta la sessione del Client, io usavo questa soluzione della Maschera per poi inibire la chiusura con ALT+F4 gestendo l'evento UNLOAD...
2) Aperto il RS, inizi ad effettuare il Ciclo di CreateTabledefs ed Append, probabilmente la differenza di performance è giustificata dal fatto che avendo una Connessione già instaurata nel Pool delle connessioni, non deve Aprirla ogni volta che accedi a CreateTabledef/Append.
Prova questo metodo, sono curioso di capire questo problema.
Questo accorgimento lo usavo sempre e rende più veloce anche l'apertura delle maschere con tanti dati...