Bene. Ho fatto come suggerito ed ho risparmiato un bel po' di righe di codice. Adesso però ho un problema:
ho una maschera continua che ha origine dati da una query. All'interno di questa maschera ho inserito un oggetto immagine che non può essere associata a nessun campo della tabella ma (solo per questa maschera) mi ricavo il contenuto dell'immagine attraverso la proprietà Picture:
imgFotoOperatore.Picture = ThisUser.foto
FOTO è un campo in una tabella (
operatori) che contiene il percorso di dove si trova l'immagine.
THISUSER invece contiene i valori di ogni singolo campo in tabella, estratti attraverso una funzione, grazie all'apertura di un recordset.
Public Sub set_user(cognome As String)
'imposta utente corrente
Set rs = CurrentDb.OpenRecordset("SELECT * FROM operatori WHERE cognome = '" & cognome & "'")
If Not rs.EOF And Not rs.BOF Then
With ThisUser
.level = rs!qualifica
.surname = rs!cognome
.name = rs!nome
.id_user = rs!id_op
.role = Nz(rs!ruolo, "")
>>>>> .foto = rs!PercorsoFotoOperatore <<<<<
.id_session = 0
End With
rs.Close
Debug.Print "User '" & cognome & "' correctly set."
Else
Debug.Print "No user '" & cognome & "' found in table 'Operatori'."
End If
Set rs = Nothing
End Sub
Finché all'interno del campo
FOTO c'è un percorso, allora nell'oggetto immagine (
imgFotoOperatore) compare l'immagine indicata attraverso il percorso. Ma se il campo è vuoto ovviamente il valore mi ritorna NULLO.
Avevo pensato a:
imgFotoOperatore.Picture = Nz(ThisUser.foto, "")
Ma così mi restituisce l'oggetto immagine vuoto (
proprio perché gli dico che se il campo è nullo allora fallo diventare vuoto). Invece io vorrei che mi facesse apparire l'immagine di default che gli avevo incorporato al principio.
La strada più semplice forse è quella di salvare l'immagine di default in una percorso e richiamarla quando mi capita questo inconveniente, ma vorrei evitare. C'è una soluzione diversa al mio problema