Access - Consulta de actualización

   
Vista:

Consulta de actualización

Publicado por Vicente (29 intervenciones) el 28/05/2009 22:16:08
Hola a todos:

Quería comentaros un problema que estoy teniendo con una consulta de actualización sobre una tabla, en un campo en concreto cuyo valor predeterminado es 0. De este modo, para los nuevos registros que introduzcan los usuarios, en este campo siempre aparecerá este valor, hasta que se realice la consulta de actualización, que incrementará dicho valor en 1, según unos parámetros.
Los campos son en la tabla son:

Nº expediente: 0 (valor predeterminado)
fecha generación
parte: Si/No
tipo de consulta

Mediante la consulta de actualización pretendo que estos campos se actualicen de la siguiente manera:

Nº expediente: (DMáx("[num_parte]";"Seguimiento";"[parte] = -1"))+1
fecha generación: Ahora()
parte: Criterio 0 (Sin datos de actualización, solo sirve como criterio de la consulta)
tipo consulta: Criterio 4 (Sin datos de actualización, solo sirve como criterio de la consulta)

Pues bien, cuando ejecuto la consulta, el campo fecha de generación se actualiza sin problemas, pero el campo Nº expediente, que inicialmente es 0, es borrado por la consulta, dejándome los registros actualizados en la fecha, pero con el Nº expediente borrado.
Sin embargo, he hecho pruebas y cuando los registros previos ya van por el 2 y el 3 de Nº expediente, si actualiza los nuevos registros al 4 sin ningún problema.
¿Qué le está ocurriendo a la consulta?

Gracias por vuestra colaboración

Vicente
Valencia (España)
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:Consulta de actualización

Publicado por 2pl (28 intervenciones) el 29/05/2009 07:55:07
Vicente, no entiendo muy bien la setencia Dmax , en la variable Nº Expediente estas cargando los valores +1 de aquellos registros que tengan -1 en parte.
El que la lleva la entiende, quizas sea lo correcto, pero lo veo un poco raro.
Saludos desde Cádiz
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:Consulta de actualización

Publicado por Vicente (29 intervenciones) el 29/05/2009 10:44:15
Hola

Con la sentencia Dmax, intento obtener el valor máxino para Nº Expediente, de aquéllos registros que en su campo [parte] tengan el valor "Sí" (boolean) o lo que es lo mismo -1. Y a ese valor máximo obtenido, es al que le sumo 1 y lo agrego a los registros que cumplen las otras dos condiciones:
[parte] = 0 'Es decir, "No"
[tipo] = 4
En resumen, intento obtener el valor máximo para Nº Expediente, de aquellos registros que ya se actualizaron anteriormente e incrementar en 1 a los nuevos en su Nº Expediente.

No sé si te lo habré aclarado un poco pero en cualquier caso gracias por tu tiempo

Saludos

Vicente
Valencia (España)
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:Consulta de actualización

Publicado por mi menda (1111 intervenciones) el 29/05/2009 11:37:14
Hola:
No te funciona con el primer registro, porque aunque le pongas valor predeterminado 0,
este valor todavía no se ha guardado en la tabla, por eso la función DMax al búscar en
la tabla lo que encuentra es un valor Nulo. Para evitar el valor nulo en el primer
registro hay que utilizar la Funcion Nz(), para que sí no hay valores nos devuelva 0.

Nz(DMáx("[num_parte]";"Seguimiento";"[parte] = -1"))+1

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:Consulta de actualización

Publicado por Vicente (29 intervenciones) el 29/05/2009 11:56:01
Muchísimas gracias!!!
Había encontrado otra forma de solucionar y era cambiar el criterio de la sentencia Dmax, pero me parece mucho más interesante y lógico así.
Repito, muchas gracias

Vicente
Valencia (España)
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