General

6.160 Selezionare il path di un file immagine visualizzando il suo contenuto
  Roberto
Quasi sempre in Access si realizza l'archiviazione di una immaggine non memorizzandola direttamente in un campo di tipo Oggetto OLE di una tabella, ma memorizzando in un campo di tipo Testo il suo path completo; l'immagine verrà poi visualizzata in una maschera o in un report impostando tale path come proprietà Picture di un controllo Immagine.
Per ottenere il percorso ed il nome del file immagine da memorizzare nel campo di tipo Testo di cui sopra, normalmente si fa uso della finestra di dialogo Apri File di Windows; questo però presuppone che si conosca con esattezza sia il percorso della cartella che contiene l'immagine e sia il nome del file immagine.
La soluzione proposta nel database di esempio allegato a questa FAQ permette invece di ricavare il path completo di un file immagine di cui si conosce il percorso della directory che lo contiene ma di cui si ignora il nome e/o l'extention.
Di fatto, in una maschera popup, viene usata la finestra di dialogo per la selezione di una directory per scegliere appunto la cartella che contiene il file immagine di cui si vuole determinare il path, quindi in quella maschera vengono visualizzati, uno alla volta, i contenuti dei file immagine contenuti in quella directory; alla chiusura della maschera popup viene passato alla maschera chiamante il path completo dell'ultima immagine visualizzata.
L'apertura della finestra per la selezione della directory la si ottiene pigiando il piccolo pulsante di comando con i tre puntini posto alla destra della casella di testo che conterrà il percorso della cartella scelta.
Quando viene riaperta la maschera popup in essa risulterà selezionata, e quindi visualizzata, l'ultima immagine scelta durante la precedente apertura di tale maschera.
Da una casella combinata è possibile selezionare il tipo di file immagine: volendo si può anche scegliere di navigare tra tutti i tipi di file immagine presenti nella directory selezionata. L'extention dei file immagine con cui si desidera lavorare sono contenuti nella tabella TipoFile.
Nel database di esempio allegato a questa FAQ è mostrato anche come sia possibile, con un doppio clic su una immagine, zoomare su di essa ingrandendola.
I nomi dei file immagine contenuti nella directory selezionata vengono memorizzati nella tabella Links, in un campo di tipo Collegamento ipertestuale; così facendo nella maschera popup di cui sopra, con un clic del mouse sul nome dei file immagine, è possibile aprirli tramite l'editor di immagini predefinito per quel tipo di file; la selezione del file immagine si ottiene invece cliccando sul selettore record posto a sinistra del nome del file.

Normalmente durante il caricamento di una immagine in un controllo Immagine viene visualizzata una non richiesta barra di progressione, che in alcuni casi in Access 97 può anche provocare dei malfunzionamenti del computer: é possibile nascondere tale barra di progressione agendo sul Registro di Configurazione: nel caso d’immagine Jpeg, ad esempio, è sufficiente settare a “No” la seguente entry:
HKEY_LOCAL_MACHINE\Software\Microsoft\ Shared Tools\Graphics Filters\Import\JPEG\Options\ShowProgressDialog

Il codice VBA usato nel database di esempio allegato a questa FAQ fa riferimento alla libreria Microsoft DAO quindi, se lo si usa in un database prodotto con una versione di Access successiva ad Access 97 è necessario aggiungere al database tali riferimenti.
Il contenuto dei file immagine vengono visualizzati in controlli Immagine, ne consegue che, nel caso in cui si opera con una versione runtime del database, è possibile visualizzare solo immagini bitmap che non hanno bisogno di un filtro immagine. In quest'ultimo caso si evita il problema sostituendo i controlli Immagine con controlli ActiveX Kodak.

Download:
 
  SelezionaFoto.zip (96Kb) MSAccess97 database


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.