zio Ken ha scritto:
Ho sostituito la funzione come accennato nei post precedenti in maniera tale da eliminare le tabelle linkate su chiusura del db e ricrea il collegamento all'apertura del database (poi imposterà di eseguire i collegamenti dopo la login)
Per ora, i tempi di apertura sono calati intorno agli 8.66 secondi (cronometrato). Vi sono altre operazioni che potrei eseguire per snellire tale operazione? La mia preoccupazione è per quando vi saranno decine e decine di record nelle tabelle...
Ho 2 cose da proporti... delle quali però ho qualche dubbio che espongo insieme alle opzioni:
1° PRIMA
Prima del Ciclo di LINK, dovresti aprire un RS su un'Oggetto Database che punta ad una Tabella del BE...
Quindi:
Dim dbExt As DAO.Database
Dim rsDummy As DAO.Recordset
Set dbExt = OpenDatabase(Path)
Set rsDummy = dbExt.OpenRecordset("NomeTabella", dbOpenSnapshot, dbReadOnly)
' Da quì esegui il RELINK
' Terminato il Relink
rsDummy.Close
dbExt.Close
Set dbExt=nothing
Set rs=nothing
Ovviamente devi verificare se è vero che i tempi si accorciano, e se fosse vero sicuramente è visibile la differenza.
P.S. Dimenticavo, la speranza è che la funzione TransferDatabase si appoggi alla Connessione presente nel POOL...
2° SECONDA
Invece di Cancellare le LINKED e RELINKARLE, potresti provare semplicemente a cancellare e ripristinare la Proprietà Connect...
Quindi su chiusura la rimuovi, e su Apertura puntando alle Linked presenti vai a scrivere la Connection String... (prima di farlo LEGGI come viene composta, con un semplice
DEBUG.PRINT CurrentDb.TableDefs("NomeLinkedTable").Connect
Questo secondo metodo tuttavia, richiede la consapevolezza che se fai modifiche al BE, serve verificarne la reale funzionalità...
Tutto da Testare ovviamente...