Consulta de actualización-Modificar registros

Poseo una tabla y deseo sustituir los registros que posean en su fecha el año 1998 por el de 2011.
Tengo clara la expresión del campo criterios pues sería ésta: Como "**/**/1998"
Pero sin embargo, he dado mil vueltas para elaborar la del campo Actualizar a, y no hay forma....

1 respuesta

Respuesta
Al estar integrado el dato año dentro del campo fecha no es actualizable por separado. Tiene dos opciones:
- Tener la fecha disgregada con un campo para el año. (Esta parte si te sirve, estoy seguro que sabes hacerla). Pero si necesitas ayuda me avisas.
- Realizar el cambio por medio de código VB + SQL
Si te interesa la segunda propuesta me dices y te digo como hacerlo.
Hola,
Pues, la verdad es que me interesa la segunda respuesta, te agradecería que me dijeras las fórmulas a emplear porque no atino. Gracias
Un saludo
Te escribo el código por segunda vez. Ya lo había escrito hace un rato y el ordenador se puso tonto y me lo borró.
Supondré que tienes dos controles en un formulario donde defines que año vas a buscar (AÑOACTUAL) y a que año vas a cambiar (AÑONUEVO). El recordset Tabla, mejor le cambias el nombre por el de la tabla real, en la que tienes el campo FECHA al que le quieres cambiar el año.
Si no lo quieres hacer escribiendo los datos en controles del formulario puedes sustituir la línea de asignación de valores a las variables VbAñoactual y VbAñonuevo por dos InputBox en el código. Sería algo así:
VbAñoactual=InputBox("INDIQUE EL AÑO QUE QUIERE ACTUALIZAR")
VbAñonuevo=InputBox("INDIQUE EL AÑO AL QUE QUIERE CAMBIAR")

Dim BBDD As Database
Dim Tabla As RecordSet
Dim VbAñoactual As Integer, VbDia As Integer, VbMes As Integer, VbAñonuevo
VbAñoactual=AÑOACTUAL
VbAñonuevo=AÑONUEVO
Set BBDD=CurrentDb
Set Tabla=BBDD.Openrecordset ("SELECT Tabla.Fecha FROM Tabla WHERE Year(Tabla.Fecha)= " & VbAñoactual )
If Not Tabla.OEF Then
    Tabla.Movefirst
    Do Until tabla.EOF
       VbDia=Day(Tabla!Fecha)
       VbMes=Month (Tabla!Fecha)
       Tabla.Edit
       Tabla.Fecha=Format(DateSerial(VbAñonuevo,VbMes, VbDia),"dd/mm/yyyy")
       Tabla.Update
       Tabla.MoveNext
   Loop
End If
Hola Tony,
He intentado introducir las fórmulas no me salen. Por favor pasámelas en español. A mí me aparece lo siguiente:
Actualizar a :
Criterios:
Y debo cambiar la fecha de 1998 a 2001. El formato de la fecha en la tabla es el siguiente: dd/mm/aaaa
Un saludo, y gracias por tu rapidez a la hora de contestar.
Creo que no leíste los comentarios previos al código. Este código no es para utilizar una consulta de actualización, ya que no es posible modificar una parte interna de un registro mediante las mismas. Si quieres utilizar una consulta de actualización de Access, he sugerido que disgregues el campo año como un dato aparte.
El código que he escrito es en caso de que quieras seguir trabajando con las fecha completa como un campo inseparable y para ello debes tener un formulario donde:
- Tengas un botón que sea para ejecutar este código como te lo he puesto . En este caso después de pulsarlo te pedirá que escribas los datos que quieres cambiar.
- Tengas dos cuadros de texto en los que previamente escribas el valor a buscar y el valor a cambiar y luego de pulsar el botón realice el cambio sin preguntar nada más (que es como está escrito el código).
Te repito esto no son fórmulas para introducir en una consulta de Access. Disculpa si te suena como regaño, sólo intento asegurarme que esté clara la diferencia.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas