Condividi tramite

inserire percorso e nome file

Anonimo
2015-11-28T12:14:35+00:00

Salve a tutti,

ho creato una tabella ed una maschera al fine di inserire il percorso ed il nome dei file.

E' possibile, aprendo una finestra di dialogo su click comando (...) nel percorso_file il relativo percorso del file selezionato e far scrivere automaticamente nel nome_file il relativo nome del file?

Grazie a voi Tutti

Microsoft 365 e Office | Accesso | 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
Risposta accettata dall'autore della domanda
  1. Anonimo
    2015-11-28T17:31:02+00:00

    ciao NebbiaDb,

    molto più semplicemente, posiziona un commandButton e su evento click invochi:

    Private Sub cmdOpen_Click()

    Application.FollowHyperlink Me.txtPath & Me.txtFile

    End Sub

    ciao, Sandro.

    0 commenti Nessun commento

7 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-11-28T16:56:07+00:00

    grazie Sandro

    ho provato ad inserire sul cmdApriFile il seguente codice, preso da vecchi post, al fine di aprire il relativo file presente nel txtFile con estensione presente, ma non va....

    Private Sub CmdApriFile_Click()

    Dim objFSO As Object

        Dim objFolder As Object

        Dim objFile As Object

        Dim objSubfolder As Object

        Dim colSubfolders As Object

        Dim wshshell As Object

        Dim bln As Boolean

        Set wshshell = CreateObject("wscript.shell")

        Set objFSO = CreateObject("Scripting.FileSystemObject")

        Set objFolder = objFSO.GetFolder("C:\Users")

        Set colSubfolders = objFolder.Subfolders

        On Error Resume Next

        For Each objSubfolder In colSubfolders

            For Each objFile In objSubfolder.Files

                wshshell.Run "cmd /c" & Chr(34) & objSubfolder.Path & "" & Me.txtFile & Chr(34), True

                If Err.Number = 0 Then

                    bln = True

                    Exit For

                End If

                Err.Number = 0

            Next

        Next

        If bln = False Then

            MsgBox "File non trovato"

        End If

        Set wshshell = Nothing

        Set objSubfolder = Nothing

        Set colSubfolders = Nothing

        Set objFile = Nothing

        Set objFolder = Nothing

        Set objFSO = Nothing

    End Sub

    Grazie ancora

    0 commenti Nessun commento
  2. Anonimo
    2015-11-28T15:28:46+00:00

    Ciao magico Sandro,

    magari....magico...! :-)

    ogni tanto provo a riaffacciarmi ad access :-)

    bravo, così si fa!

    [...]

    considerato che il mio obiettivo finale è quello di aprire successivamente i file, inserendo un cmdAprifile al fianco di txtFile, c'è qualche soluzione alternativa?

    [...]

    la funzione  justFileName presenta un'istruzione commentata:

        'justFileName = StrReverse(justFileName)

    invece questa :

    justFileName = StrReverse(Mid$(justFileName, InStr(1, justFileName, ".") + 1, Len(justFileName)))

    fa il duro lavoro di "ritagliare" il nome del file.

    se vuoi il nome + estensione non devi fare altro che commentare quest'ultima istruzione anteponendo ad essa l'apice e toglire l'apice alla prima.

    L'avevo lasciata li in caso di necessità, necessità che si è materializzata :-)

    [...]

    Grazie ancora caro Sandro

    [...]

    un caro saluto anche a te!

    Ciao, Sandro.

    *********  start EDIT ********* 

    anche così per il solo file, prendo lo spunto da una funzione direi eccezionale del nostro Mauro Gamberini :

    Public Function justFileName2(FullPathName As String) As String

    Dim Afile() As String

    Afile = Split(FullPathName, "")

    justFileName2 = Split(Afile(UBound(Afile)), "")(0)

    End Function

    *********  end EDIT *********

    0 commenti Nessun commento
  3. Anonimo
    2015-11-28T14:26:53+00:00

    Ciao magico Sandro,

    ogni tanto provo a riaffacciarmi ad access :-)

    ho cercato di adattare e va tutto bene.

    Noto che il codice fa la seguente operazione:

    • toglie il nome del file nell'ultima parte di txtPath
    • lo scrive in txtFile senza l'estensione del file

    considerato che il mio obiettivo finale è quello di aprire successivamente i file, inserendo un cmdAprifile al fianco di txtFile, c'è qualche soluzione alternativa?

    Grazie ancora caro Sandro

    0 commenti Nessun commento
  4. Anonimo
    2015-11-28T13:40:10+00:00

    ciao NebbiaDB!

    ben ritrovato.

    Se ho capito bene prova a seguire i seguenti passi :

    questo in un modulo standard:

    Option Compare Database

    Option Explicit

    Public Function cmdFileDialog() As String

       Dim fDialog     As Object

       Dim varFile     As String

       Set fDialog = Application.FileDialog(3)

       With fDialog

          .Title = "Select One or More Files"

          .AllowMultiSelect = False

          .Filters.Clear

          .Filters.Add "all files", "*.*"

          .InitialFileName = CurrentProject.Path & ""

          If .Show = True Then

             varFile = .SelectedItems(1)

          Else

             cmdFileDialog = vbNullString

          End If

       End With

       cmdFileDialog = varFile

    End Function

    Public Function justFileName(FullPathName As String) As String

        Dim lngSlashPos As Long

        Dim revPath     As String

        revPath = StrReverse(FullPathName)

        lngSlashPos = InStr(1, revPath, "")

        If lngSlashPos <> 0 Then

            justFileName = Left(revPath, lngSlashPos - 1)

        Else

            justFileName = FullPathName

        End If

        justFileName = StrReverse(Mid$(justFileName, InStr(1, justFileName, ".") + 1, Len(justFileName)))

        'justFileName = StrReverse(justFileName)

    End Function

    e questo nella form, dovresti intuire facilmente come adattare i nomi dei controlli :

    Option Compare Database

    Option Explicit

    Private Sub cmdFile_Click()

    Dim lngSlashPos As Long

    Dim fullPath    As String

    fullPath = cmdFileDialog

    lngSlashPos = InStrRev(fullPath, "")

    Me.txtPath = Mid$(fullPath, 1, lngSlashPos)

    Me.txtFile = justFileName(fullPath)

    End Sub

    ciao, Sandro.

    0 commenti Nessun commento