Newsgroup: it.comp.appl.access
Titolo: Oggetto OLE e percorsi relativi dei file

Ragazzi, se utilizzo un campo oggetto OLE e vi inserisco un file con un
determinato percorso, (a me serve da CD) se cambio ad esempio la lettera del
drive il percorso non è più lo stesso e il file non viene trovato. Come
faccio ad utilizare i path relativi con questo tipo di campo?
Oppure conoscete qualche altro sistema?
Vi prego è molto improtante per me, nei post precedenti non ho trovato
niente purtroppo.
Grazie mille

 ha scritto nel messaggio
news:aSKBa.47367$lK4.1...@twister1.libero.it...

Che sappia io in ambiente Windows (e non è un problema di Access) i percorsi
sono sempre assoluti e non relativi come vorresti tu.
Per gestire in maniera corretta un archivio immagini in Access trovi almeno
tre FAQ nella Sezione General del Sito Comune (link qui sotto); leggitele
tutte e tre.
Tutte e tre si basano su una tecnica che esclude l'uso di oggetti OLE nei
quali incorporare i file immagine, ma partono dal presupposto di memorizzare
in un campo della tabella solamente il path completo del file immagine (
unità + percorso + nome file + extension), lasciando i file esterni al
database (nel tuo caso su CD). La visualizzazione delle immagini nelle
maschere e nei report lo otterrai inserendo in essi un controllo Immagine ed
impostando la sua proprietà Picture con il path memorizzato nel record.
Visto che a te l'unità che contiene i file immagine può cambiare, nel path
non memorizzare l'unità, che invece imposterai al momento della
visualizzazione (quindi della lettura da parte di Access) dell immagini.
Comunque non mi è chiara una cosa: se nel database incorpori e non cooleghi
i file immagine in un oggetto OLE, non dovresti avere più problemi di dove
si trovano le immagini durante la loro visualizzazione, visto che, una volta
memorizzate nel campo OLE poi Access non credo le vada più a cercarle sul
CD, visto che le ha ormai incorporate nel database: l'unico problema
dovrebbe essere determinato dalle dimensioni del database, che però non mi
sembra ti preoccupino particolarmente; il problema dovresti averlo solo se
le immagini, invece di incorporarle le colleghi, ma non vedo che vantaggio
ne avresti visto che a collegarle o incorporarle le dimensioni del database
non cambiano: il collegamento serve solamente ad un eventuale refresh
automatico delle immagini nel caso vengano modificate dopo la loro
memorizzazione nel database.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

i file che devo collegare purtroppo sono file audio e se ne incorporo solo
uno il databse mi diventa di oltre 4 mb...
è il collegamento invece a lasciare invariate le dimensioni.
L'idea del controllo picture è buona, ma controlli per la riproduzione non
posso metterne (dovrei metterne uno per ogni riga?) quindi mi serve
assolutamente un'altra dritta.... Viprego, è qestione di vita o di morte

 ha scritto nel messaggio
news:5oQBa.47845$Ny5.1...@twister2.libero.it...

Qualsiasi tipo di oggetto OLE non è gradito ad Access. O meglio la sua
gestione è più complessa.
Usa un campo testo e inserisci lì il percorso al file.
Ti sarà facilissimo impostare un nuovo percorso o lettera di unità diversa.
Per il player se il file è di tipo waw, ti basta usare solo una riga di
codice per suonare il pezzo, anche se usi la maschera tabellare o foglio
dati.
Se invece i file sonori sono di più tipi ti basta mettere nell'intestazione
della maschera un ocx che "suoni" più tipi di file e passargli il percorso
del record selezionato.
Può andare?
Ciao, Carlo

 ha scritto nel messaggio
news:5oQBa.47845$Ny5.1...@twister2.libero.it...

Se i files sono files audio e il tuo problema è catalogarli e riuscire ad
eseguirli da Access, protresti valutare questa soluzione.
Come ti avevo suggerito per i file immagine, memorizza in un campo di tipo
testo di una tabella il path del file audio: per il path vale quanto ti
avevo scritto nel mio messaggio.
Per eseguire il file musicale devi inserire nella maschera un pulsante di
comando; a fronte dell'evento "Su corrente" della maschera imposta la
proprietà Indirizzo coll. ipertestuale con il path del file audio. Ciò
fatto, quando pigerai il pulsante di comando verrà eseguito il brano
musicale il path completo (unità + percorso + nome file + extension) è
memorizzato nel  record corrente.
Se il pulsante di comando si chiama Suona e il path è contenuto in una
casella di testo chiamata Path, a fronte dell'evento "Su corrente" della
maschera genera il seguente codice VBA:
Private Sub Comando4_Click()
Me!Suona.HyperlinkAddress = Me!Path
End Sub
Naturalmente potrai personalizzare a tuo piacimento la parte del path
relativo all'unità (C:\, D:\, E:\ ecc. ecc.)
Quella che ti ho dato è forse la soluzione più facile da realizzare, ma in
alternativa puoi realizzare soluzioni facendo riferimento all'istruzione
Shell o alle API di Windows.


"dato che l'utente al quale si rivolge il mio database è un po idiota e si
scoccia di dover inserire a mano il percorso come posso fare?
Cmq siete davvero di grande aiuto, grazie

 Cmq siete davvero di grande aiuto, grazie
Vai sul Sito Comune e nella Sezione General leggi la FAQ di Stefano Bettini
intitolata "Richiamare la finestra di dialogo per la selezione di un file".
In alternativa, sempre nella Sezione General del Sito Comune, trovi una
soluzione al tuo problema nel database di esempio allegato alla FAQ di
Silvio Savoldi intitolata "Implementare un archivio di immagini".


grandissimo! invece del campo OLE posso utilizzare il campo collegamento
ipertestuale e quindi rendere i path relativi! sono contento grazie,
l'ultimo problemino, quando clicco sul collegamento, mi esce una finestra
che mi chiede se confermo l'apertura del collegamento... vorrei eliminarla,
č possibile?
Grazie ancora a tutti!

 Grazie ancora a tutti!
