Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Altri Linguaggi - FileDialog in Access
Forum - Altri Linguaggi - FileDialog in Access

Avatar
alip1 (Normal User)
Rookie


Messaggi: 35
Iscritto: 12/08/2019

Segnala al moderatore
Postato alle 17:22
Venerdì, 22/05/2020
Buon di scusatemi se non ho postato nel forum corretto.

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:

Codice sorgente - presumibilmente VB.NET

  1. Public Function FotoOpen(DirStart As String, SubDir As String) As String
  2.     ' Questa procedura apre il file dialog per la selezione della foto
  3.  
  4.     Dim PathDir As String
  5.     PathDir = DirStart
  6.  
  7.    If SubDir <> "" Then
  8.       PathDir = PathDir & "\" & SubDir & "\"
  9.    End If
  10.  
  11.    '  Dim fDialog As Office.FileDialog
  12.    Dim Fp As Office.FileDialog
  13.    Set Fp = Application.FileDialog(msoFileDialogFilePicker)
  14.  
  15.    With Fp
  16.       .Title = "Selezionare file immagine"
  17.       .ButtonName = "Conferma"
  18.       .InitialView = msoFileDialogViewPreview
  19.       .Filters.Clear
  20.       .Filters.Add "Tutti i Files (*.*)", "*.*"
  21.       .Filters.Add "Images Files (*.jpg)", "*.jpg" '
  22.       .Filters.Add "Images Files (*.bmp)", "*.BMP"
  23.       .Filters.Add "Images Files (*.png)", "*.png"
  24.       .Filters.Add "Images Files (*.ico)", "*.ico"
  25.       .FilterIndex = 2
  26.       .AllowMultiSelect = False
  27.       .InitialView = msoFileDialogViewPreview
  28.       .InitialFileName = PathDir
  29.  
  30.       If .Show = -1 Then
  31.         FotoOpen = CStr(.SelectedItems.Item(1))
  32.       Else
  33.          Beep
  34.        '  MsgBox "La selezione è stata annullata", vbInformation, "Informazione"
  35.       End If
  36.  
  37.     End With
  38.   Set Fp = Nothing
  39.  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

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 601
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 17:52
Venerdì, 22/05/2020
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

non vedo: .InitialDirectory
credo che esista anche in VBA
se non ci fosse, controlla se il file esiste prima di darlo in pasto a .InitialFileName

Ultima modifica effettuata da Carlo il 22/05/2020 alle 18:08


in programmazione tutto è permesso
PM Quote
Avatar
alip1 (Normal User)
Rookie


Messaggi: 35
Iscritto: 12/08/2019

Segnala al moderatore
Postato alle 18:16
Venerdì, 22/05/2020
Testo quotato

Postato originariamente da Carlo:

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

non vedo: .InitialDirectory
credo che esista anche in VBA
se non ci fosse, controlla se il file esiste prima di darlo in pasto a .InitialFileName



ma prende solo .InitialFileName = PathDir
e PathDir come vedi dal codice contiene una Dir non un filename... che non saprei. Proprio perché non solo quale vuole mettere glielo vado a far cercare... in verità dovrebbe andare ad aprirsi sulla cartella che gli passo! Almeno così dice la documentazione....

Ultima modifica effettuata da alip1 il 22/05/2020 alle 18:19
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 601
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 20:42
Venerdì, 22/05/2020
vedo che fai anche dei controlli

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

Per controllare se stai passando un percorso che esiste controlla il contenuto della variabile PathDir in runtime.
E' molto facile sbagliare.

Ultima modifica effettuata da Carlo il 22/05/2020 alle 20:48


in programmazione tutto è permesso
PM Quote