Update con fecha |
Responder
|
| Autor | |
gabores
Habitual
Unido: 06/Agosto/2007 Localización: Bolivia Estado: Sin conexión Puntos: 123 |
Opciones de entrada
Gracias(0)
Cita Respuesta
Tema: Update con fechaEnviado: 22/Diciembre/2023 a las 04:06 |
|
Hola a todos
Nuevamente por aqui para ver si pueden ayudarme con un inconveniente que no estoy pudiendo resolver y no encuentro la manera de orientarme buscando en la WEB. Estoy tratando de hacer un UPDATE de un dato en una tabla con una fecha que obtengo de una variable, pero si bien la variable funciona y obtengo el valor que requiero, cuando la aplico en el UPDATE no es reconocida. Les muestro como lo hago para ver si pueden orientarme en donde está el error ya que no logro hacerlo por mi mismo. Dim diadato As Long diadato = DLookup("proveedorA_fijo_mensual_dia", "tbl_proveedores_A", "proveedorA_id = [Formularios]![frm_agenda_1]![frm_agenda_1B].[Form]![cuenta_id]") Dim fechavto As Date fechavto = CDate(DateSerial(Year(Date), Month(Date) + 1, diadato)) DoCmd.RunSQL "UPDATE tbl_proveedores_A SET tbl_proveedores_A.proveedorA_prox_vto = fechavto WHERE (((tbl_proveedores_A.proveedorA_id)=[Formularios]![frm_agenda_1]![frm_agenda_1B].[Form]![cuenta_id]));" Cuando intento ejecutar el codigo me muestra el mensaje "Introduzca fechavto" Desde ya muchas gracias. |
|
![]() |
|
dokk
Asiduo
Unido: 15/Mayo/2020 Localización: Hendaye Estado: Sin conexión Puntos: 201 |
Opciones de entrada
Gracias(0)
Cita Respuesta
Enviado: 22/Diciembre/2023 a las 07:20 |
|
Hola gabores:
Para empezar "fechavto" es una variable que has definido en vba. Si la tienes entre las comillas de la sentencia SQL no se trata como variable sino sólo como texto, es decir, no lleva una fecha sino la cadena "fechavto". Además una fecha en SQL se pasa entre almohadillas (#). Deberías concatenar de la siguiente forma: "UPDATE tbl_proveedores_A SET tbl_proveedores_A.proveedorA_prox_vto= #" & fechavto & "# WHERE (((tbl_proveedores_A.proveedorA_id)=" & [Formularios]![frm_agenda_1]![frm_agenda_1B].[Form]![cuenta_id] & "));" Lo mismo ocurre con [Formularios]![frm_agenda_1]![frm_agenda_1B].[Form]![cuenta_id], por eso te lo saco también de la cadena. A ver qué tal te va.
|
|
|
Albert Hostein
Aprendiendo cayendo |
|
![]() |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14428 |
Opciones de entrada
Gracias(0)
Cita Respuesta
Enviado: 22/Diciembre/2023 a las 09:21 |
|
.. entre almohadillas y formateada 'yanqui' ...
"#" & Format(fecha, "mm/dd/yyyy") & "#"
|
|
![]() |
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14926 |
Opciones de entrada
Gracias(0)
Cita Respuesta
Enviado: 22/Diciembre/2023 a las 14:35 |
|
Hola,
2 matices @dokk --> Lo de [Formularios].... funciona en la consulta @torito --> pasarlo a Long también funcionaría, ¿no? Un saludo
|
|
![]() |
|
gabores
Habitual
Unido: 06/Agosto/2007 Localización: Bolivia Estado: Sin conexión Puntos: 123 |
Opciones de entrada
Gracias(0)
Cita Respuesta
Enviado: 22/Diciembre/2023 a las 17:19 |
|
Buenas tardes a todos.
Lo pude solucionar con la primer respuesta aplicando la corrección del formato y referencia a la variable proveedorA_prox_vto= #" & fechavto & "# en cuanto al resto del código como se trataba de una variable numerica que referia al ID de la tabla y no hizo falta modificarlo. WHERE (((tbl_proveedores_A.proveedorA_id)=[Formularios]![frm_agenda_1]![frm_agenda_1B].[Form]![cuenta_id]));" Como siempre mi agradecimiento mas grande a todos por estar siempre ayudandonos desinteresadamente. Saludos! |
|
![]() |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14428 |
Opciones de entrada
Gracias(0)
Cita Respuesta
Enviado: 22/Diciembre/2023 a las 17:36 |
|
@Mr Xavi: si
A veces se nos olvida a todo el mundo que una fecha es un campo numérico de tipo doble, donde la parte entera es el día y la parte decimal representa la hora, segundos, .... Lo de ponerlo a Long es bueno, porque es otra manera de quitar la parte horaria de la fecha, que tan malos resultados trae ..
|
|
![]() |
|
dokk
Asiduo
Unido: 15/Mayo/2020 Localización: Hendaye Estado: Sin conexión Puntos: 201 |
Opciones de entrada
Gracias(0)
Cita Respuesta
Enviado: 22/Diciembre/2023 a las 19:30 |
|
Gracias por los apuntes a ambos. ¿Lo de "[formularios]!..." lo acepta tal cual, en español?
|
|
|
Albert Hostein
Aprendiendo cayendo |
|
![]() |
|
Responder
|
|
|
Tweet
|
| Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |