Cuadro combinado, no actualiza estado |
Responder |
Autor | |
jorros
Habitual Unido: 20/Octubre/2008 Localización: España Estado: Sin conexión Puntos: 154 |
Tema: Cuadro combinado, no actualiza estado Enviado: 21/Febrero/2021 a las 17:24 |
Buenas tardes En un formulario continuo donde muestro las cabeceras de factura, tengo un cuadro combinado llamado SITUACION con el que selecciono el estado actual de la factura: 1 ADMON, 2 JEFE DE OBRA, 3 GIRO etc. etc. En el evento después de actualizar tengo el siguiente código
Me.HisCabNumFac.SetFocus
Me.SITUACION.SetFocus
Me.SITUACION.Requery
DoCmd.SetWarnings False 'Esto deshabilita los mensajes de sistema DoCmd.RunSQL "UPDATE TbRegFacEst SET
TbRegFacEst.RegFacEstActivo = False WHERE (((TbRegFacEst.RegFacEstActivo)=True)
AND
((TbRegFacEst.RegFacEstFacNum)=[Formularios]![FrmConFacturas]![HisCabNumFac])
AND ((TbRegFacEst.RegFacEstFacTip)=[Formularios]![FrmConFacturas]![HisCabTip]))" DoCmd.RunSQL " INSERT INTO TbRegFacEst (
RegFacEstNum, RegFacEstFacNum, RegFacEstFacTip, RegFacEstFecIni,
RegFacEstActivo ) SELECT TbHisCabFac.HisCabSit, TbHisCabFac.HisCabNumFac,
TbHisCabFac.HisCabTip, Now() AS AltaSit, True AS Act FROM TbHisCabFac WHERE
(((TbHisCabFac.HisId)=[Formularios]![FrmConFacturas]![HisId]))"
DoCmd.SetWarnings True 'Esto habilita los mensajes de sistema Debe dar de alta en la tabla TbRegFacEst con el nuevo
estado de la factura, un registro de esa factura. El problema es que crea el registro con el estado
anterior a pesar de estar En el evento DESPUES DE ACTUALIZAR. He probado con un
Me.SITUACION.Requery con llevar el foco a otro campo y volverlo a situacion
pero el caso es que no consigo que lo haga bien. Gracias |
|
rokoko
Colaborador Unido: 16/Febrero/2008 Localización: Pamplona Estado: Sin conexión Puntos: 3062 |
Enviado: 21/Febrero/2021 a las 17:45 |
Prueba poner Me.reflesh al principio del codigo, podria ser que el dato no se habria guardado aun...
Y si he entendido bien si ese codigo lo lanzas en el evento despues de actualizar ya estas en el campo que quieres, te sobrarian las 3 primeras lineas de codigo. Y otra cosa veo que primero actualizas y despues creas registro con esas consultas, por casualidad no seria al reves, me despista tu ultima linea...Debe dar de alta....... Saludos
|
|
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: 14720 |
Enviado: 21/Febrero/2021 a las 18:12 |
Que utilices el evento Despues de actualizar el control no implica que el registro se haya guardado. Así es posible que, cuando llames al valor del control, aun mantenga el anterior.
Yo sugeriría salvar el registro antes de lanzar las consultas. If Me.Dirty Then DoCmd.RunCommand acCmdSaveRecord End If y el resto de código. Un saludo
|
|
jorros
Habitual Unido: 20/Octubre/2008 Localización: España Estado: Sin conexión Puntos: 154 |
Enviado: 21/Febrero/2021 a las 18:35 |
Gracias Rokoko, se comporta igual.
Muchas gracias Xavi, ha funcionado a la perfección. Desconocía la propiedad Dirty https://docs.microsoft.com/es-es/office/vba/api/access.form.dirty(property) Es un lujo contar con profesionales tan altruistas como vosotros. Se puede cerrar el hilo Muy agradecido
|
|
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 |