Io ho questa procedura che vale per i report. Per le maschere mi pare che si operi in maniera analoga, ma pare funzioni solo con "maschera singola". Te la copio/incollo così come me la sono memorizzata io. Spero di non essere fuori tema.
- Caricare immagini nel Corpo
In un report si vuole mostrare per ogni record una immagine corrispondente. Considerato che le immagini allegate appesantiscono il database, occorre predisporre nella tabella sottostante un campo NomeFoto che indichi il nome completo dell'immagine o il path (da capire se assoluto o relativo).
Nel corpo del report aggiungere:
- un controllo Immagine che chiamerò ImmagineFoto. La procedura guidata chiederà di associare una qualsiasi da scegliere. Poi si può anche eliminare il valore corrispondente nella proprietà Immagine.
- una casella di testo non associata che chiamerò FotoNote
In questo esempio viene preso in considerazione un path relativo. Ho previsto sia che NomeFoto sia vuoto, sia che abbia un nome incoerente, sia uno valido. In ogni caso bisogna stabilire se ImmagineFoto sia visibile o no, in ogni caso bisogna scrivere qualcosa in FotoNote.
Per caricare la foto in ImmagineFoto si usa la proprietà Picture. Il codice VBA va scritto in Corpo, evento "Su formattazione".
Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
Dim strPath As String
If IsNull(Me!NomeFoto) Then
Me!ImmagineFoto.Visible = False
Me!FotoNote = "Nessuna immagine specificata"
Else
strPath = Application.CurrentProject.Path
strPath = strPath & "\Foto"
strPath = strPath & "\" & Me!DettagliDDT!NomeFoto
If Len(Dir(strPath)) = 0 Then
Me!ImmagineFoto.Visible = False
Me!FotoNote = "Immagine non trovata"
Else
Me!ImmagineFoto.Visible = True
Me!ImmagineFoto.Picture = strPath
Me!FotoNote = vbNullString
End If
End If
End Sub