Tomar el título de un informe de un campo del propio informe

Pues como digo en el título, estoy intentando poner un título dinámico en un informe de Access, mediante el comando Caption. Lo que pasa es que no soy capaz de dar con la tecla para coger el valor de un campo del propio informe del que quiero poner el título dinámico.

2

2 respuestas

Respuesta
1

Podrías se más especifico no entiendo esto "la tecla".

Hola, Antonio.

Mira. Tengo, por ejemplo, un informe que me saca una factura según el código de factura (estoy hablando de un TPV que tengo hecho en Access), y me lo muestra en el título del informe con este código:

Private Sub Report_Open(Cancel As Integer)
On Error Resume Next
DoCmd.Maximize
Me.Caption = "Factura " & Forms![03-TPV Facturacion]![CodFactura]
End Sub

Esto funciona porque el formulario está abierto, pero si quisiera que ese [CodFactura] lo tomara del propio informe abierto, ¿cómo lo hago?

¡Gracias!

Así es, lo tomara del formulario.

Puedes hacerlo de 2 formas más,

1. Pasando [CodFactura] por la propiedad open args.

Docmd. OpenReport "MiReporte", acViewNormal,,,, me. CodFactura

La línea cambiaría

Me.Caption = "Factura " & me.OpenArgs

2. Utilizando la función DLookUp. Siempre y cuando tengas un identificador que te ayude obtener ese valor. Poe ejemplo.

Me.Caption = DLookup("[CampoARecuperar]", "MiTabla","[ID] = 1")

Creo que puedo utilizar lo que propones, haciendo pequeñas modificaciones. 

Gracias.

De acuerdo.

Saludos.

----------------------------------------------------------------------

Vba Access
https://www.youtube.com/c/VBAAccess?sub_confirmation=1

Respuesta
1

Yo personalmente en programa de TPV hago lo siguiente:

1- En el reporte tengo oculto el campo idfactura, y lo coloco en el encabezado

2. Utilizo la instrucción:

DoCmd. OpenReport stDocName, acPreview,, strCriterio

En donde strCriterio es:

strCriterio="idfactura=" & me.idfactura

Ahora en el reporte, con base en una consulta llevo el idfactura y el número de factura cuando no es ID y este lo llevo al informe. Esto lleva el título de la factura. No necesito pasar argumento el informe ya viene filtrado. Es decir en el informe iría una etiqueta "N° Factura :" <campo_nro_factura". Lo anterior me permite reimprimir facturas seleccionándolas de un cuadro de lista con base en el idfactura-

Hola. Sí, lo que tú haces es idéntico a cómo lo tengo montado. Sin embargo, lo que quiero es poner ese código de factura en el título del informe que puedas arriba de todo en la pantalla. Mira, aquí:

Y mi problema viene en cómo coger ese dato del propio informe, pues (este no es el caso) hay veces que el formulario de donde tengo que tomar el valor está cerrado. Por eso me viene bien la respuesta que dio Antonio, aunque si a ti se te ocurre algo mejor, soy todo oídos.

Gracias por tomarte la molestia de responder.

Un saludo.

No se puede utilizar OpenArgs porque se debe abrir el informe con base a un ID, se debe abrir el reporte haciendo uso de la cláusula WHERE en OpenReport como le explique antes.

Ahora, supongo que tiene algún campo que contiene el número de la factura con base en la consulta origen de datos del informe, en este caso coloque el campo CampoNroFactura en el encabezado y lo oculta. Ahora, en el evento Alabrir del informe coloque:

Me.Caption="Ticker Nro:" & Me.CampoNroFactura

Esto funciona en cualquier parte donde llame el informe siempre que pase el ID de la factura en la instrucción DoCmd OpenReport …...

La pregunta no admite más respuestas

Más respuestas relacionadas