varios valores una tabla registros registro modificar eliminacion datos creacion consultas consulta actualizar actualizacion vba ms-access access-vba

vba - valores - consultas de actualizacion sql



¿Cómo mostrar cuántos registros se actualizaron mediante una consulta de actualización? (3)

No veo ninguna forma en este momento para obtener la información después de que se haya ejecutado la consulta de actualización a menos que tenga otro campo distintivo (tal vez un campo de fecha actualizada). ¿Por qué no ejecutar una consulta de selección para ello y ejecutar un informe fuera de esos datos, luego ejecutar la consulta de actualización para cambiar los valores de ''bonificación''.

¡Déjeme saber si esto ayuda! JFV

¿Es posible obtener un informe de los registros que se actualizan utilizando una consulta de actualización, sin usar un juego de registros?

Ex:

sqltext = update table employees set bonus = 0 where salary > 50000
DoCmd.RunSQL sqltext

Después de ejecutar esta consulta, ¿es posible obtener el nombre de los empleados para quienes se realizó esta consulta de actualización?


Sé que es una pregunta antigua, pero no hubo respuesta que respondiera directamente a la pregunta OP (me enteré a través de los resultados Top 3 de Google mientras trataba de recordar la sintaxis). Si usa el método Execute, puede obtener el número de registros afectados directamente :

sqltext = "update table employees set bonus = 0 where salary > 50000" CurrentDb.Execute sqltext AffectedRows = CurrentDb.RecordsAffected ''Optional Notification MsgBox CStr(AffectedRows) & " records were affected by this SQL statement."


Nunca es una buena idea utilizar DoCmd.RunSQL ya que genera un aviso (que debe desactivarse si no lo desea), y completa las actualizaciones incluso si se producen errores, y no informa los errores. Mucho mejor es reemplazarlo con una función que ejecuta el mismo SQL:

Public Function SQLRun(strSQL As String) As Boolean On Error GoTo errHandler CurrentDB.Execute strSQL, dbFailOnError SQLRun= True exitRoutine: Exit Function errHandler: MsgBox err.Number & ": " & err.Description, vbExclamation, "Error in SQLRun()" Resume exitRoutine End Function

Una vez que haya colocado esto en un módulo público, puede hacer fácilmente una búsqueda global y reemplazarlo por DoCmd.RunSQL para reemplazarlo con SQLRun .

EDITAR: otra versión de esta función que devuelve la cantidad de registros afectados está aquí .