Actualizar un campo Fecha mediante VBA en un tabla

Pregunta rápida.

Tengo este código:

Private Sub Etiqueta134_Click()
    On Error Resume Next
    Dim Valoracion As Double
    Dim FechaFinal As Date
    Valoracion = InputBox("¿Qué te ha parecido libro? Puntúalo del 1 (no me ha gustado nada) a 5 (me flipa).")
    FechaFinal = Format(Date, "dd-mmm-yy")
    CurrentDb.Execute "UPDATE TLibros SET [Valoracion]=" & Valoracion & " WHERE Titulo='" & Me.Titulo & "'"
    CurrentDb.Execute "UPDATE TLibros SET [FechaFinal]=" & FechaFinal & " WHERE Titulo='" & Me.Titulo & "'"
    CurrentDb.Execute "UPDATE TLibros SET [PaginasLeidasTotal]=" & [Paginas] & " WHERE Titulo='" & Me.Titulo & "'"
    CurrentDb.Execute "UPDATE TLibros SET [Estado]=" & "4" & " WHERE Titulo='" & Me.Titulo & "'"
End Sub

Pero la fecha que me introduce es del siglo pasado (30-dic-1899), y creo que no vivimos en ese año (de momento). ¿Qué estoy haciendo mal?

1

1 respuesta

Respuesta
3

Ponlo así:

FechaFinal=Format(Date,"mm/dd/yyyy")

CurrentDb.Execute "Update TLibros SET [FechaFinal]=#" & FechaFinal & "# WHERE ...

Como comentario al margen, podrías hacer una sola línea de actualización en vez de 4: https://www.w3schools.com/sql/sql_update.asp

Hola, muchas gracias. Funciona. He probado a hacer solo una línea, pero, intentando cortarla, no tengo narices a hacerlo funcionar, pues queda superlargo, y no encuentro el error. Me estoy volviendo tarumba con tantos apóstrofos.

    CurrentDb.Execute "UPDATE TLibros SET " _
    & " [Valoracion]=" & Valoracion & "" _
    & " WHERE Titulo='" & Me.Titulo & "'"
CurrentDb.Execute "UPDATE TLibros SET [Valoracion]=" & Valoracion & ", [FechaFinal]=#" & FechaFinal & "#, [PaginasLeidasTotal]=" & [Paginas] & ", [Estado]=4 WHERE Titulo='" & Me.Titulo & "'"

o si la quieres dividir:

CurrentDb.Execute "UPDATE TLibros SET [Valoracion]=" & Valoracion  _
                   & ", [FechaFinal]=#" & FechaFinal  _
                   & "#, [PaginasLeidasTotal]=" & [Paginas]  _
                   & ", [Estado]=4 WHERE Titulo='" & Me.Titulo & "'"
La pregunta no admite más respuestas

Más respuestas relacionadas