Aquí podría ser tu PUBLICIDAD


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

votos
3

¿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?

Publicado el 02/12/2008 a las 14:02
fuente por usuario tksy
En otros idiomas...        العربية       

3 respuestas

votos
4

Nunca es una buena idea utilizarla DoCmd.RunSQLya 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 para DoCmd.RunSQLreemplazarlo SQLRun.

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

Respondida el 05/12/2008 a las 05:03
fuente por usuario David-W-Fenton


Aquí podría ser tu PUBLICIDAD


votos
2

Sé que es una vieja pregunta, pero no hubo respuesta que respondió directamente a la pregunta OP (llegué aquí a través de Google Top 3 resultados al tratar de recordar la sintaxis) Si se utiliza el método de ejecución, se 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."
Respondida el 31/05/2015 a las 12:51
fuente por usuario Avagut

votos
1

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

Respondida el 02/12/2008 a las 02:19
fuente por usuario JFV