|
Responder
|
| Autor | |
Mariano75
Nuevo
Unido: 19/Diciembre/2019 Localización: Buenos Aires Estado: Sin conexión Puntos: 14 |
Tema: Calcular VacacionesEnviado: 19/Diciembre/2019 a las 15:50 |
|
Hola a todos, aquí los saludo desde Buenos Aires. Les comento mi problema, no le encuentro la vuelta. Espero me puedan dar una mano con esto. Estoy armando una base de datos para calcular vacaciones de los trabajadores. Tengo un formulario asociado a tablas y unos controles asociados a macros. Cuando abro el formulario necesitaría forzar la ejecución de 2 macros para ver los cálculos en dichos controles pero no logro hacerlo, lo que me pasa es que cada vez que abro el formulario, algunos registros aparecen con el cálculo y otros no... tengo que ir registro por registro, posicionarme dentro de cada campo para que la macro haga el cálculo y la verdad es muy incómodo dado que son casi 400 personas. Los campos que necesitaría que se actualicen automáticamente son: Auxiliar_AMD y DiasVacaciones Al cargar el formulario Vacaciones se ejecuta el siguiente código, pero creo que no hace nada o por lo menos no es lo que necesito que haga: Private Sub Form_Load() DoCmd.RunMacro "Auxiliar_AMD" DoCmd.RunMacro "CalcularVacaciones" End Sub Espero haber sido claro con el problema. Adjunto la base de datos para que se entienda mejor. Aguardo sus comentarios y más que agradecido si pudieran darme una mano con este tema. |
|
|
Atte.
Mariano |
|
![]() |
|
lbauluz
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 29/Marzo/2005 Localización: La Gloria Estado: Sin conexión Puntos: 3878 |
Enviado: 19/Diciembre/2019 a las 17:56 |
|
Por probar
Private Sub Form_Load() DoCmd.RunMacro "Auxiliar_AMD" DoCmd.RunMacro "CalcularVacaciones" End Sub Private Sub Form_Open(Cancel As Integer) DoCmd.SelectObject acForm, Me.Name Me.Repaint DoEvents End Sub !Suerte! Luis
|
|
|
El Búho es un pajarraco
|
|
![]() |
|
Mariano75
Nuevo
Unido: 19/Diciembre/2019 Localización: Buenos Aires Estado: Sin conexión Puntos: 14 |
Enviado: 19/Diciembre/2019 a las 18:33 |
|
Hola Luis! Gracias por tomarte el tiempo de leer y responder. Probé de colocar ambas sentencias pero nada, luego probé de colocar la de abajo y tampoco... es decir, en el registro 1 si aparecen los cálculos pero desde el registro 2 en adelante ya no aparecen o aparece 1 cálculo pero no todo... La verdad no se me ocurre qué puede ser? Gracias igualmente por fijarte!! Saludos! Mariano
|
|
|
Atte.
Mariano |
|
![]() |
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14926 |
Enviado: 19/Diciembre/2019 a las 18:49 |
|
Si las macros se ejecutan únicamente para el primer registro... deberás recorrer todos los registros para lanzar las macros.
¿Que tal andamos de VBA? (porque yo de macros, lo justo)
|
|
![]() |
|
Mariano75
Nuevo
Unido: 19/Diciembre/2019 Localización: Buenos Aires Estado: Sin conexión Puntos: 14 |
Enviado: 19/Diciembre/2019 a las 20:02 |
|
De VBA no tengo idea. Si, justamente lo que quería evitar es recorrer registro por registro... seguramente debe haber algún procedimiento en VBA que haga lo que necesito pero no conozco tanto como para meterme en ese tema. Estoy al horno!
|
|
|
Atte.
Mariano |
|
![]() |
|
mounir
Colaborador
Unido: 09/Febrero/2009 Localización: Asturias-España Estado: Sin conexión Puntos: 6521 |
Enviado: 20/Diciembre/2019 a las 17:37 |
|
Hola!
Funciona correctamente con poner el código también en el evento al activar e registro:- Private Sub Form_Current() DoCmd.RunMacro "Auxiliar_AMD" DoCmd.RunMacro "CalcularVacaciones" End Sub |
|
|
Un Saludo.
|
|
![]() |
|
Mariano75
Nuevo
Unido: 19/Diciembre/2019 Localización: Buenos Aires Estado: Sin conexión Puntos: 14 |
Enviado: 20/Diciembre/2019 a las 18:02 |
|
Mounir, si lo probé y va de diez!!!! La verdad me ayudaste muchísimo con este aporte.... Concretamente qué es lo que hace el código que me pasaste? Porque inclusive probé de borrar los datos a mano del formulario y cuando me muevo por los registros, los vuelve a calcular... La verdad impresionante!!! No sé nada de VBA y esto es fundamental para mi!! Muchísimas gracias si hay alguna forma de calificarte por el aporte por favor decime que te califico. Gracias!
|
|
|
Atte.
Mariano |
|
![]() |
|
Mariano75
Nuevo
Unido: 19/Diciembre/2019 Localización: Buenos Aires Estado: Sin conexión Puntos: 14 |
Enviado: 20/Diciembre/2019 a las 18:03 |
Mounir, si lo probé y va de diez!!!! La verdad me ayudaste muchísimo con este aporte.... Concretamente
qué es lo que hace el código que me pasaste? Porque inclusive probé de
borrar los datos a mano del formulario y cuando me muevo por los
registros, los vuelve a calcular... La verdad impresionante!!! No sé nada de VBA y esto es fundamental para mi!! Muchísimas gracias si hay alguna forma de calificarte por el aporte por favor decime que te califico. |
|
|
Atte.
Mariano |
|
![]() |
|
mounir
Colaborador
Unido: 09/Febrero/2009 Localización: Asturias-España Estado: Sin conexión Puntos: 6521 |
Enviado: 20/Diciembre/2019 a las 18:08 |
|
Hola!
Me alegro mucho de que te haya funcionado. Lo que hace este evento te dejo lo que dice Microsoft Evento Form.Current (Access) |
|
|
Un Saludo.
|
|
![]() |
|
Mariano75
Nuevo
Unido: 19/Diciembre/2019 Localización: Buenos Aires Estado: Sin conexión Puntos: 14 |
Enviado: 20/Diciembre/2019 a las 18:17 |
|
Muchas gracias!!
![]() |
|
|
Atte.
Mariano |
|
![]() |
|
mounir
Colaborador
Unido: 09/Febrero/2009 Localización: Asturias-España Estado: Sin conexión Puntos: 6521 |
Enviado: 20/Diciembre/2019 a las 18:18 |
|
Hola!
El problema que tenías era que pusiste el código en un evento estático, es decir, se produce solo una vez y es al cargar o abrir el formulario, mientras el evento al activar el registro hace como si abrieses de nuevo el formulario cada vez que te desplazabas a un registro y ,por consiguiente, llama a los macros. |
|
|
Un Saludo.
|
|
![]() |
|
Mariano75
Nuevo
Unido: 19/Diciembre/2019 Localización: Buenos Aires Estado: Sin conexión Puntos: 14 |
Enviado: 21/Diciembre/2019 a las 00:11 |
|
Claro, comprendo.... luego de probarlo me di cuenta de algo.... estando dentro del formulario, si yo le cambio la fecha de ingreso a alguna persona (y por ende le cambia la antigüedad), no calcula automáticamente... tal como decís vos, tengo que salir del formulario y volver a entrar para que vuelva a calcular pero eso es lo de menos...
Por lo pronto me pudiste destrabar, ahora voy a poder seguir editando el formulario dado que tengo que seguir haciendo un par de cálculos más...
|
|
|
Atte.
Mariano |
|
![]() |
|
Responder
|
|
|
Tweet
|
| Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |