Access - problemas con boton en formulario de access 2003

   
Vista:

problemas con boton en formulario de access 2003

Publicado por jose maria josepreyes75@hotmail.com (89 intervenciones) el 24/05/2013 13:22:39
hola, mira a ver si me puedes echar un cable....
tengo una casilla de verificación que activa o desactiva un botón de comandos, el código seria este:

Private
Sub cv_Click()
Me.bc.Enabled = cv
End Sub
donde:
cv= nombre casilla de verificación
bc=nombre del botón de comando

las características estas:

Cuadro de texto=>propiedades=>datos=>activado=no
Casilla de verificación=>propiedades:

=>datos=>valor predeterminado=falso
=>eventos=>al hacer clic=[procedimiento de evento]

ahora bien, por otra parte este mismo botón, al pulsar sobre el hace visible o no a un subformulario, este es el código:

Private Sub bc_Click()
If subformulario.Visible = False Then
subformulario.Visible = True
Else
subformulario.Visible = False
End If
End Sub

pues bien, si incorporo los dos código anteriores lo que se consigue es , por una parte activar o desactivar este botón, y cuando este este activo, ver o no ver el subformulario, lo deseado es activar o no el botón y no ver el subformulario mientras el botón no este activo, cuando este este activo, por defecto que se vea el subformulario

¿que tendría que implementar?

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 Norberto

problemas con boton en formulario de access 2003

Publicado por Norberto (432 intervenciones) el 24/05/2013 14:12:37
Hola.

Prueba lo siguiente:

Por un lado en el evento al abrir del formulario pones

1
2
3
4
5
Private Sub Form_Open(Cancel As Integer)
    Me.Subformulario.Visible = False
    Me.bc.Enabled = False
    Me.vc = False
End Sub



Así partes con el check desactivado, el botón deshabilitado y el subformulario oculto. En el evento del check haces que cuando éste sea false, aparte de deshabilitar el botón oculte el subform así:

1
2
3
4
Sub cv_Click()
    Me.bc.Enabled = cv
    Me.subformulario.Visible = False
End Sub


Otra cosa. Para alternar la visibilidad del subformulario puedes usar

1
2
3
Private Sub bc_Click()
    subformulario.Visible = Not subformulario.Visible
End Sub


Es más corto.

Un saludo.
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

problemas con boton en formulario de access 2003

Publicado por jose maria (89 intervenciones) el 27/05/2013 12:54:31
gracias, no me funciono, me daba error de proceso, he cambiado un poco el entorno gráfico, ahora lo que hago es dejar visible y activado el botón pero no logro que por defecto el subformulario no se vea.

también implemente unas cosillas, aber si me puedes corregir un poco el código, en este subformulario tengo tres casillas de verificación, cuando pincho en alguna de ellas hago visible una cuarta que esta fuera de este subformulario, con el valor por defecto picado, la cosa es que si pico otra de esas tres esta cuarta se despica......

resultado deseado:

al picar cualquiera de estas tres que se haga visible esa cuarta y picada por defecto, que no cambie su valor ni estado si pico en las dos restantes y si despico las tres opciones anteriormente comentada, que vuelva a desaparecer la cuarta casilla

gracias
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

problemas con boton en formulario de access 2003

Publicado por Norberto (432 intervenciones) el 27/05/2013 16:04:15
¡Uf, cuanto pico! ¡Me recuerda a las películas españolas de los 80! Jejejeje.

A ver si me aclaro un poco y vamos por partes:

1. Para que por defecto no se vea el Subformulario en la vista diseño le pones la propiedad visible en Falso. De todas formas el código que te puse antes en el Form_Open también tendría que funcionar.

2. Supongo que con picar te refieres a darle valor True y no a hacerle clic y cambiar su valor. Según esta premisa si: Chk1 Or Chk2 Or Chk3 se debe de visualizar una cuarta que se encuentra en el formulario principal. En el momento que se visualice adoptará el valor True pero si la hemos cambiado y volvemos a activar cualquiera de las otras tres permanecerá sin cambiar. Es decir: sólo coge valor True en el momento que se visualiza. Luego permanece como estaba.

