Actualizar un registro especifico en una tabla

Necesito saber como puedo dar una orden de actualizar un campo en un registro seleccionado en un formulario mediante un instrucción SQL, lo que sucede es que no tengo forma de dar una instrucción WHERE clara con los datos existentes en los registros. La idea es como decirle al sistema que actualize un campo con un valor en el registro actual.
El formulario muestra varios registro asociados, la idea es que se coloque un botón al lado de cada registro y que cuando se haga clic en el botón se guarde un valor o fecha en un campo de ese registro en que estoy ubicado para cambiar un estado por ejemplo o registrar la fecha del sistema.

1 respuesta

Respuesta
1
Estoy suponiendo que tienes un formulario continuo (te muestra varios registros al mismo tiempo, varias filas para cada campo...), si es así, poner un botón en la sección detalle que jale, por ejemplo, la hora del sistema y la ponga en un campo que necesite este dato, necesita al final del código del botón que guarde, lo puedes hacer con un siple GUARDAR REGISTRO:
DoCmd. DoMenuItem acFormBar, acRecordsMenu, acSaveRecord,, acMenuVer70
Te repito, este código debe ir al final de que hayas asignado valores para que guarde los cambios... espero esto sea lo que buscas, de otro modo tendrías que proporcionarme más información para saber exactamente cómo ayudarte. Gracias! Suerte
Primero que todo agradezco tu respuesta, tienes razón en que lo que quiero hacer, pero creo que no entendiste una parte.
Si, estoy utilizando un formulario continuo y visualizo varios registros al tiempo, lo que quiero hacer es colocar un botón a nivel del detalle al lado de cada uno de estos registros y que al hacer clic en él, cambie el valor del campo "Estado" a 2 y en el campo "fecha de devolución" coloque la fecha del sistema; pero solo del registro sobre el cual estoy haciendo el clic en el botón.
Saludos y gracias
Lamentablemente el poner un botón junto a cada registro hace que el botón afecte a todos los registros y supongo que este es el problema, debes generar un recorset y cargarle la tabla de estos mismos registros y por medio de las acciones edit y update del recorset podrás modificar sólo el registro al que estás apuntando, el comando edit te permite abrir el recorset y el comando update te lo actualiza, es como reabrir la tabla que contiene los mismos valores que estás visualizando pero con la facilidad de modificar sólo al registro al que apunte el recordset. Aquí te resproduzco un ejemplo que viene en la ayuda y que ilustra muy bien su uso:
En el ejemplo siguiente se utiliza la propiedad Recordset y el objeto Recordset para sincronizar el registro de un conjunto de registros con el registro actual del formulario. Cuando se selecciona el nombre de una organización desde un cuadro combinado, se utiliza el método FindFirst para encontrar el registro para esa organización, con lo que el formulario muestra el registro encontrado.
Sub IdProveedor_AfterUpdate()
Dim rst As DAO.Recordset
Dim strSearchName As String
Set rst = Me.Recordset
strSearchName = Str(Me!IdProveedor)
rst.FindFirst "IDProveedor = " & strSearchName
rst.edit
rst.{aquí escribes el nombre del campo que quieres modificar: Estado} = 2
rst.{aquí escribes el nombre del otro campo que quieres modificar: Fecha} = now()
rst.update
rst.Close
End Sub
Tu puedes cambiar la asociación del evento en lugar de un cuadro combinado, por ejemplo, al evento salir de un cuadro de texto que estés llenando inmediatamente antes de que quieras que asigne los datos que tu deseas a los campos que me indicas. Suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas