Ciao a tutti.

Ho sviluppato un applicazione tramite Access che lavora su dati in formato mdb.

Questa applicazione deve essere utilizzata su più pc che lavorano sugli stessi dati.
Ho piazzato i files mdb contenenti i dati in una cartella condivisa su un pc e su tutti i pc ho installato la mia applicazione Access.

All'avvio, ogni applicazione sa dove cercare i files mdb ed esegue una routine per connettere le tabelle collegate. La parte della routine che effettivamente connette le tabelle e questa:

codice:
Set fileRS = CurrentDb.OpenRecordset("SELECT * FROM _file_dati")

Do While Not fileRS.EOF
       
    strConn = ";DATABASE=" & path & fileRS("filename")
        
    Set tblRS = CurrentDb.OpenRecordset("SELECT * FROM _tbl_collegate WHERE file_dati = " & fileRS("ID_file"))
        
    Do While Not tblRS.EOF

        nomeTabella = tblRS("nomeTabella")

        CurrentDb.TableDefs.Delete nomeTabella
        If Err.Number = 3265 Then
            Err.Clear
        ElseIf Err.Number > 0 Then
            MsgBox "Errore " & Err.Number & ": " & Err.Description & vbCrLf & "Tabella: " & nomeTabella, vbCritical
        End If
        
        Set newTable = CurrentDb.CreateTableDef(nomeTabella)
        newTable.Connect = strConn
        newTable.SourceTableName = nomeTabella
        CurrentDb.TableDefs.Append newTable
        
        If Err.Number > 0 Then
            MsgBox "Errore " & Err.Number & ": " & Err.Description & vbCrLf & "Tabella: " & nomeTabella, vbCritical
            'Stop
            Err.Clear
        End If
        
        Set newTable = Nothing
        
        If Not masch Is Nothing Then    ' masch è una maschera che carico prima di cominciare questo ciclo ed ha una progressBar al suo interno
            masch.aumenta perc          ' aumenta la progressBar della maschera di caricamento (perc viene calcolato prima in base al num di tabelle)
        End If
    
    tblRS.MoveNext
    Loop
fileRS.MoveNext
Loop
Se avvio il programma dal computer su cui sono presenti i dati, tutto viene svolto molto velocemente. Ho appena il tempo di vedere la maschera di caricamento la cui progressBar si riempie in meno di un secondo.

Se avvio il programma da un pc diverso, l'operazione è più lenta, ma impiega in tutto un paio di secondi. Accettabile.

Se avvio il programma sempre da un pc diverso, ma lo faccio mentre anche un altro pc sta eseguendo il programma, questo processo impiega più di un secondo a tabella, impiegando in totale ben più di un minuto, avendo al momento 67 tabelle da caricare (ma in futuro potrebbero aumentare).

So che può sembrare inutile ricollegare le tabelle ad ogni avvio, ma sviluppandolo in una sede diversa e utilizzandolo su più pc, i percorsi delle cartelle sono sempre diversi e ricollegando ho la certezza di avere il percorso giusto.

Inoltre anche durante l'utilizzo, l'apertura delle maschere e dei reports è notevolmente rallentata durante l'utilizzo simultaneo da più postazioni.

è normale che sia così lento o ci può essere qualche cosa che non va nella mia rete o nei miei pc??