Allegare immagini tramite percorso relativo

di il
8 risposte

Allegare immagini tramite percorso relativo

Salve a tutto il forum,

avrei bisogno di un aiuto per risolvere un problema con il link delle immagini al database. Nel mio progetto ho deciso di inserire le immagini nelle varie maschere utilizando il percorso della foto da allegare come argomento del campo Origne Controllo dell'oggetto Immagine. Il mio problema è che mi linka il percorso assoluto della foto mentre a me servirebbe un modo per linkare il percorso relativom in modo da poter rendere il database portatile. Purtroppo le mie conoscenze di VBA sono vermante inconsistenti e avrei bisogno di una mano per il codice.

Sotto vi metto quello attualmente implementato

Grazie a tutti

Alex

8 Risposte

  • Re: Allegare immagini tramite percorso relativo

    Prima cosa attiva nel VBE Setup la dichiarazione esplicita delle Variabili, questo farà apparire la seconda riga e sarà di aiuto per segnalare anomalie nella compilazione.

    Option Compare Database
    Option Explicit

    Quindi devi strippare il FileName dal Percorso completo e concatenarlo al PATH relativo…

    Function FileNameFromPath(strFullPath As String) As String
        FileNameFromPath = Right(strFullPath, Len(strFullPath) - InStrRev(strFullPath, "\"))
    End Function

    a questo punto, da qualche parte avrai il Percorso Relativo, io lo metterei in un Modulo Public come variabile ambiente, o come Property del DB, o salvata nel Registry che recuperi su AutoExec:

    Option Compare Database
    Option Explicit
    
    PUBLIC PERCORSORELATIVO="C:\...\...\"
    
    Private Sub Command17_Click()
    	Dim sFileName	As String
    	sFileName=SelezionaFile()
    	if Len(sFileName)>0 Then sFileName=FileNameFromPath(sFileName)
    	sFileName=PERCORSORELATIVO & sFileName
    	Me!Fotografia.Value=sFileName
    End Sub

    Ora nella tua variabile [Fotografia] sinceramente non so cosa ci fai ma in quel codice non fa nulla… vedi tu, usa le Default Properties sempre e sempre la Root del controllo…

    Me!Fotografia.Value=sFileName
  • Re: Allegare immagini tramite percorso relativo

    Oddio non ci sto capendo nulla….

    Fotografia è una casella dove incollo il percorso del file e poi lo uso come argomento del campo Origine Controllo dell'immagine.

    Option Compare Database
    Option Explicit
    
    PUBLIC PERCORSORELATIVO="C:\...\...\"

    Per questa parte non posso usare la funzione CurrentProject.Path e concatenare a seguire la sottocartella e nome dell'immagine?

    non so come fare però con il codice… :(

    quello che vorrei fare ad esempio è selezionare (o scrivere il nome della cartella da memorizzare in un campo della tabella, nel mio caso dell'anagrafica persona) 

    Questa cartella sarebbe una cartella all'interno della directory del database es. FotoMarioRossi,

     usare questo nome per poterlo usare insieme al nome della foto ( da selezionare con il metodo che ho messo sopra e magari “Strippare” il nome) e concatenarla al CurrentProject.Path, infine unsare tutta questa stringa come argomento dell'Origine Controllo dell'oggetto Imagine.

    Come farlo non saprei

    Alex

  • Re: Allegare immagini tramite percorso relativo

    Sotto metto un esempio per meglio spiegarmi

    Ho aggiunto una casella di testo dove in origine dati ho messo =CurrentProject.path e infatti mi restituisce il percorso del database.

    Ho bisogno di una una procedura che selezionata la foto, con la funzione che avevo messo sopra, mi restituisca il nome della Cartella MarioRossi e il nome della foto in modo da poterla concatenare ad esempio =CurrentProject.Path & “\”  & MarioRossi\images.jpg, così anche spostando il database con la funzione CurrentProject.Path mi trova sempre l'immagine.

    Alex

  • Re: Allegare immagini tramite percorso relativo

    20/05/2024 - alexsgv ha scritto:


    Oddio non ci sto capendo nulla….

    Fotografia è una casella dove incollo il percorso del file e poi lo uso come argomento del campo Origine Controllo dell'immagine.

    Option Compare Database
    Option Explicit
    
    PUBLIC PERCORSORELATIVO="C:\...\...\"

    Per questa parte non posso usare la funzione CurrentProject.Path e concatenare a seguire la sottocartella e nome dell'immagine?

    non so come fare però con il codice… :(

    quello che vorrei fare ad esempio è selezionare (o scrivere il nome della cartella da memorizzare in un campo della tabella, nel mio caso dell'anagrafica persona) 

    Questa cartella sarebbe una cartella all'interno della directory del database es. FotoMarioRossi,

     usare questo nome per poterlo usare insieme al nome della foto ( da selezionare con il metodo che ho messo sopra e magari “Strippare” il nome) e concatenarla al CurrentProject.Path, infine unsare tutta questa stringa come argomento dell'Origine Controllo dell'oggetto Imagine.

    Come farlo non saprei

    Alex

    Ho modificato così la tua funzione:

    Però, dovrei estrarre oltre al nome, anche la cartella e non so come si fa…

    Il percorso in questo esempio è d:\DB\MarioRossi\images.jpg, attualmente la funzione da me modificata mi restituisce D:\DB\images.jpg

  • Re: Allegare immagini tramite percorso relativo

    A cosa ti serve la Folder…?

    Se devi recuperarla, non è che basta dire NON SO COME SI FA… si usano le funzioni di manipolazione stringhe come ti ho mostrato per l'estrazione del nome, la moidifichi e sei a posto…

  • Re: Allegare immagini tramite percorso relativo

    20/05/2024 - @Alex ha scritto:


    A cosa ti serve la Folder…? Pensavo di plottarla in una casella come promemoria… ma ne posso fare anche a meno

    Se devi recuperarla, non è che basta dire NON SO COME SI FA… si usano le funzioni di manipolazione stringhe come ti ho mostrato per l'estrazione del nome, la moidifichi e sei a posto… Lo so…ma non sono capace davvero….mi mancano le basi…

  • Re: Allegare immagini tramite percorso relativo

    20/05/2024 - alexsgv ha scritto:

    Se devi recuperarla, non è che basta dire NON SO COME SI FA… si usano le funzioni di manipolazione stringhe come ti ho mostrato per l'estrazione del nome, la moidifichi e sei a posto… Lo so…ma non sono capace davvero….mi mancano le basi…

    Questo è un problema, ma se fai qualche prova dopo aver studiato le istruzioni principali anche provando l'esempio che ti ho dato io pronto per l'estrazione del NomeFile…

    In questo caso devi approcciare al contrario, rimuovi dalla stringa quello che c'è dopo l'ultimo carattere “\” incluso il carattere, poi cerchi il successivo “\” sempre partendo dal fondo… a quel punto hai l'ultima Cartella… sempre sia una bella idea tecnicamente… ma questo lo vedrai tu.

    Ora devi metterci del tuo, se vorrai…

  • Re: Allegare immagini tramite percorso relativo

    Leggi questo documento

    Immagini in maschera e report.docx

Devi accedere o registrarti per scrivere nel forum
8 risposte