Lo primero es hacer un módulo nuevo (que puedes llamar mdlImagenes), y le escribes este código:
'------------------------------------------------------------------------------------------------
' Función para abrir ventana de diálogo y buscar imágenes
'------------------------------------------------------------------------------------------------
Public Function fncbuscaImagen() As String
On Error GoTo sol_err
Dim fDialog As Office.FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
.AllowMultiSelect = False
.ButtonName = "Seleccionar"
.Title = "Seleccionar el archivo"
.InitialFileName = Application.CurrentProject.Path
.InitialView = msoFileDialogViewDetails
.Filters.Clear
.Filters.Add "Imágenes", "*.jpg; *.jpeg; *.bmp"
If .Show = True Then
fncbuscaImagen = .SelectedItems(1)
Else
'No hacemos nada
End If
End With
Salida:
Exit Function
sol_err:
MsgBox "Se ha producido el error: " & Err.Number & " - " & Err.Description
Resume Salida
End Function
Luego, en tu formulario, añades el botón examinar (si le llamas cmdExaminar), y le generas este código:
Private Sub cmdExaminar_Click()
Me.CampoImagen = fncbuscaImagen
subCargaFoto
End Sub
Además, al formulario le generas este otro en el Evento Al activar registro:
Private Sub Form_Current()
subCargaFoto
End Sub
Al formulario le añades un cuadro de imagen (yo lo llamé imgFoto), cancelas el asistente si te sale y guardas el formulario.
Y para acabar, en el propio módulo del formulario, escribes este otro:
'------------------------------------------------------------------------------------------------
' Este procedimiento coloca la foto o deja el marco vacío
'------------------------------------------------------------------------------------------------
Private Sub subCargaFoto()
On Error GoTo sol_err
Dim miImagen As String
miImagen = Nz(Me.CampoImagen, "")
Me.imgFoto.Picture = miImagen
Salida:
Exit Sub
sol_err:
If Err.Number = 2220 Then
Me.imgFoto.Picture = ""
Else
MsgBox "Se ha producido el error " & Err.Number & ":" & vbCrLf & Err.Description
End If
Resume Salida
End Sub
Recuerda que tienes que activar la referencia Microsoft Office y.yy Object Library en el editor de visual basic (Menu Herramientas->Referencias)