Access.VBA: Asignar en línea un valor a un campo del Repor

Tengo un report con un control llamado AutoLogo cuya propiedad picture debe tomar valores diferentes según el contenido del informe.

Estoy intentando asignar dicho valor a través de código pero siempre obtengo un error y esto me tiene atascado. Concretamente en la línea 13 me aparece el error 2451 que literalmente dice "El nombre del informe que ha especificado está mal escrito o hace referencia a un informe que no está abierto o no existe"

Para verificar que existe, utilizo una rutina que lista los informes de la BD y, cuando encuentra el que quiero, intento asignar el valor en línea. El error lo obtengo en este segundo punto.

Este es el código:

Dim obj As AccessObject, ctr As Control, dbs As Object
Dim ListaReports As String
Dim objeto As String
Dim rpt As Report
Dim i As Integer
i = 0
ListaReports = "Estos son TODOS los Informes en la Base de Datos:"
Set dbs = Application.CurrentProject
For Each obj In dbs.AllReports
  objeto = obj.Name
  ListaReports = ListaReports & vbNewLine & " * " & i & " * " & obj.Name
  If obj.Name = "Anmeldebescheinigung BU Niedersachsen" Then
    Reports(objeto).Controls(0).Picture = Application.CurrentProject.Path &"\Cabecera0.png"
  End If
  i = i + 1
Next obj
MsgBox ListaReports, vbInformation, "Lista de Informes"
End Sub

1 respuesta

Respuesta
1

¿En qué evento tienes este código?

En el evento click de un cmdButton de un formulario el cual hace un cmd.OpenReport del Informe en cuestión, pero antes intento asignar el valor al control de tipo Picture insertando un logo.

El error es correcto, intentas asignar un valor a un control cuando el informe no está creado (abierto).

Deberías hacerlo al revés, abrir el informe y luego asignar el valor. Puedes hacerlo en los eventos del informe (Al dar Formato, por ejemplo).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas