Finestra di selezione percorso/file

Anonimo
2011-02-07T09:09:00+00:00

Ciao a tutti!

Per selezionare un percorso e salvarlo in “CasellaPercorso”, utilizzo il seguente codice:

With Application.FileDialog(msoFileDialogFolderPicker)

   .Title = "Seleziona percorso"

   If  .Show  Then Me!CasellaPercorso = .SelectedItems.Item(1)

End With

Questo codice funziona bene, però se ci sono metodi migliori fatemi sapere!

Volevo che nella ComboBox “Nome” della “Finestra di selezione” apparisse come percorso predefinito, quello del Desktop. 

Pensavo quindi di utilizzare la stringa:    Environ("UserProfile") & "\Desktop” che dovrebbe essere compatibile con qualsiasi

sistema operativo, però non saprei come inserirla nel codice… Come potrei fare?

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

13 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2011-02-13T06:51:27+00:00

    Ciao Giorgio! Grazie dei tuoi chiarimenti!! Leggendo l’articolo che mi hai suggerito, ho capito che le API

    si possono utilizzare anche con Office/Sistemi a 64 bit, adattando e convertendo i “Declare statements”

    tramite opportuni attributi.

    Su internet avevo trovato il seguente codice, utilizzato per selezionare files Excel:

       Dim NomeFile As String  

       Dim xlApp As Object

       Set xlApp = CreateObject("Excel.Application")

       Do Until NomeFile <> ""

           NomeFile = xlApp.GetSaveAsFilename(InitialFileName:=Environ("UserProfile") & "\Desktop", _

                                           fileFilter:="Excel Files (*.xlsx), *.xlsx", _

                                           Title:="Seleziona nome file")

           DoEvents

       Loop

       MsgBox NomeFile     ‘per visualizzare il file selezionato

       ………

       xlApp.Quit

       Set xlApp = Nothing

    Cosa ne pensate di questo metodo?  (Dovrebbe funzionare con tutte le versioni di Access) 

    E’ possibile creare un metodo simile, per selezionare un percorso anziché un file?

    C’è però un’anomalia: nel caso in cui si preme Annulla, NomeFile prende il nome di “Falso”…

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-02-12T11:43:26+00:00

    Ciao Eulero,

    la controindicazione per il metodo FileDialog è che non funziona con la versione Runtime di Access.

    Per quanto riguarda le API in abiente 32/64 bit leggi questo articolo. Compatibility Between the 32-bit and 64-bit Versions of Office 2010

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-02-11T19:05:54+00:00

    Grazie sia a David che a Cinzia!!

    Utilizzando il suggerimento di David, potrei aggiustare il mio codice come segue:

    With Application.FileDialog(msoFileDialogFolderPicker)

       .Title = "Seleziona percorso"

        .InitialFileName = Environ("UserProfile") & "\Desktop"

                    If .Show Then Me!CasellaPercorso = .SelectedItems.Item(1)

    End With

    Premesso che io utilizzo A2007 e vorrei che il mio db funzionasse bene per le versioni >= A2007

    volevo chiarire alcune cose sui due metodi suggeriti:

    1)  Il metodo FileDialog (suggerito da David) fa riferimento alla Microsoft Office 12.0 Object Library quindi

    se non sbaglio è disponibile solo per A2007 e A2010 e probabilmente per versioni future.

    Ci sono controindicazioni sull’utilizzo di questo metodo?

    2)  Il metodo Common Dialog API (suggerito da Cinzia) funziona con tutte le versioni di Access.

    Però mi sembrava di aver letto da qualche parte che l’utilizzo delle API potrebbe non andare

    d’accordo con le versioni di Office a 64 bit. Sapete qualcosa al riguardo?

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2011-02-07T09:37:58+00:00

    Ciao Eulero,

    Prova in questo modo:

        Set fd = Application.FileDialog(msoFileDialogFolderPicker)

        With fd

                .InitialFileName =Environ("UserProfile") & "\Desktop\”         'Qui definisci la directory di partenza e, se vuoi, il nome predefinito del file

                .Title = "Sfoglia cartelle"

                .ButtonName = "Ok"

                .AllowMultiSelect = False

                .InitialView = msoFileDialogViewDetails

                .Show

                For Each objfl In .SelectedItems

                    FileName = objfl

                Next objfl

        End With

    set fd = Nothing

    NomeDirectory = FileName

    David

    La risposta è stata utile?

    0 commenti Nessun commento