Access - Comparaciones en access

 
Vista:

Comparaciones en access

Publicado por Jaime (35 intervenciones) el 03/08/2007 12:14:54
Necesito hacer una comparacion en un campo para modificar otro. Creo que lo necesito se haria en una consulta y necesito que en un campo de fechas se haga la siguiente comparacion:

Si el registro de una fecha es superior en 7 dias a la fecha actual, el registro de un campo si o no pase de desactivado a activado.

No se cual seria la estructura de esta peticion pero creo que por ahi van los tiros de lo que necesito

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

RE:Comparaciones en access

Publicado por Pepe (766 intervenciones) el 03/08/2007 12:31:02
Hola Jaime

Para hacer lo que quieres puedes utilizar una consulta de actualización.

En la primera columna, utiliza la función Diferencia de fecha, te pongo un ejemplo de como debería de estar.
DifFecha ("d"; [nombre del campo con la fecha];fecha())

En criterios de esta columna le pones el valor de días que necesites cumplir, en el caso que preguntas sería >7.

En otra columna baja el campo que quieres actualizar, y en la lína de "actualizar a" le pones Sí o No. Lo que necesites.

Suerte, Pepe
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

RE:Comparaciones en access

Publicado por Jaime (35 intervenciones) el 03/08/2007 12:51:30
Podrias especificarmelo un poco mas es que estoy muy verde en esto.
Tengo un campo que se llama Vencimiento(formato fecha). Entonces, ¿que tendria quecrar un campo nuevo para poner lo farmula o como?¿Como quedaria la formula:

DifFecha ("d"; [vencimiento];fecha())

¿Para que sirve la d entre comillas?

Luego en criterios pongo mayor de 7.

Y la ultima parte no la entiendo necesito que el campo Si/no desactivado por defecto pase a activado cuando esto ocurra. ¿Que tendria que poner en la linea actualizar a?

Muchas gracias por tu ayuda
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

RE:Comparaciones en access

Publicado por Pepe (766 intervenciones) el 03/08/2007 13:16:52
Te cuento Jaime

No te hace falta crear ningún campo nuevo, te basta con generar una expresión. Estando en diseño la consulta, si te situas en la línea "campo", pincha con el botón derecho del ratón y selecciona "generar".

Tendrás una ventana que es el generador de expresiones. Verás que tiene en la parte inferior tres columnas. En la de la derecha, pincha dos veces en funciones, luego en funciones incorporadas.

Después en la columna del centro, selecciona fecha/hora.

En la columna de la derecha, verás todas las funciones que hay de éste tipo. Pincha dos veces sobre "diffecha" y te pasara al cuadro que hay en la parte superior. Ahora pon la expresion como la acabas de poner y elimina "primerdiasemana" y "primerasemana" (no te hacen falta).

La d entre comillas, es para marcar el intervalo en el que queires sacar la diferencia de fechas. Como necesitas sacarla en días, hay que poner "D".

La otra parte, si lo que quieres es que en el campo Si/No, se ponga en Sí cuando se cumpla la condición. En la línea de "actualizar a" le pones Sí.

Pepe
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

RE:Comparaciones en access

Publicado por Jaime (35 intervenciones) el 03/08/2007 13:53:17
Pepe me da error. Esto es lo que tengo hecho:

Consulta de Actualizacion:
(Si/no) (Fecha)
Campo: Nombre Línea Nombre Anluado Vencimiento Cantidad
Tabla: Bancos Bancos Clientes Apuntes Apuntes Apuntes
Actualizar a:
Criterios:
o:

Campo: Expr1: DifFecha("d";[vencimiento];Fecha())
Tabla:
Actualizar a: "Si"
Criterios: >7
o:

Necesito que cuando vencimiento sea mayor en 7 dias a la fecha actual el campo apuntes pase a si.

¿Como he de hacerlo?

Perdon por necesitarlo tan mascado pero no doy con la tecla.

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

RE:Comparaciones en access

Publicado por Jaime (35 intervenciones) el 03/08/2007 14:05:08
Pepe ahora he puesto el si justo debajo del campo Si/no y me ha dado un error y me ha jodido la tabla entera. Me ha desmarcado todos.

