Lo snippet è molto utile quando è necessario memorizzare per un utilizzo futuro (o per incollare in una casella di testo) il percorso assoluto di un file o di una cartella.
In questo esempio lo scenario è il seguente: disponiamo 1) di una casella di testo e 2) di un pulsante che avrà il compito di eseguire il codice.
La casella di testo, giusto per intenderci, la denominiamo casella_di_testo.
Abbiamo bisogno di un terzo dato di progetto: il percorso assoluto (Path) per dire a VBA da quale disco e quale cartella dovrà iniziare a navigare. Chiamiamo questa path CartellaIniziale.
Il primo passo del programma, premuto il pulsante, sarà di verificare che la casella di testo sia vuota. In caso contrario chiederà all’utente se veramente decide di proseguire con una nuova assegnazione.
Il passo successivo è documentato con tutti i commenti del caso: vi chiederà dove andare a pescare il file (o la cartella) e incollerà il percorso assoluto nella casella di testo.
ATTENZIONE. Considerate che la casella di testo dovrà contenere un LINK. Se tale casella di testo è “legata” ad un campo “collegamento ipertestuale”, tutto funzionerà per il meglio.
SE viceversa effettuerete una prova su una form vuota, al posto della casella di testo converrà utilizzare un oggetto “Collegamento ipertestale” dagli strumenti di progettazione. In questo caso “Me.caselladitesto.value” dovrà diventare “Me.etichettaxxx.Caption“!
Dim CartellaIniziale as string '- - - - - - -ATTENZIONE Quella che segue è una path di esempio!!! - - - - CartellaIniziale = "D:\Documents\" If Me.casella_di_testo.Value <> "" Then vbresponse = MsgBox("il campo link non è vuoto. Sei sicuro di volerlo modificare?", vbYesNo, "Attenzione!") 'se decide di continuare, vai a label 30 altrimenti esci (label 100) If vbresponse = vbYes Then GoTo 30 Else GoTo 100 End If 30 Const msoFileDialogFilePicker As Long = 3 '3=crea una finestra di dialogo di tipo FilePicker. Usare 4 se si desidera un FolderPicker Dim fd As Object 'Crea un oggetto FileDialog come finestra di dialogo per il File Set fd = Application.FileDialog(msoFileDialogFilePicker) 'Usiamo un blocco With...End per riferirci all'oggetto FileDialog With fd 'Setta la cartella iniziale dimensionata e assegnata all'inizio. .InitialFileName = CartellaIniziale .Title = "Seleziona l'allegato" 'Usa il metodo Show per mostrare la casella di dialogo File Picker e poi tornare all'azione. 'Se l'utente decide di inserire il link in casella_di_testo... If .Show = -1 Then ' DoCmd.GoToRecord , "", acNewRec Me.casella_di_testo.Value = "#" & .SelectedItems(1) & "#" 'Se l'utente preme annulla... Else End If End With 'Setta Variabile oggetto a Nothing. Set fd = Nothing 100[mx_youtuber type="video" id="yl720C4NFxM"]
Buon lavoro!