Condición Where en formulario de ingreso de horas

esperando te encuentres bien y ojala me puedas ayudar, tengo la siguiente situación, he generado una base con formularios individualizados de ingreso de horas para proyectos, generando una macro, se abre a diario en cada computador, y los usuarios ingresan sus horas diariamente para cada proyecto, funciona a la perfección, ahora paso a comentar mi problema, genere un botón de modificar, el cual les permite hacer la modificación diaria, como funciona este modificar, llama a una macro incrustrada que abre el formulario muestra los adías anteriores pero solo puedo modificar el día, aplicando el filtro ejemplo yo [EdicionDeRegistroHoy]![Horas_Fecha]=Format((Ahora()); dd/mm/aaaa ) Y [EdicionDeRegistroHoy]![Empleado_ID]=2 , cual es la condición o como lo puedo hacer para que me deje modificar los otros datos de la semana que también son mostrados en el formulario?
Ocupo access 2007..
Desde ya agradecido

1 Respuesta

Respuesta
1

Leyendo tu consulta no veo por qué no tienes que poder modificar los datos anteriores. Se me escapa alguna cosa que no me has comentado (no porque no lo quieras comentar, sino porque quizá no sepas que debes comentármelo).

Quizá lo mejor es que me pases tu BD por mail para que yo pueda ver si hay "algo" escondido en las configuraciones.

Te ruego que, si te decides a pasarme la BD:

- Lo hagas comprimiéndola en zip o rar

- Me indiques, en el mail, los nombres de formularios que intervienen en el proceso y me pongas un ejemplo de lo que quieres hacer. Algo así como : "abro el formulario XXX, le doy al botón YYY y quiero modificar el campo ZZZ, y ahí es donde no me deja".

Mi mail es neckkito(ARROBA)yahoo(PUNTO)es

Muchas gracias lo haré así, te enviare en .rar la base...
ahora paso a comentar lo que busco, he generado un formulario para cada usuario, de ingreso de horas diario.
también genere un botón de modificar, el cual abre una macro incrustrada ahí le doy la condición where del día, peor no se como aplicarlo a la semana....
para mi funciona muy bien ya que solo yo puedo cambiar los datos, pero como entenderás en cada empreaa hay un jefe que quiere lo mas rebuscado, y el botón me permite modificar la información diaria, ejemplo estamos a día miércoles al pinchar modificar solo puedo modificar dicho día miércoles, (me muestra todos los datos,, pero si quiero ingresar datos en el día martes o lunes, obviamente esta bloqueado.
que hace el botón es ir a buscar los datos de la consulta registro-diario, no se si con esta breve descripción me puedes ayudar
tea agradezco mucho.

ya estimado te acabo de enviar la base vía correo electrónico, esperando me puedas ayudar.........

se despide gregory nick

Vamos a ver si hemos acertado con la contestación, porque no sé si lo que voy a contestarte se ajusta a lo que necesitas. Aprovecharé para comentarte un par de cosillas más, ya que estamos.

Veamos...

1.- Botón modificar

Tu botón "modificar" lleva una macro incrustada, con un código y una condición WHERE. Cámbiale la expresión de la línea "AplicarFiltro" que tienes por esta otra:

ParcFecha("ww";[EdicionDeRegistroHoy]![Horas_Fecha];2)=ParcFecha("ww";Ahora();2) Y [EdicionDeRegistroHoy]![Empleado_ID]=1

Con esto el formulario te debería mostrar los registros correspondientes a la semana en la qué estas trabajando.

2.- Botón refrescar

Cuando actualizas los datos en el formulario "EdicionDeRegistroHoy" y cierras esas modificaciones no se reflejan al volver al formulario del trabajador: tienes que cerrarlo y volverlo a abrir para ver los cambios.

Para solucionar eso debemos recurrir a código. Para ello, en el formulario del trabajador, creas un botón de comando y sacas sus propiedades -> Pestaña eventos -> Al hacer click, y le generas el siguiente simple código:

...

Private Sub ...
Me.Refresh
End Sub

...

3.- La base que me has enviado, descomprimida, pesa alrededor de 450MB. Si yo la compacto me queda un tamaño de 150MB. Conclusión: seria interesante que compactaras tu BD.

Para ver de qué va esto te sugiero que eches un vistazo a este link: http://neckkito.eu5.org/index.php?option=com_content&view=article&id=86:compactacion&catid=47:post-access&Itemid=55

---

Te he remitido tu BD con los cambios aquí comentados. Ya me dirás qué tal.

Muchas pero muchas gracias, diste en el clavo para la modificación.se ajusta claramente para la modificación de los días de la semana, también bajo la modificación que realizaste para la modificación de los días de la semana no muestra la fecha del día a modificar lo incluí, y queda perfecto.
Te puedo molestar con lo ultimo. por favor..
Espero no me encuentres majadero o abusador, pongo al mismo formulario de ejemplo pedro frías, pretendo generar un botón de ingreso adicional, al ingreso Diario, ejemplo pedro frías fue a terreno el lunes, y llego el jueves y quiere ingresar las horas del día lunes a miércoles, si ves el código de ingresar lo condiciono a diario.... me puedes ayudar con eso?
Gracias... si no me puedes ayudar finalizo la pregunta... y te doy tu respectiva puntuación..... muchas pero muchas gracias......
Gregory Toledo..

Miguel, esperando te encuentres bien....
Mira yo veré el código y hacer el ingreso para los otros días... después compartiré la información.
El problema que tengo ahora es, que al aplicar ParcFecha("ww";[EdicionDeRegistroHoy]![Horas_Fecha];2)=ParcFecha("ww";Ahora();2) Y [EdicionDeRegistroHoy]![Empleado_ID]=1
esto efectivamente me entrega los datos a modificar de la semana, pero también me muestra los datos del año pasado a la misma fecha.... puedes con otro uduario ejemploGregory Toledo..
yo filtre para que me muestre solo los datos de la semana y del año en curso así para el formulario...
FROM Horas
WHERE DateDiff('ww',Horas.Horas_Fecha,now())>=0 ANDDateDiff('ww',Horas.Horas_Fecha,now())<=0
GROUP BY Horas.Horas_Fecha, Horas.Proyecto_ID, Format(([Horas_Fecha]),"dddd"), Format(([Horas_Fecha]),"ww"), Horas.Empleado_ID
HAVING (((Format(([Horas_Fecha]),"ww"))=Format((Date()),"ww")) AND ((Horas.Empleado_ID)=2));
en parcfecha como le doy la condición para el año en curso?
Espero me haya explicado....
Agradecido..
Gracias....

Vamos a ver, Gregory...

La función DatePart no tiene un argumento "especifico" para indicarle la semana y el año que quieres; debes indicárselo por separado.

En pocas palabras, que debes indicar otro AND en las condiciones del WHERE.

Partiendo de la base de que en tu formulario EdicionDeRegistrosHoy has insertado el campo [Horas_Fecha], la expresión de la condición de tu macro debería quedar así:

ParcFecha("ww";[EdicionDeRegistroHoy]![Horas_Fecha];2)=ParcFecha("ww";Ahora();2) Y [EdicionDeRegistroHoy]![Empleado_ID]=2 Y Año([EdicionDeRegistroHoy]![Horas_Fecha])=Año(Ahora())

Lo anterior aplicado al formulario de Gregory Toledo (Empleado 2)

Por cierto, "odio" las macros... je, je...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas