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:
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.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 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??