Palabras clave: consulta, SQL, acción, registros
Extraído de: Ayuda de Access
Situación
Lanzamos una consulta de acción que impactará sobre una cantidad de registros. A priori la única forma de saberlo sería abrir un recordset con los mismos criterios y contar los registros impactados. (bueno, eso no siempre sería cierto pero no entraremos en detalles).
Lo que deseamos es, una vez lanzada la consulta, saber cuantos registros se han visto afectados.
Ejemplo: deseamos actualizar todos los registros que contengan el valor "A" en un campo llamado "Zona". Actualizaremos el campo Comercial de esos registros al valor "Xavi".
Respuesta
Utilizaremos la propiedad RecordsAffected del objeto Database de DAO que devuelve la cantidad de registros que se modificaron mediante la ultima llamada del método Execute de un objeto DAO.Database
Para ello es necesario que declaremos un objeto DAO.Database y lo utilizemos para lanzar el Execute (no nos vale DoCmd.RunSQL)
Dim dbs As DAO.Database
Set dbs = CurrentDb
dbs.Execute "UPDATE Clientes SET Comercial = 'Xavi' WHERE Zona = 'A'", dbFailOnError
MsgBox "Actualización de datos realizada. Registros afectados: " & dbs.RecordsAffected, vbInformation
dbs.Close
Set dbs = Nothing