Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 4 su 4

Caricamento foto da link esterno non funziona

  1. #1
    simerba non è in linea Novello
    Post
    7
    Like Inviati  
    0
    Like Ricevuti  
    0
    Buongiorno a tutti, ho un database con una maschera dove premendo un pulsante e tramite codice VB posso caricare e visualizzare nella maschera una immagine esterna al database.

    Ho due PC Windows 10 Il database funziona perfettamente su una macchina mentre sulla seconda quando premo il pulsante mi si apre la finestra in raccolta documenti anziché in C:\ (come indicato nel codice VB) e poi a fianco della casella nome file appare il formato BMP

    Foto comportamento anomalo


    anziché Tutti i file

    Foto comportamento corretto


    e poi quando seleziono l'immagine da inserire non me la memorizza nel campo ImagePath che rimane vuoto e quindi l'immagine non viene caricata nel database.

    Come mai?

    Versione Windows 1909
    Versione Access Microsoft Office Professional Plus 2019

    Il codice VB in questione è il seguente:
    Private Sub cmdCommonDialog_Click()
       Dim strOut           As String
       Dim lngFlags         As Long
       Dim gfni             As bac_accOfficeGetFileNameInfo
       
       On Error GoTo HandleErrors
       'ImagePath = ""
       lngFlags = lngFlags Or bacGfniConfirmReplace
       lngFlags = lngFlags Or bacGfniNoChangeDir
       'lngFlags = lngFlags Or bacGfniAllowMultiSelect
       'lngFlags = lngFlags Or bacGfniDirectoryOnly
       lngFlags = lngFlags Or bacGfniInitializeView
       With gfni
          .lngView = 1
          .lngFlags = lngFlags
          ' Make sure not to pass in Null values. adhOfficeGetFile
          ' doesn't like that, and often GPFs.
          .strFilter = "Tutti formati Immagini (*.bmp;*.jpg;*.jpeg;*.gif;*.tiff;*.png;*.wmf;*.emf;*.cur;*.ico)" & _
                       "|Immagini BMP (*.bmp)" & _
                       "|Immagini JPG (*.jpg)" & _
                       "|Immagini JPEG (*.jpeg)" & _
                       "|Immagini PNG (*.png)" & _
                       "|Immagini GIF (*.gif)" & _
                       "|Immagini TIFF (*.tiff)" & _
                       "|Immagini WMF (*.wmf)" & _
                       "|Immagini EMF (*.emf)" & _
                       "|Immagini ICO (*.ico)" & _
                       "|Immagini CUR (*.cur)"
          .lngFilterIndex = 0
          '.strFile = ""
          .strDlgTitle = "Seleziona Immagine"
          .strOpenTitle = "Inserisci"
          .strInitialDir = "C:\"
          .hWndOwner = Application.hWndAccessApp
       End With
       If baOfficeGetFileName(gfni, True) = bacAccErrSuccess Then
          strOut = Trim(gfni.strFile)
          If Not IsNull(strOut) Then
             Me.ImagePath = Trim(gfni.strFile)
             Me.ImageFrame.Picture = ImagePath
             Me.ImageFrame.HyperlinkAddress = ImagePath
             Me.lblInsertImmage.Visible = False
          End If
        End If
        
    ExitHere:
        Exit Sub
    
    E' consentito mettere un link al mio Google drive dove è possibile scaricare il file *mdb ?

    Grazie.
    Simone.

  2. #2
    L'avatar di dragone bianco
    dragone bianco non è in linea Amanuense
    Post
    7,753
    Like Inviati  
    0
    Like Ricevuti  
    2
    Ciao

    Io di solito per selezionare un file uso il FileDialog (della Libreria Microsoft Office xx.0 obeject library)
    Supporta anche il MultiSelect

    Tratto da un mio Progetto
    '****** Scelta File Da Caricare ******
    'ricerca del file per le letture
    Set Finestra = Application.FileDialog(msoFileDialogOpen) 'Equivale a 1

    'Titolo
    Finestra.Title = "Testo Apri"

    'Percorso di ricerca
    Finestra.InitialFileName = fnc_Impostazione_Percorsi("INPUT_FILE") & "\"

    'Filtri di Ricerca
    Finestra.Filters.Clear
    Finestra.Filters.Add "File CSV", "*.csv", 1

    'Selezione Multipla
    Finestra.AllowMultiSelect = False

    'Apri Finestra
    Valore = Finestra.Show

    Percorso_File = ""
    'Estrazione Valori
    For Each vrtSelectedItem In Finestra.SelectedItems
    Percorso_File = Percorso_File & vrtSelectedItem
    Next vrtSelectedItem

    If Percorso_File = "" Then
    MsgBox "Operazione Annullata", vbInformation + vbOKOnly, "Esito Operazione"
    Exit Sub
    End If


    Ciao
    ℹ️ Leggi di più su dragone bianco ...

  3. #3
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Post
    16,803
    Like Inviati  
    0
    Like Ricevuti  
    23
    Il Crosspost non è ammesso, come avresti dovuto leggere da Regolamento.
    https://www.iprogrammatori.it/forum-...na-t46193.html

    Valuta in quale Forum proseguire ed indica i LINK e la soluzione eventuale in entrambi.
    ℹ️ Leggi di più su @Alex ...

  4. #4
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Post
    16,803
    Like Inviati  
    0
    Like Ricevuti  
    23
    All'esempio di [Dragone Bianco], aggiungo alcune considerazioni magari utili.
    Non sono necessari i riferimenti alla LIB OFFICE, basta dichiarare l'Oggetto come Object e non come FileDialog in modo Esplicito sfruttando poi il LateBinding, da ricordarsi solo la dichiarazione delle COSTANTI che chiaramente, senza i Riferimenti alla LIB di Office non vengono riconosiuti motivo per cui serve implementarli.

    Sfrutterei, il fatto che il Metodo SHOW è sincrono e che restituisce TRUE nel caso in cui vengano selezionati File, almeno 1 o False se si ANNULLA...
    Es:
    '****** Scelta File Da Caricare ******
    Dim Finestra  As Object
    Dim msoFileDialogOpen=1
    'ricerca del file per le letture
    Set Finestra = Application.FileDialog(msoFileDialogOpen)
    ...
    If Finestra .Show = True Then
             'Loop through each file selected and add it to our list box.
             For Each varFile In Finestra .SelectedItems
                 Debug.print varFile
             Next
    Else
             MsgBox "Hai premuto ANNULLA da DialogBox."
    End If
    
    Da ricordare tuttavia che, nel caso in cui si distribuisca il RUNTIME, questo metodo non è affatto consigliato, conviene sempre usare il metodo API la dove non si ha certezza che nella distribuzione il PC destinatario contenga quanto necessario, le API invece, native di Windows sono sicuramente presenti, con l'attenzione alla Versione del S.O. e del Runtime 32/64Bit, che chiaramente va a condizionare il codice da scrivere.

    Saluti
    ℹ️ Leggi di più su @Alex ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risolto: Libreoffice Basic e caricamento dati da file esterno
    Da TheTruth nel forum LibreOffice, OpenOffice e altro
    Risposte: 2
    Ultimo Post: 30-12-2020, 15:12
  2. Non funziona più il link HOME
    Da gibra nel forum Pausa caffè
    Risposte: 4
    Ultimo Post: 28-07-2017, 14:44
  3. Caricamento foto attraverso maschera
    Da fagsos nel forum Microsoft Access
    Risposte: 7
    Ultimo Post: 14-07-2016, 09:22
  4. problema con caricamento swf esterno
    Da Ro_berta nel forum Adobe Flash, ActionScript
    Risposte: 4
    Ultimo Post: 12-12-2007, 16:38
  5. form mail : non funziona come swf esterno
    Da sguepos nel forum Adobe Flash, ActionScript
    Risposte: 2
    Ultimo Post: 06-06-2006, 13:00