Problemas con imagen en formulario con subformulario

Tengo un formulario principal con un ssubformulario continuo donde voy insertando registros con imagen-

La idea es que al hacer clic en la foto o en otro control de un registro del subformulario, se visualice la imagen en el cuadro de imagen del formulario principal. Imagino que no será muy difícil, pero llevo dos días intentándolo y no soy capaz de hacer que funciones.

El formulario y subformulario están relacionados por el campo Expediente

Os dejo una imagen en vista diseño

¿Cómo puedo hacer que la idea funcione?

2 Respuestas

Respuesta
1

Si tengo una tabla Productos con..., Producto,... Foto, donde guardo la ruta a la imagen de ese producto.

Tengo un formulario Compras con un control Imagen llamado Imagen29, y con el subformulario DetalleCompra, donde al seleccionar el producto me muestra su imagen en un control imagen llamado Imagen28

Casi no se vé pero a la derecha hay una taza de café. Si hago clic sobre ella

En el evento Al hacer clic del control imagen del subformulario le tengo puesto

Private Sub Imagen28_Click()
Me.Parent!Imagen29.Picture = DLookup("foto", "productos", "producto='" & Me.Producto & "'")
End Sub

es decir, que muestre aquella imagen correspondiente al campo Foto de la tabla Productos en que Producto sea igual al valor que figura en el control Producto del registro activo.

Julián me queda bien así, pero me surge un problemilla que no se si tiene solución, 

Resulta que cuando inserto alguna imagen, (no todas), me aparece en formato horizontal, es decir si la imagen es vertical, el sistema me lo pone horizontal,. 

Conoces alguna forma de poder girar la foto 90 º en el mismo formulario o subformulario?

¡Coño, la primera vez que lo oigo. ¿Puedes poner una imagen?. Es que a mi no me pasa. Mira

Hago clic en la cerveza y

Mira que color, mira que espuma, parece una Cruzcampo.

No sé que instrucción usas para seleccionar la imagen, pero si tengo el formulario Productos, cuando hago clic en el campo Foto, se me abre el "explorador". Localizo una y, por ejemplo, selecciono a Adrián

Cuando lo selecciono y acepto

Y así, es como se guarda y muestra.

Como puedes ver la imagen del segundo registro, que además es el que está activo, aparece horizontal. en origen la imagen es vertical, cuando la busco y selecciono, me la pone en horizontal en el cuadro de imagen del subformulario y al pasar al cuadro del form principal, mantiene el mismo formato.

La función de búsqueda es la siguiente:

Public Function fncBuscaImagen() As String
'Requiere registro de la referencia Microsoft Office x.y Object Library
Dim imagenSeleccionada As String
Dim puntoCorte As Integer
Dim fDialog As Office.FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
.AllowMultiSelect = False
.ButtonName = "Seleccionar"
.Title = "Seleccionar la imagen"
.InitialFileName = Application.CurrentProject.Path
.InitialView = msoFileDialogViewDetails
.Filters.Clear
.Filters.Add "Archivos de imagen", "*.jpg; *.png; *.bmp"
.Filters.Add "Todos los archivos", "*.*"
If .Show = True Then
imagenSeleccionada = .SelectedItems(1)
Else
MsgBox "La selección de imagen se ha cancelado", vbExclamation, "CANCELADO"
End If
End With
fncBuscaImagen = imagenSeleccionada
End Function

La idea es poder girar la imagen en el formulario, ya que si la giro origen, me queda mal para otros usos.

José María, que yo sepa, el porqué no lo sé, sucede cuando la foto es demasiado "grande". Me explico, supongamos que esa foto de las baldosas ocupa 4 o 5 megas. Te la gira 90 o 180 grados. Como te digo el porqué no lo sé. Habría que preguntarle a los gilipollas de Microsoft.

Mira, si busca la foto "original" que pesa 6,5 megas

Sin embargo, si paso la imagen por un editor de imágenes( en mi caso es PhotoEscape), que manteniendo lo mismo me la reduce a 95 kb

Y que yo sepa, los controles no se pueden girar.

Siento no poder decirte más.

Respuesta
1

José María: Vaya por delante que la respuesta de Julian (un saludo) es correcta y nada que objetar con respecto a la misma.

No obstante y si quieres ver otras alternativas en un proceso similar, te recomiendo mirar ésta Aplicación que tiene Daniel Pineault en el siguiente enlace.

https://www.devhut.net/2018/02/02/access-attachment-gallery/ 

Como verás se basa en tener varias imágenes en un mismo registro.

La ejecución te genera una Carpeta Temp en el directorio en la que tengas la Aplicació.

Un saludo >> JTJ

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas