Autor Tema: Saber los registros afectados por una consulta de acción  (Leído 117 veces)

Desconectado xavi

  • Administrador
  • Habitual
  • *****
  • Mensajes: 196
Saber los registros afectados por una consulta de acción
« en: Septiembre 20, 2021, 06:19:57 pm »
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)


Código: [Seleccionar]
    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