Ocultar botones de formulario al abrirse

Tengo un formulario que posee botones, para pasar de registro, guardar, eliminar, agregar.

El formulario se abre desde otro formulario de introducción donde se elije la acción que se llevara a cabo, abriendo el formulario con su respectiva instrucción por ejemplo Ver los registros (modo readonly), modificar (modo edit) los registros o agregar registros (modo add). El formulario al cual se dirige el usuario al entrar es el mismo, por ende posee todos los botones. Quisiera ocultar los botones que no se usen (por ejemplo ocultar el botón Agregar, eliminar y solo dejar los de desplazmiento si solo se van a ver registros. O solo dejar el de guardar si solo se van a agregar registros, etc).

Uso la sentencia Me.Boton.Visible=false o true, luego de la sentencia que indica abrir el formulario pero no me funciona, es mas deja de abrirse el formulario sin marcar error alguno. 

Por ejemplo, en el formulario F_paciente_intro le indico que el boton "abrir" al hacer click haga DoCmd.OpenForm "F_Paciente", , , , acFormAdd y abajo le escribo Me.Eliminar.Visible = False

Al agregar cualquier comando que intenta ocultar botones el formulario deja de abrir. Y no me sale ningún error.

¿Estoy eligiendo mal la acción que desencadena el ocultar el botón?

3 Respuestas

Respuesta
2

Las solución es la siguiente:

DoCmd.OpenForm "F_Paciente", , , , acFormAdd
Forms!F_Paciente! Aquie pones un control que no quieras desactivar. SetFocus
Forms!F_Paciente!Eliminar.Visible = False

en la linea 2 tienes que mandar el foco  a un control que no quieras desactivar por que, si cae el enfoque en el control que desactivaras marcara error

¡Gracias! Gracias, probé con la respuesta de jacinto y anduvo bien.


Private Sub Ingresar_Click()
DoCmd.OpenForm "F_Paciente", , , , acFormAdd
Dim Frm As Form
Set Frm = Forms!F_Paciente.Form
With Frm
    .Eliminar.Visible = False
    .OtroBoton.Visible = True
    .YElBotonQueSea.Visible = False
End With
Set Frm = Nothing
Respuesta
3

Esteban: Aunque no acabo de ver la situación de ese F_Paciente_Intro

Una de las maneras que creo te irá bien es >> Inmediatamente después de la línea de Abrir el Formulario. >> DoCmd.OpenForm "F_Paciente", , , , acFormAdd

Dim Frm As Form
Set Frm = Forms!F_Paciente.Form
With Frm
    .Eliminar.Visible = False
    .OtroBoton.Visible = True
    .YElBotonQueSea.Visible = False
End With
Set Frm = Nothing

Un saludo >> Jacinto

Respuesta
2

Prueba con la línea para cada botón que debería ser la siguiente, suponiendo que dejaste por defecto los nombres de los botones:

CommandButton1.Visible = False

CommandButton2.Visible = False

CommandButton3.Visible = True

Con esa sintaxis, no podes tener error alguno, porque pones el nombre exacto del botón, luego del punto va la propiedad que querés modificar, y luego del "=" pones el estado que le corresponde

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas