Access - un quadro de texto no se actualiza

   
Vista:

un quadro de texto no se actualiza

Publicado por Juan Torío joantorio@gmail.com (2 intervenciones) el 13/06/2015 09:45:36
Tengo un informe de recibos con un quadro de texto independiente (número de recibo) que calculo según el conceptoi i actualizo sobre la marcha
Igualmente actualizo el título (en una etiqueta) según sea comprobante o recibo (a tenor del concepto: Una baja da lugar a un comprobante un alta da lugar a un recibo porque da lugar al cobro de una qüota)
Asimismo si se trata de un comprobante el número és ficticio i no lo muestro

DoCmd.OpenReport "Rebut", acViewPreview, , "NIF = " & "'" & txtNIF & "'"
Reports!Rebut.lblTitol.Caption = Titol
Reports!Rebut.txtNumReb = NumReb
Reports!Rebut.txtNumReb.Visible = Visi

Aunque los datos son correctos no se actualizan en pantalla ni la etiqueta ni el quadro de texto
He probado con refresh, repaint requery i nada

NOTA utilizo la via indirecta Forms........ (i no me. ) etc porque tengo un formulario abierto en segundo plano i me.propiedad afecta al formulario

Nota 2 Quando después abro el informe definitivo para imprimir imprime correcto
DoCmd.OpenReport "Rebut", acViewNormal, , "NIF = " & "'" & txtNIF & "'"

Muchas gracias por antiipado
Juan
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Norberto

un quadro de texto no se actualiza

Publicado por Norberto (432 intervenciones) el 15/06/2015 10:52:11
Hola.

Una vez abierto el informe, no es posible cambiar nada de él desde fuera. Te tecomiendo una de estas dos opciones:

1. Los valores de Titol, NumReb y Visi deben de estar en el formulario, bien visibles, bien no. Cuando abras el informe, pones en el evento más adecuado (prueba Al abrir, o Al dar formato de la sección en la que se encuentren los controles)

Me.lblTitol.Caption = Forms("nombredelformulario").Titol
Me.txtNumReb.Caption = Forms("nombredelformulario").NumReb
Me.txtNumReb.Visible = Forms("nombredelformulario").Visi


2. Pasas los tres valores en una cadena de texto separados por un carácter que sepas que no vas a necesitar, p.e. "|" y en el evento correcto los extraes y aplicas a cada caso de esta manera:

En el formulario:

DoCmd.OpenReport "Rebut", acViewPreview, , "NIF = " & "'" & txtNIF & "'",, Titol & "|" & NumReb & "|" & Visi

En el informe:

1
2
3
4
5
6
7
8
9
10
Private Sub Report_Open(Cancel As Integer)
    Dim i As Integer, j as Integer
 
    i = InStr(1, Me.OpenArgs, "|")
    Me.lblTitol.Caption = Left(Me.OpenArgs, i - 1)
    j = InStr(i + 1, Me.OpenArgs, "|")
    Me.txtNumReb= Mid(Me.OpenArgs, i + 1, j - i - 1)
    Me.txtNumReb.Visible = Right(Me.OpenArgs, j + 1) = "Verdadero"
    'Para el último hay que "convertir" el texto "Verdadero" a Boolean
End Sub

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar