** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - PROPIEDAD ONTIME EN FORM
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoPROPIEDAD ONTIME EN FORM

 Responder Responder
Autor
Mensaje
Goliat2000 Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 11/Noviembre/2014
Localización: Madrid
Estado: Sin conexión
Puntos: 318
Enlace directo a este mensaje Tema: PROPIEDAD ONTIME EN FORM
    Enviado: 01/Diciembre/2018 a las 11:54
Hola buenos días compañeros, pretendo hacer algo que, de momento, no funciona; pudiera ser que no es posible en VBA. Quiero conseguir que, desde un formulario y en su evento Cerrar, abrir otro pero estableciendo su "Intervalo de cronometro", establecerlo a 0 (cero) para que no se dispare la ejecución de un código que tengo en el evento "Al Cronometro" de ése otro formulario. Escribo éste código, pero me resulta error 2465 "error no definido por el objeto"

 DoCmd.Echo False, ""
  DoCmd.OpenForm "frmPrincipal"
  Forms!frmPrincipal.TimeInterval = 0
  DoCmd.Maximize
  DoCmd.Echo True, ""
  DoCmd.Close acForm, Me.Name

En la línea en rojo, se produce el error.

¿Es posible establecer el TimeInterval del formulario que se abre desde el formulario que se cierra; al igual que se puede hacer el adjudicarle el recordSource?

Gracias un Saludo a todos. Buen día
Muchas gracias, aunque sólo lo hayas leído.
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: en línea
Puntos: 4908
Enlace directo a este mensaje Enviado: 01/Diciembre/2018 a las 12:04
Hola!

Has intentado hacerlo al revés, o sea, en el evento al abrir o al cargar el formulario principal?.
Un Saludo.
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 737
Enlace directo a este mensaje Enviado: 01/Diciembre/2018 a las 12:16
Agregando a lo indicado por mounir, puedes usar OpenArgs para pasar información al formulario abierto, y así hacer lo que desees al abrirlo:

- https://docs.microsoft.com/es-ES/office/vba/api/Access.Form.OpenArgs
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 10485
Enlace directo a este mensaje Enviado: 01/Diciembre/2018 a las 12:27
Otra opción es que en el formulario principal te crees una Sub pública (o una Function) en la cual modificas el timer y la lanzas desde el otro.
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
Goliat2000 Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 11/Noviembre/2014
Localización: Madrid
Estado: Sin conexión
Puntos: 318
Enlace directo a este mensaje Enviado: 01/Diciembre/2018 a las 12:51
Gracias por las respuestas. La cuestión es que, cuando el form se abre al inicio de la aplicación, si quiero que se ejecute el código, pero cuando lo abro desde el form en cuestión porque estoy en proceso de cerrar la aplicación no quiero que se ejecuete. No necesito se ejecute dos veces, (al abrir elform para iniciar y al abrir el form para abandonar la aplicación). Un saludo
Muchas gracias, aunque sólo lo hayas leído.
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: en línea
Puntos: 4908
Enlace directo a este mensaje Enviado: 01/Diciembre/2018 a las 13:25
Hola!

Se me ocurre una opción un poco ortodoxa, insertar en el formulario un cuadro de texto oculto con valor predeterminado (0), y cuando lo abras desde otro formulario le asignas el valor (1) y le aplicas la condición "If", si el cuadro de texto = 0 aplicar el evento "TimeInterval" y si no desactivarlo.
Un Saludo.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 10485
Enlace directo a este mensaje Enviado: 01/Diciembre/2018 a las 13:29
Una opción es con el OpenArgs.

- si es la primera vez al abrir el formulario le dices que ejecute el timer dándole valor (p.ej el valor Openargs = ""):

me.timerinterval = 9999

- si lo lanzas desde el formulario le pones un valor al openargs y no le das valor a la propiedad timerinterval, con lo que no se ejecuta 
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
Goliat2000 Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 11/Noviembre/2014
Localización: Madrid
Estado: Sin conexión
Puntos: 318
Enlace directo a este mensaje Enviado: 03/Diciembre/2018 a las 15:59
Hola compañeros. He optado por la solución de Mounir y que me ha parecido más sencilla. Funciona correctamente conforme a lo que deseaba. Gracias a todos y un saludo.

Se puede cerrar el hilo
Muchas gracias, aunque sólo lo hayas leído.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable