Access - ocultar un campo solo de un registro.

 
Vista:
sin imagen de perfil
Val: 5
Ha disminuido su posición en 31 puestos en Access (en relación al último mes)
Gráfica de Access

ocultar un campo solo de un registro.

Publicado por Itziar (50 intervenciones) el 02/08/2007 12:56:09
Buenas,
Tengo un formulario tabular, el caso es que quiero que se oculten y desoculten campos pero solo en un registro en concreto según si de dan a si o no en el msbox
He estado revisando otros post en el foro pero no encuentro la solución.
tengo este codigo. me lo hace bien pero para todos los registros del formulario tabular..
es decir me oculta y desoculta el campo bien pero solo quiero que oculte el campo en el registro en el que estoy y no en todo el formulario tabular..

Private Sub Trastero_nº_AfterUpdate()
Select Case MsgBox("¿Tiene la vivienda asociada un segundo trastero?" _
& vbCrLf & "" _
, vbYesNo Or vbExclamation Or vbDefaultButton1, "trasteros asociados a la vivienda")

Case vbYes
trastero2.Visible = True
importe_trastero2.Visible = True
Etiqueta101.Visible = True
Etiqueta115.Visible = True

Case vbNo
trastero2.Visible = False
importe_trastero2.Visible = False
Etiqueta101.Visible = False
Etiqueta115.Visible = False

End Select

End Sub

Gracias..
Saludos.
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 Alejandro

Ocultar/desocultar campos en un registro específico

Publicado por Alejandro (4142 intervenciones) el 17/08/2023 00:46:29
Parece que estás en el camino correcto, pero necesitas ajustar tu código para que oculte y desoculte los campos solo en el registro en el que te encuentras en el formulario tabular. Puedes hacer esto utilizando las propiedades del registro actual. Aquí está el código modificado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Private Sub Trastero_nº_AfterUpdate()
    If Me.NewRecord Then
        ' Nuevo registro, no hacemos nada
        Exit Sub
    End If
 
    Dim currentRecordID As Variant
    currentRecordID = Me!ID ' Reemplaza "ID" con el nombre del campo que identifica de manera única cada registro
 
    Select Case MsgBox("¿Tiene la vivienda asociada un segundo trastero?" _
    & vbCrLf & "" _
    , vbYesNo Or vbExclamation Or vbDefaultButton1, "trasteros asociados a la vivienda")
 
        Case vbYes
            Me.trastero2.Visible = True
            Me.importe_trastero2.Visible = True
            Me.Etiqueta101.Visible = True
            Me.Etiqueta115.Visible = True
 
        Case vbNo
            Me.trastero2.Visible = False
            Me.importe_trastero2.Visible = False
            Me.Etiqueta101.Visible = False
            Me.Etiqueta115.Visible = False
 
    End Select
 
    ' Volver al registro original
    Me.Recordset.FindFirst "ID=" & currentRecordID
End Sub

Asegúrate de reemplazar "ID" en el código con el nombre del campo que identifica de manera única cada registro en tu formulario tabular.

Este código verifica si estás en un nuevo registro (`Me.NewRecord`). Si es un nuevo registro, no hace nada ya que aún no hay datos para ocultar o desocultar. Luego, almacena el valor del campo identificador del registro actual (`currentRecordID`) para que puedas volver al registro correcto después de realizar el cambio.

Después de ocultar o desocultar los campos, el código busca el registro original y te lleva de vuelta a él utilizando `Me.Recordset.FindFirst`.

Con este ajuste, el código debería ocultar y desocultar los campos solo en el registro en el que te encuentras en el formulario tabular.
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