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 de Antonio Pugliese
0
0
Antonio Pugliese, Aunque trabajo en el área de Operaciones de un empresa de...
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.