Consulta de Actualizacion:
(Si/no) (Fecha)
Campo: Nombre Línea Nombre Anluado Vencimiento Cantidad
Tabla: Bancos Bancos Clientes Apuntes Apuntes Apuntes
Actualizar a: SI
Criterios:
o:

Campo: Expr1: DifFecha("d";[vencimiento];Fecha())
Tabla:
Actualizar a:
Criterios: >7
o:

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

RE:Comparaciones en access

Publicado por Pepe (766 intervenciones) el 03/08/2007 18:54:41
Hola Jaime,

Mira prepara una consulta sobre la tabla que tenga los registros, no se como se llama pero voy a pensar que se llama "APUNTES". Y el campo si/no que tienes voy a pensar que se llama "ANULADO"

La primera columna quedará así:
Campo: Expr1: DifFecha("d";[vencimiento];Fecha())
Tabla:
Actualizar a:
Criterios: >7
o:

La segunda columna quedará así:
Campo: Anulado
Tabla: APUNTES
Actualizar a: Sí
Criterios:
o:

Si no consigues que te funcione, te mando un ejemplo por correo.

Pepe
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

RE:Comparaciones en access

Publicado por Jaime (35 intervenciones) el 03/08/2007 19:06:56
Muchas gracias por tu interes pepe. Al final de la mañana lo consegui y lo hice justo como me dijiste eso si sin ti no lo hubiera conseguido. Pero he descubierto un cierto fallo en esto. Primero quiero que un apunte como muy bien dices quede anulado justo al 7 dia es decir a lo mejor tendria que poner >6 no?

Y por otro lado deberia tener una doble comprobacion primero esa, que anule un apunte a los 7 dias y por otro lado que desbloquee un apunte si no ha superado los 7 dias.

¿Como haria esta segunda parte?o mejor dicho, ¿Como hago para que se hagan las 2 comprobaciones?

Un saludo y muchas gracias por todo lo que has hecho.
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

RE:Comparaciones en access

Publicado por Pepe (766 intervenciones) el 03/08/2007 19:17:24
Para la primera cuestión puedes poner >=7. Con esto actualizarás el anulado, para todos los registros que la diferencia sea 7 o más de siete.

Para la segunda, tendrás que tener otra consulta igual, pero en la que el criterio sea <=6, y en el campo ANULADO, le pones actualizar a NO.

Saludos, Pepe
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

RE:Comparaciones en access

Publicado por Jaime (35 intervenciones) el 03/08/2007 21:25:32
Muchas gracias, eres un crack. Una vez hecho esto que me recomiendas para que esto se haga cada vez que inicio algo. Seguramente pondre un formulario inicial y otro para crear y modificar apuntes. ¿Como hago para que cuando se inicie este ultimo formulario se ejecuten las dos consultas de actualizacion?

Y para rizar el rizo me recomiendas algun tipo de programa llamese visual basic para crear un programa que tire de la base de datos access pero se cargue como si fuera un programa creado por mi, con mis propios menus y eso.

Un saludo y eternamente agradecido
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

Comparaciones en access

Publicado por Pepe (766 intervenciones) el 04/08/2007 08:52:53
Para que se ejecute de forma automática, lo puedes hacer utilizando una macro cuyas acciones serían:

Establecer advertencias-----> NO
Abrir consulta --------> nombre de una de las consultas de actualización
Abrir consulta --------> nombre de la otra consulta de actualización.

Para ejecutar la macro yo utilizaría el evento de "AL ABRIR". Así cada vez que se abra el formulario se actualizaran los vencimientos.

Cuando tengas muchos registros, tendrás que mirar la manera de limitar la consulta para que no tarde mucho tiempo. Ten en cuenta que cada vez que abras el formulario, dará un repaso a todos los registros dos veces y eso lleva su pequeño tiempo, todo dependerá del número de registros que tengas.

Sobre la recomendación de un programa, yo de Visual no tenga ni idea, todo lo que conozco es de access y a base de pegarme con él. De todas formas con access puedes hacerte una aplicación como la que parece que pretendes. Con tu menu, tus pantallas tus informes etc. Todo es cuestión de pensar y ponerse manos a la obra

Si te animas, empieza a trabajar y cuando tengas dudas, ya sabes, el botón de ayuda, un poco de manual y además por aquí tendrás a un montón de gente que te las aclarará o te dará alguna idea de como puedes hacer alguna cosa.

Saludos, Pepe
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