Luis Miguel: Una manera de hacerlo es la siguiente. Primero la inserción de un Control en tus Formularios e informes que para el Código voy a llamar >> ImgLogo
Con el fin de escribir un poco menos pon ésta Función en un Módulo Standard.
Public Function RutaImgLogos() As String
RutaImgLogos = Application.CurrentProject.Path & "\Imagenes\Logos\"
End Function
Co ésto quiero decir que habrá una carpeta "Imagenes" colgando de la Carpeta donde esté la Base de Datos y a la vez una Carpeta "Logos" colgando de la anterior y esa es la que va a contener el Logo o los Logos que tu quieras. El Formato de las imágenes puede ser cualquiera de los admitidos, aunque yo en el Código pondré .png
En el Evento Form_Load si es un Formulario o Report_Load si es un Informe (El C´digo está para éste último)
Private Sub Report_Load()
Dim ElLogo As String
ElLogo = RutaImgLogos & "NombreDelLogo.png"
If ExisteFichero(ElLogo) = True Then
Me.ImgLogo.Picture = ElLogo
Else
''Si no Existe se pueden contemplar dos alternativas:
''Alternativa Uno>> Que no ponga Imagen
'Me.ImgLogo.Picture = ""
'MsgBox "El Fichero " & ElLogo & " no está en la Carpeta de Imagenes\Logos como se esperaba", vbCritical, "IMAGEN NO ENCONTRADA"
'Alternativa Dos >> Que ponga una por Omisión
Dim ImgOmision As Variant
ImgOmision = "LaImagenQueSea.jpg"
Me.ImgLogo.Picture = RutaImgLogos & ImgOmision
MsgBox "El Fichero " & ElLogo & " no está en la Carpeta de Logos" & vbCrLf & _
"Se mostrará la Imagen por Omisión >> " & ImgOmision, vbCritical, "IMAGEN ALTERNATIVA"
End If
End Sub
LaImagenQueSea es la que tu quieras, pero en tu caso no debería saltar a ella, porque solo habrá un Logo y es de esperar que siempre esté. Repara en que el Procedimiento está hecho, para que si quieres en cada Formulario o Informe te saque una Imagen. Basta Cambiar el Nombre donde pongo NombreDelLogo. Sería util si quieres imprimir cada Informe con la Foto de cada Empleado, declarando otra Carpeta que fuera ...FotosEmpleados
Y lógicamente vas a necesitar también la Función Existe Fichero, que para evitarla en cada Objeto, la pones también en un Módulo Estandar.
Public Function ExisteFichero(ElFichero As String) As Boolean
On Error Resume Next
ExisteFichero = Not (Dir(ElFichero) = "")
End Function
No creo dejarme nada en el tintero. Un saludo >> Jacinto