Si supongo bien el código sería el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Chk1_AfterUpdate()
    'Si cualquiera de las tres es True
    If Me.Chk1 Or Me.Chk2 Or Me.Chk3 Then
        'Si estaba oculta
        If Not Me.Parent!Chk4.Visible then
            'Visualizamos la casilla del formulario principal
            Me.Parent!Chk4.Visible = True
            'Y la activamos
            Me.Parent!Chk4 = True
        Else 'Si ya estaba visible
            'No hacemos nada. Se sigue viendo y no cambia el valor
        End If
    Else 'Si todas están desactivadas
        'La ocultamos
        Me.Parent!Chk4.Visible = False
    End If
End Sub


Repetido para cada una de las tres
1
2
3
4
5
6
7
Private Sub Chk2_AfterUpdate()
    ...
End Sub
 
Private Sub Chk3_AfterUpdate()
    ...
End Sub


Ni que decir tiene que tendrás que cambiar los nombres por los que tú les hayas dado. Si se me ha escapado algún matiz, me lo dices.

Un saludo.
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

problemas con boton en formulario de access 2003

Publicado por jose maria josepreyes75@hotmail.com (89 intervenciones) el 28/05/2013 09:39:36
bueno, te comento, lo de picar me refiero a que la casilla este activa y vacia, y yo le hago check, esto empezara a tener un valor, entonces, como bien dices vamos a llamar a las casillas dentro del subformulario chk1,2 y 3 la de fuera chk4......
lo que me hace tu codigo es la chk4 visible y chequeada, luego voy chequeando las otras tres y no pasa nada, la chk4 desaparece cuando "deschequeo" las chk1,2 y 3......
al final logre que el subformulario no se viera, se me estaba pasando un valor en las propiedades.....
te vuelvo a comentar lo deseado:

al chequear con valor true cualquiera de estas tres que se haga visible esa cuarta y con valor true tambien por defecto, que no cambie su valor ni estado si chequeo en las dos restantes que estan dentro del subformulario y si cambio el valor las tres opciones anteriormente comentada a false, que vuelva a desaparecer la cuarta casilla

gracias
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

problemas con boton en formulario de access 2003

Publicado por Norberto (432 intervenciones) el 28/05/2013 11:55:25
Ok.

Lo que tienes que hacer, en principio, es poner la propiedad Visible de la Chk4 en Falso en la vista diseño o añadir en el evento Al Abrir del formulaio principal la línea correspondiente. Tampoco dices si las checks y los formularios están vinvuladas a tablas o no. Si sí que están, habría que comprobar en cada evento Al activar registro el estado de las 3 para cambiar o no la 4ª.
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

problemas con boton en formulario de access 2003

Publicado por jose maria josepreyes75@hotmail.com (89 intervenciones) el 28/05/2013 14:23:49
¡¡¡¡¡¡Graciasssss!!!! era eso, en las propiedades y la relacion de las tablas, perdona, yo pensaba que si las habia echo.......
estoy biendo que voy a complicar el tema, no se si ponerlo en otro post, la cosa es que esta relacionao con esto......¿te atreves?
esto seria la cosa:
todas estas checks y formulario estan dentro de un control de fichas, tiene varias paginas.......
en la pagina A hay un cuadro de texto, el cual recoje la fecha de nacimiento y esta vinculado a un valor dentro de una tabla como fecha corta.....
la cosa es calcular la edad, este seria su codigo:

'Calculo de la edad
Function Calcular_Edad(Fecha_Nacimiento As Variant) As Integer
Dim Años As Variant
' comprueba si el valor no es nulo
If IsNull(Fecha_Nacimiento) Then
Calcular_Edad = 0
Exit Function
End If

Años = DateDiff("yyyy", Fecha_Nacimiento, Now)

If Date < DateSerial(Year(Now), Month(Fecha_Nacimiento), _
Day(Fecha_Nacimiento)) Then
Años = Años - 1
End If

Calcular_Edad = CInt(Años)
End Function

si este calculo fuera mayor a x y se "picara" un check en la pagina b, se deveria activar otro check en la pagina A
gracias
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