Ocultar campo de texto dentro en un informe

Espero que estés bien te escribo para preguntarle dos cosas

La primera se trata de lo siguiente tengo dentro de un informe dos campos de texto, en el primer campo de texto me sale registrada la información de una operación que hago entre registros y en el segundo me sale la información que tengo almacenada dentro de una tabla mi pregunta es que mediante VBA u otra manera pueda ocultar o que sea invisible el segundo campo si en el primero hay información..

He hecho esto pero no consigo resultado:

Private Sub Report_Load()

If Me.Intereses.Value <> "" Then ' Si el primer campo es diferente de vacío

Me.Aux.Visible = False ' Haga invisible el segundo campo

End sub

he intentado poner este código dentro de un Do While Not rs.EOF Loop

pero no me funciona

Y la Segunda pregunta disculpe que sea mas compleja es que necesito saber como puedo controlar el error 3021 en tiempo de ejecución,,, pues tengo un botón con el siguiente código que lo que hace es llenar un campo dentro de un texto con restas consecutivas:

Private Sub Comando32_Click()

Dim db As Database

Dim rs As Recordset

Dim var As Double

Dim v As Variant

Dim mvarobservaciones As String

Set db = CurrentDb

Set rs = db.OpenRecordset("Select * from Descripción")

Do While Not rs.EOF

If IsNull(rs!Nuevo_saldo_CDT) Then

On Error GoTo Error1

Error1: MsgBox "No puedes dejar valores nulos en el campo Nuevo_saldo_CDT "

Exit Sub

End If

var = rs!Nuevo_saldo_CDT

rs.MoveNext

rs.Edit

rs!Aux = rs!Nuevo_saldo_CDT - var

rs.Update

End sub

Pero por ejemplo si el usuario final le da por oprimir el botón cuando se ha completado el proceso aparece el incomodo mensaje en una ventana que dice:

Se ha producido el error 3021 en tiempo de ejecución

No hay ningún registro activo

Y al oprimir depurar

Me señala la linea de código

Rs. Edit

Aunque se que no es fácil, de antemano agradezco su colaboración
Att. Hernán Camilo
Bogotá D.C

1 Respuesta

Respuesta
1

Estoy un poco corto de tiempo, pero en la primera pregunta,

No has cerrado la función if, (End If), recién hice una base de datos donde usé un proceso en VBA similar al tuyo lo que hice fue:

Private Sub Tipo_Compra_DblClick(Cancel As Integer)
If Me.Tipo_Compra.Text = "Contado" Then
[Forms]![Compras]![Subformulario Compras]![Subformulario Documentos]![Subformulario Abono].Visible = False

Else: Me.Subformulario_Abono.Visible = True
End If
End Sub

Lo que tienes que hacer es cambiar los valores, y fijate bien en terminar la función, la segunda pregunta te la resuelvo luego con un poco mas de tiempo!

Hola Daniel mi nombre es Hernán Camilo veo como que eres de aquí de Bogotá e igualmente me presento y a la orden en lo que necesites muchas gracias por tu atención y ayuda lo del primer punto fue cuestión de poner On error goto next en la linea de código

en cuanto el segundo de verdad no se por que no me oculta el segundo campo si existe un valor en el primero cabe anotar que estoy haciendo en el evento "Al cargar" Informe lo siguiente:

Private Sub Report_Load()

If Me.Intereses.Value <> Nulo Then

[Report_General]![Aux].Visible = False

End If

End Sub

Pero al ejecutar el informe igual me sigue mostrando el segundo campo (Y pasando el trace sobre Me.Intereses.Value me dice que esta en Nulo siendo que en el informe aparece un valor en el primer registro de la base de datos que se ve reflejado en el informe) y deseo que me lo oculte, de verdad no entiendo por que VBA no me permita hacer algo tan aparentemente sencillo ,,

Gracias de nuevo y muchas bendiciones..

Att.Hernán Camilo.

Hernán que pena contigo no me había comunicado por cuestiones de tiempo.
Acabo de implementar algo que te puede ayudar, estabas mal en la formulación de los valores, mira, debes definir el criterio IsNull (si esta vacío) o NotNull (si no lo es). Toma de base este ejemplo.

Private Sub Form_Current()
If IsNull(No_Documento) Then
Me.Subformulario_Gastos.Visible = False
Else: Me.Subformulario_Gastos.Visible = True
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas