Access - Desactivar Boton en Formulario

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

Desactivar Boton en Formulario

Publicado por rambling (225 intervenciones) el 05/02/2019 00:08:37
Saludos.
Tengo un Formulario en el que quiero desactivar un botón de comando hasta que todos los campos del mismo esten rellenos.
Muchas gracias.
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 Antoni Masana
Val: 78
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Desactivar Boton en Formulario

Publicado por Antoni Masana (32 intervenciones) el 05/02/2019 07:05:47
CommandButton.Enabled = False

Saludos.
\\//_
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
sin imagen de perfil
Val: 99
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Desactivar Boton en Formulario

Publicado por rambling (225 intervenciones) el 05/02/2019 09:12:51
Gracias, pero lo que necesito saber es como activarlo solo cuando todos los campos del form esten rellenados y mientras no lo este permanezca desactivado.
Saludos
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
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Desactivar Boton en Formulario

Publicado por Norberto (753 intervenciones) el 05/02/2019 12:00:29
Hola.

En el evento Después de actualizar de cada control deberías de poner el siguiente código:

1
2
3
Private Sub Control_AfterUpdate()
    ComprobarControles
End Sub

Al final del módulo añades el procedimiento:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub ComprobarControles()
    Dim Ok As Boolean, Ctrl As Control
    Ok = True 'Suponemos que están todos rellenos
    For Each Ctrl In Me.Controls 'Revisamos todos los controles
        'Aquí viene el lío. No dices si todos los campos son cuadros de texto o hay algún combo, check... Vamos a suponer que todos son cuadros de texto
        If TypeName(Ctrl) = "TextBox" Then 'Si el control es un cuadro de texto
            If IsNull(Ctrl) Then 'Si está vacío
                Ok = False
                Exit For 'Salimos del bucle
            End If
        End If
    Next
    Me.cmdComando.Enabled = Ok
End Sub

Si tienes más tipos de controles deberás incluirlos en la verificación de tipo. Yo en esos casos uso una de estas maneras:
1
2
3
4
5
6
...
    Select Case TypeName(Ctrl)
        Case "TextBox", "ComboBox", "ListBox"
            ...
    End Select
...

1
2
3
4
5
6
7
...
    Const TiposControles = "\TextBox\ComboBox\ListBox\"
    ...
    If InStr(1, TiposControles, TypeName(Ctrl) > 0 Then
        ...
    End If
...

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
sin imagen de perfil
Val: 99
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Desactivar Boton en Formulario

Publicado por rambling (225 intervenciones) el 07/02/2019 10:50:55
saludos Norberto.
He seguido tus instrucciones pero no me funciona, el form se compone de seis cuadros de texto de los cuales dos son calculados hay cuatro. con formato num general y dos con formato moneda. ademas hay cuatro botones de comando, sumar, calcular recibos, ver recibos y salir del form.
no obstante lo anterior creo que he llegado a una solución intermedia, desactivando los botones y activando los cuadros de texto a medida que se rellena el anterior y asi al llegar al ultimo cuadro rellenar activa el correspondiente botón de comando.

TextBox2.enabled=true
docmd.gotoControl "TextBox2"

asi en cada textBox
saludos
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
Imágen de perfil de Antoni Masana
Val: 78
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Desactivar Boton en Formulario

Publicado por Antoni Masana (32 intervenciones) el 07/02/2019 11:37:57
Creo que Norberto te lo a explicado en su primera frase, el problema es que lo entiendas.

Desconozco la sintaxis correcta de el nombre del evento cuando sales de un TextBox en Access.

Vamos a suponer que tienes 6 TextBox que han de contener número y el evento que se ejecuta al salir de el es EXIT sin parámetros.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub TextBox1_Exit(): Call Activa_Boton(): End Sub
Private Sub TextBox2_Exit(): Call Activa_Boton(): End Sub
Private Sub TextBox3_Exit(): Call Activa_Boton(): End Sub
Private Sub TextBox4_Exit(): Call Activa_Boton(): End Sub
Private Sub TextBox5_Exit(): Call Activa_Boton(): End Sub
Private Sub TextBox6_Exit(): Call Activa_Boton(): End Sub
 
Private Sub Activa_Boton()
    Dim Num as Byte
                                    Num = 0
    If Val(TextBox1.Text) <> 0 Then Num = Num + 1
    If Val(TextBox2.Text) <> 0 Then Num = Num + 1
    If Val(TextBox3.Text) <> 0 Then Num = Num + 1
    If Val(TextBox4.Text) <> 0 Then Num = Num + 1
    If Val(TextBox5.Text) <> 0 Then Num = Num + 1
    If Val(TextBox6.Text) <> 0 Then Num = Num + 1
 
    If Num = 6 Then
       Boton.Enabled = True
    Else
       Boton.Enabled = False
    End If
End Sub

Esto no es un copiar y pegar. Si entiendes este código podrás aplicarlo a tu problema.

¿Que hace?

Todos los TextBox el salir o al perder el foco ejecutan un evento asociado y lo que hago en este evento es que ejecute un proceso (Activa_Boton) que mira si todos los TextBox que me interesas tienen datos para activar o no el bóton.

En mi ejemplo pogo que contengan un número diferente de cero pero hay otras opciones y formas de hacerlo, por ejemplo con un IF NOT EMPTY(..) ( si no esta vacía es que tiene datos ).


El funcionamiento es básicamente este, la literatura te la dejo en tus manos.

Saludos.
\\//_
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
sin imagen de perfil
Val: 99
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Desactivar Boton en Formulario

Publicado por Rambling (225 intervenciones) el 07/02/2019 14:27:48
Muchas gracias por tu ayuda, voy a ver si lo consigo.
saludos.
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