FileDialog

di il
3 risposte

FileDialog

Buon di

Ho un piccolo problema VBA in Access. Ho realizzato questa routine per consentire ad un utente dell'app di poter scegliere un file immagine (bmp, o jpg, o ico..) ed ho utilizzato FileDialog:

Public Function FotoOpen(DirStart As String, SubDir As String) As String
' Questa procedura apre il file dialog per la selezione della foto

Dim PathDir As String
PathDir = DirStart

If SubDir <> "" Then
PathDir = PathDir & "\" & SubDir & "\"
End If

' Dim fDialog As Office.FileDialog
Dim Fp As Office.FileDialog
Set Fp = Application.FileDialog(msoFileDialogFilePicker)

With Fp
.Title = "Selezionare file immagine"
.ButtonName = "Conferma"
.InitialView = msoFileDialogViewPreview
.Filters.Clear
.Filters.Add "Tutti i Files (*.*)", "*.*"
.Filters.Add "Images Files (*.jpg)", "*.jpg" '
.Filters.Add "Images Files (*.bmp)", "*.BMP"
.Filters.Add "Images Files (*.png)", "*.png"
.Filters.Add "Images Files (*.ico)", "*.ico"
.FilterIndex = 2
.AllowMultiSelect = False
.InitialView = msoFileDialogViewPreview
.InitialFileName = PathDir

If .Show = -1 Then
FotoOpen = CStr(.SelectedItems.Item(1))
Else
Beep
' MsgBox "La selezione è stata annullata", vbInformation, "Informazione"
End If

End With
Set Fp = Nothing
End Function


Ora il Dialog non tiene conto della DirIniziale settata, ma apre sempre nella Dir Documents dell'utente..
Come mai? Dov'é l'errore?
Grazie a tutti

3 Risposte

  • Re: FileDialog

    Fatto debug per leggere PathDir cosa contiene prima di passarla ad ImitialFilename...?
  • Re: FileDialog

    Osservando il codice si evidenzia che viene Impostata una barra rovesciata (backslash) di troppo (dopo la subdirectory nella directory) con conseguente erroneo path e assegnazione della directory corrente dello user.
    Quindi è da variare il codice in:
    
        PathDir = PathDir & "\" & SubDir 
    
    e magari porre i tag-code come previsto dal regolamento.
  • Re: FileDialog

    Crossposting

    http://m.pierotofy.it/p/forum/69/1066324-filedialog_in_access/
Devi accedere o registrarti per scrivere nel forum
3 risposte