Ho creato un database e per evitare dimensioni eccessive del file a causa delle numerose immagini, ho messo quest'ultime in una cartella esterna e le richiamo sul record tramite evento "Current" sulla maschera con il codice:
Private Sub Form_Current()
On Error GoTo 10
mydir = CurrentProject.Path
mypath = mydir & "\Immagini" & Me.File.Value & ".jpg"
Me.Immagine10.Picture = mypath
GoTo 20
10 'Errore di foto non trovata
mydir = CurrentProject.Path
mypath = mydir & "\Immagini" & "Palla.jpg"
Me.Immagine10.Picture = mypath
20 'Tutto ok
End Sub
Tutto funziona correttamente, ma ho notato una cosa: quando mi sposto avanti indietro tra i record le dimensioni del database aumentano. Da ulteriori verifiche il database aumenta esattamente del valore delle immagini che carica di volta in volta sui record, ad esempio: se mi sposto di 3 record e i record richiamano immagini di 100, 200, 300K, le dimensioni del database aumentano di 600k, come se memorizzasse da qualche parte le immagini. Se copio tabelle, query, maschere e report in un nuovo database vuoto con formato e dati, il database passa da 200Mbs a 5Mbs. Sottolineo che le dimensioni aumentano senza inserire nessun dato o altro, ma solo spostandosi da un record all'altro. La compattazione del database non porta a nessuna diminuzione del file. Stessa cosa se creo un file di backup. Esiste un sistema per evitare tutto questo?