Reporte

Veamos; tengo un reporte que presenta numero y descripción, también tengo una carpeta que c:\Exer donde todas las imágenes están guardadas por el numero que se describe en la tabla como te mencione numero y descripción el numero es alfabético de 5 posiciones. Me recomendaron el siguiente código pero no se como poner con el icon de imagen en el reporte, bueno creo que necesito un enpujon más. Gracias.
Debes agregar a tu informe un objeto tipo imagen.
Luego añadir este código en el procedimiento al dar formato de detalles

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
Dim NomImg as string
nomImg= "c:\tu_carpeta\" & me.Numero & ".jpg"
On Error GoTo Pasa01
If Dir(NomImg) <> "" Then
   Me.ImgActivo.Picture = NomImg
End If
Pasa01:
If Err.Number = 2114 Then
   Me.TxtError.Value = "Imagen demasiado grande...!"
   Err.Clear
   On Error GoTo 0
End If
End Sub

1 Respuesta

Respuesta
1
Veamos, en tu reporte te debe aparecer para cada uno de tus registros la imagen que corresponde a cada uno de tus registros según entiendo. El ejemplo de Neptuno que trae el Office te puede ayudar bastante para los efectos que estás requiriendo.

Debes agregar ciertas cositas tales como un frame para tu imagen y el campo donde se encuentra la imagen, te recomiendo que en una tabla pongas el numero que corresponde (en un campo numérico) luego, en un campo descripción poner la ruta de la imagen que le corresponde a ese numero e incluir en la consulta base de tu reporte e incluirlo en tu reporte mismo.
El código que podría utilizarse es el siguiente:
Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
    ' Muestre la imagen para el registro actual, siempre que la imagen
' exista. Si el nombre de archivo no existe o está en blanco
' configure el titulo de la etiqueta de mensajes de error en el
' mensaje correspondiente.
    Dim res As Boolean
    Dim fName As String
    path = CurrentProject.path
    On Error Resume Next
        ErrorMsg.Visible = False
        If Not IsNull(Me![Foto]) Then
            res = IsRelative(Me![Foto])
            fName = Me![ImagePath]
            If (res = True) Then
                fName = path & "\" & fName
            End If
            Me![ImageFrame].Picture = fName
            showImageFrame
            Me.PaintPalette = Me![ImageFrame].ObjectPalette
            If (Me![ImageFrame].Picture <> fName) Then
                hideImageFrame
                ErrorMsg.Caption = "No se encuentra la imagen"
                ErrorMsg.Visible = True
            End If
        Else
            hideImageFrame
            ErrorMsg.Caption = "No contiene imagen"
            ErrorMsg.Visible = True
        End If
End Sub
Tambien otros detalles como los siguientes códigos:
Function IsRelative(fName As String) As Boolean
    ' Devuelva el valor falso si el nombre de archivo contiene una unidad o ruta de acceso UNC
    IsRelative = (InStr(1, fName, ":") = 0) And (InStr(1, fName, "\\") = 0)
End Function
Sub showImageFrame()
    ' Muestre el control de imagen
    Me![ImageFrame].Visible = True
End Sub
Sub hideImageFrame()
    ' Oculte el control de imagen
    Me![ImageFrame].Visible = False
End Sub
Espero que te haya ayudado, cualquier cosa estoy a las órdenes.
PD: te recomiendo mirar la base de datos Neptuno de ejemplo del office. Muchas cosas se puede aprender del mismo.
¿Cómo y donde esta la base de datos neptuno? Gracias..
Suele ser en este directorio C:\Archivos de programa\Microsoft Office\OFFICE11\SAMPLES

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas